背景
Ubuntu 22.04もリリースされてそろそろ1ヶ月立ちますし、22.04版のSway構築手順を確認しておこうと思います。
そもそも Ubuntuのインストールの変更
20.04と比べて、パット見で気になった変更点は以下でしょうか。
- インストール時に、最新のインストーラを確認して、該当があったらgitからダウンロードしてきてそれを実行する
- インストール構成で「minimum」が選べる
他、設定投入画面が省略されているものがあった気がしますが、詳細は追ってません。
minimum構成
サーバを建てる際は可能な限り最小パッケージで組みたくなるものなのですが、、
ざっと無印構成とminimum構成のパッケージ数を比較すると、無印が606で、minimumが420。
で、minimumは何を削っているかというと、、、
apt-utils/jammy,now 2.4.5 amd64 [installed,automatic]
bash-completion/jammy,now 1:2.11-5ubuntu1 all [installed,auto
bc/jammy,now 1.07.1-3build1 amd64 [installed,automatic]
bind9-dnsutils/jammy-updates,jammy-security,now 1:9.18.1-1ubu
bind9-host/jammy-updates,jammy-security,now 1:9.18.1-1ubuntu1
bind9-libs/jammy-updates,jammy-security,now 1:9.18.1-1ubuntu1
bolt/jammy,now 0.9.2-1 amd64 [installed,automatic]
bsdextrautils/jammy,now 2.37.2-4ubuntu3 amd64 [installed,auto
busybox-static/jammy,now 1:1.30.1-7ubuntu3 amd64 [installed,a
byobu/jammy,now 5.133-1 all [installed,automatic]
cloud-initramfs-copymods/jammy,now 0.47ubuntu1 all [installed
cloud-initramfs-dyn-netconf/jammy,now 0.47ubuntu1 all [instal
command-not-found/jammy,now 22.04.0 all [installed,automatic]
cron/jammy,now 3.0pl1-137ubuntu3 amd64 [installed,automatic]
debconf-i18n/jammy,now 1.5.79ubuntu1 all [installed,automatic
distro-info/jammy,now 1.1build1 amd64 [installed,automatic]
dmidecode/jammy,now 3.3-3 amd64 [installed,automatic]
dosfstools/jammy,now 4.2-1build3 amd64 [installed,automatic]
ed/jammy,now 1.18-1 amd64 [installed,automatic]
eject/jammy,now 2.37.2-4ubuntu3 amd64 [installed,automatic]
ethtool/jammy,now 1:5.16-1 amd64 [installed,automatic]
file/jammy,now 1:5.41-3 amd64 [installed,automatic]
fonts-ubuntu-console/jammy,now 0.83-6ubuntu1 all [installed,a
friendly-recovery/jammy,now 0.2.42 all [installed,automatic]
ftp/jammy,now 20210827-4build1 all [installed,automatic]
fwupd-signed/jammy,now 1.44+1.2-3 amd64 [installed,automatic]
fwupd/jammy,now 1.7.5-3 amd64 [installed,automatic]
git-man/jammy-updates,jammy-security,now 1:2.34.1-1ubuntu1.2
git/jammy-updates,jammy-security,now 1:2.34.1-1ubuntu1.2 amd6
hdparm/jammy,now 9.60+ds-1build3 amd64 [installed,automatic]
htop/jammy,now 3.0.5-7build2 amd64 [installed,automatic]
info/jammy,now 6.8-4build1 amd64 [installed,automatic]
init/jammy,now 1.62 amd64 [installed]
install-info/jammy,now 6.8-4build1 amd64 [installed,automatic
iptables/jammy,now 1.8.7-1ubuntu5 amd64 [installed,automatic]
iputils-ping/jammy,now 3:20211215-1 amd64 [installed,automati
iputils-tracepath/jammy,now 3:20211215-1 amd64 [installed,aut
irqbalance/jammy,now 1.8.0-1build1 amd64 [installed,automatic
landscape-common/jammy,now 19.12-0ubuntu13 amd64 [installed,a
less/jammy,now 590-1build1 amd64 [installed,automatic]
libarchive13/jammy,now 3.6.0-1ubuntu1 amd64 [installed,automa
libatasmart4/jammy,now 0.19-5build2 amd64 [installed,automati
libblockdev-crypto2/jammy,now 2.26-1 amd64 [installed,automat
libblockdev-fs2/jammy,now 2.26-1 amd64 [installed,automatic]
libblockdev-loop2/jammy,now 2.26-1 amd64 [installed,automatic
libblockdev-part-err2/jammy,now 2.26-1 amd64 [installed,autom
libblockdev-part2/jammy,now 2.26-1 amd64 [installed,automatic
libblockdev-swap2/jammy,now 2.26-1 amd64 [installed,automatic
libblockdev-utils2/jammy,now 2.26-1 amd64 [installed,automati
libblockdev2/jammy,now 2.26-1 amd64 [installed,automatic]
liberror-perl/jammy,now 0.17029-1 all [installed,automatic]
libestr0/jammy,now 0.1.10-2.1build3 amd64 [installed,automati
libevent-core-2.1-7/jammy,now 2.1.12-stable-1build3 amd64 [in
libfastjson4/jammy,now 0.99.9-1build2 amd64 [installed,automa
libflashrom1/jammy,now 1.2-5build1 amd64 [installed,automatic
libfribidi0/jammy-updates,jammy-security,now 1.0.8-2ubuntu3.1
libftdi1-2/jammy,now 1.5-5build3 amd64 [installed,automatic]
libfwupd2/jammy,now 1.7.5-3 amd64 [installed,automatic]
libfwupdplugin5/jammy,now 1.7.5-3 amd64 [installed,automatic]
libgcab-1.0-0/jammy,now 1.4-3build2 amd64 [installed,automati
libgpgme11/jammy,now 1.16.0-1.2ubuntu4 amd64 [installed,autom
libgpm2/jammy,now 1.20.7-10build1 amd64 [installed,automatic]
libgusb2/jammy,now 0.3.10-1 amd64 [installed,automatic]
libip6tc2/jammy,now 1.8.7-1ubuntu5 amd64 [installed,automatic
libjansson4/jammy,now 2.13.1-1.1build3 amd64 [installed,autom
libjcat1/jammy,now 0.1.9-1 amd64 [installed,automatic]
libjson-glib-1.0-0/jammy,now 1.6.6-1build1 amd64 [installed,a
libjson-glib-1.0-common/jammy,now 1.6.6-1build1 all [installe
liblmdb0/jammy,now 0.9.24-1build2 amd64 [installed,automatic]
libmagic-mgc/jammy,now 1:5.41-3 amd64 [installed,automatic]
libmagic1/jammy,now 1:5.41-3 amd64 [installed,automatic]
libmaxminddb0/jammy,now 1.5.2-1build2 amd64 [installed,automa
libmbim-glib4/jammy,now 1.26.2-1build1 amd64 [installed,autom
libmbim-proxy/jammy,now 1.26.2-1build1 amd64 [installed,autom
libmm-glib0/jammy,now 1.18.6-1 amd64 [installed,automatic]
libmspack0/jammy,now 0.10.1-2build2 amd64 [installed,automati
libnetfilter-conntrack3/jammy,now 1.0.9-1 amd64 [installed,au
libnewt0.52/jammy,now 0.52.21-5ubuntu2 amd64 [installed,autom
libnfnetlink0/jammy,now 1.0.1-3build3 amd64 [installed,automa
libnftables1/jammy,now 1.0.2-1ubuntu2 amd64 [installed,automa
libnftnl11/jammy,now 1.2.1-1build1 amd64 [installed,automatic
libnl-3-200/jammy,now 3.5.0-0.1 amd64 [installed,automatic]
libnl-genl-3-200/jammy,now 3.5.0-0.1 amd64 [installed,automat
libnspr4/jammy,now 2:4.32-3build1 amd64 [installed,automatic]
libnss3/jammy,now 2:3.68.2-0ubuntu1 amd64 [installed,automati
libnuma1/jammy,now 2.0.14-3ubuntu2 amd64 [installed,automatic
libparted-fs-resize0/jammy,now 3.4-2build1 amd64 [installed,a
libparted2/jammy,now 3.4-2build1 amd64 [installed,automatic]
libpcap0.8/jammy,now 1.10.1-4build1 amd64 [installed,automati
libpipeline1/jammy,now 1.5.5-1 amd64 [installed,automatic]
libpython3.10/jammy,now 3.10.4-3 amd64 [installed,automatic]
libqmi-glib5/jammy,now 1.30.4-1 amd64 [installed,automatic]
libqmi-proxy/jammy,now 1.30.4-1 amd64 [installed,automatic]
libslang2/jammy,now 2.3.2-5build4 amd64 [installed,automatic]
libsmbios-c2/jammy,now 2.4.3-1build1 amd64 [installed,automat
libsodium23/jammy,now 1.0.18-1build2 amd64 [installed,automat
libtcl8.6/jammy,now 8.6.12+dfsg-1build1 amd64 [installed,auto
libtext-charwidth-perl/jammy,now 0.04-10build3 amd64 [install
libtext-iconv-perl/jammy,now 1.7-7build3 amd64 [installed,aut
libtext-wrapi18n-perl/jammy,now 0.06-9 all [installed,automat
libtss2-esys-3.0.2-0/jammy,now 3.2.0-1ubuntu1 amd64 [installe
libtss2-mu0/jammy,now 3.2.0-1ubuntu1 amd64 [installed,automat
libtss2-sys1/jammy,now 3.2.0-1ubuntu1 amd64 [installed,automa
libtss2-tcti-cmd0/jammy,now 3.2.0-1ubuntu1 amd64 [installed,a
libtss2-tcti-device0/jammy,now 3.2.0-1ubuntu1 amd64 [installe
libtss2-tcti-mssim0/jammy,now 3.2.0-1ubuntu1 amd64 [installed
libtss2-tcti-swtpm0/jammy,now 3.2.0-1ubuntu1 amd64 [installed
libudisks2-0/jammy,now 2.9.4-1ubuntu2 amd64 [installed,automa
libutempter0/jammy,now 1.2.1-2build2 amd64 [installed,automat
libuv1/jammy,now 1.43.0-1 amd64 [installed,automatic]
libvolume-key1/jammy,now 0.3.12-3.1build3 amd64 [installed,au
libxmlsec1-openssl/jammy,now 1.2.33-1build2 amd64 [installed,
libxmlsec1/jammy,now 1.2.33-1build2 amd64 [installed,automati
libxslt1.1/jammy,now 1.1.34-4build2 amd64 [installed,automati
locales/jammy,now 2.35-0ubuntu3 all [installed,automatic]
logrotate/jammy,now 3.19.0-1ubuntu1 amd64 [installed,automati
lshw/jammy,now 02.19.git.2021.06.19.996aaad9c7-2build1 amd64
lsof/jammy,now 4.93.2+dfsg-1.1build2 amd64 [installed,automat
manpages/jammy,now 5.10-1ubuntu1 all [installed,automatic]
mawk/jammy,now 1.3.4.20200120-3 amd64 [installed,automatic]
modemmanager/jammy,now 1.18.6-1 amd64 [installed,automatic]
motd-news-config/jammy,now 12ubuntu4 all [installed,upgradabl
mtr-tiny/jammy,now 0.95-1 amd64 [installed,automatic]
nano/jammy,now 6.2-1 amd64 [installed,automatic]
netcat-openbsd/jammy,now 1.218-4ubuntu1 amd64 [installed,auto
nftables/jammy,now 1.0.2-1ubuntu2 amd64 [installed,automatic]
open-vm-tools/jammy,now 2:11.3.5-1ubuntu4 amd64 [installed,au
overlayroot/jammy,now 0.47ubuntu1 all [installed,automatic]
parted/jammy,now 3.4-2build1 amd64 [installed,automatic]
pastebinit/jammy,now 1.5.1-1ubuntu1 all [installed,automatic]
patch/jammy,now 2.7.6-7build2 amd64 [installed,automatic]
powermgmt-base/jammy,now 1.36 all [installed,automatic]
psmisc/jammy,now 23.4-2build3 amd64 [installed,automatic]
python3-automat/jammy,now 20.2.0-1 all [installed,automatic]
python3-bcrypt/jammy,now 3.2.0-1build1 amd64 [installed,autom
python3-commandnotfound/jammy,now 22.04.0 all [installed,auto
python3-constantly/jammy,now 15.1.0-2 all [installed,automati
python3-debconf/jammy,now 1.5.79ubuntu1 all [installed,automa
python3-debian/jammy,now 0.1.43ubuntu1 all [installed,automat
python3-gdbm/jammy,now 3.10.4-0ubuntu1 amd64 [installed,autom
python3-hamcrest/jammy,now 2.0.2-2 all [installed,automatic]
python3-hyperlink/jammy,now 21.0.0-3 all [installed,automatic
python3-incremental/jammy,now 21.3.0-1 all [installed,automat
python3-newt/jammy,now 0.52.21-5ubuntu2 amd64 [installed,auto
python3-openssl/jammy,now 21.0.0-1 all [installed,automatic]
python3-pexpect/jammy,now 4.8.0-2ubuntu1 all [installed,autom
python3-ptyprocess/jammy,now 0.7.0-3 all [installed,automatic
python3-pyasn1-modules/jammy,now 0.2.1-1 all [installed,autom
python3-pyasn1/jammy,now 0.4.8-1 all [installed,automatic]
python3-service-identity/jammy,now 18.1.0-6 all [installed,au
python3-twisted/jammy-updates,jammy-security,now 22.1.0-2ubun
python3-zope.interface/jammy,now 5.4.0-1build1 amd64 [install
rsync/jammy,now 3.2.3-8ubuntu3 amd64 [installed,automatic]
rsyslog/jammy-updates,jammy-security,now 8.2112.0-2ubuntu2.2
run-one/jammy,now 1.17-0ubuntu1 all [installed,automatic]
sbsigntool/jammy,now 0.9.4-2ubuntu2 amd64 [installed,automati
screen/jammy,now 4.9.0-1 amd64 [installed,automatic]
secureboot-db/jammy,now 1.8 amd64 [installed,automatic]
sosreport/jammy,now 4.3-1ubuntu2 amd64 [installed,automatic]
strace/jammy,now 5.16-0ubuntu3 amd64 [installed,automatic]
tcl8.6/jammy,now 8.6.12+dfsg-1build1 amd64 [installed,automat
tcl/jammy,now 8.6.11+1build2 amd64 [installed,automatic]
tcpdump/jammy,now 4.99.1-3build2 amd64 [installed,automatic]
telnet/jammy,now 0.17-44build1 amd64 [installed,automatic]
time/jammy,now 1.9-0.1build2 amd64 [installed,automatic]
tmux/jammy,now 3.2a-4build1 amd64 [installed,automatic]
tnftp/jammy,now 20210827-4build1 amd64 [installed,automatic]
tpm-udev/jammy,now 0.6 all [installed,automatic]
ubuntu-advantage-tools/jammy,now 27.7~22.04.1 amd64 [installe
ubuntu-minimal/jammy,now 1.481 amd64 [installed]
ubuntu-server/jammy,now 1.481 amd64 [installed]
ubuntu-standard/jammy,now 1.481 amd64 [installed]
udisks2/jammy,now 2.9.4-1ubuntu2 amd64 [installed,automatic]
ufw/jammy,now 0.36.1-4build1 all [installed,automatic]
update-manager-core/jammy,now 1:22.04.9 all [installed,automa
update-notifier-common/jammy,now 3.192.54 all [installed,auto
usb-modeswitch-data/jammy,now 20191128-4 all [installed,autom
usb-modeswitch/jammy,now 2.6.1-3ubuntu2 amd64 [installed,auto
usb.ids/jammy,now 2022.04.02-1 all [installed,automatic]
uuid-runtime/jammy,now 2.37.2-4ubuntu3 amd64 [installed,autom
vim-common/jammy,now 2:8.2.3995-1ubuntu2 all [installed,autom
vim-runtime/jammy,now 2:8.2.3995-1ubuntu2 all [installed,auto
vim-tiny/jammy,now 2:8.2.3995-1ubuntu2 amd64 [installed,autom
vim/jammy,now 2:8.2.3995-1ubuntu2 amd64 [installed,automatic]
whiptail/jammy,now 0.52.21-5ubuntu2 amd64 [installed,automati
zerofree/jammy,now 1.1.1-1build3 amd64 [installed,automatic]
気になるところとしては、以下でしょうか。
- viがない。というか、nanoも入っていない。
- lessも入ってない。
- nftables, iptables, ufwが入っていない、、
- cromもrsyslogもufwも入ってない、、、
サーバ用途で考えるとminimumベースでnftablesやcrom/rsyslogなどの最小限のものを追加導入する方式おありえますが、自分の普段使いとしては、あえてminimumにはしなくていいかな、、という感じですね。
Ubuntu 22.04にSwayを導入する
実機に導入する前に、VirtualBoxの仮想マシンで手順を整理したいと思います。
まずはVirtualBoxにUbuntu 22.04をインストール。
上記のとおり、minimumにはしません。
で、swayを導入。
# apt install --no-install-recommends sway
依存関係でxwaylandなどの導入は行われません。
パット見、依存関係は結構スッキリしたような。
Swayの初回起動まで
で、起動、、、しません。
$ sway > ./sway.log
症状としては、上記の表示のまま画面がフリーズしてしまう感じ。
ログの方はちゃんと出力されていて、内容をみてみると、、
$ head ./sway.log
VMware: No 3D enabled (0, Success).
libEGL warning: DRI2: failed to create dri screen
00:00:00.314 [ERROR] [wlr] [EGL] command: eglInitialize, error: EGL_NOT_INITIALIZED (0x3001), message: "DRI2: failed to create screen"
VMware: No 3D enabled (0, Success).
libEGL warning: DRI2: failed to create dri screen
00:00:00.334 [ERROR] [wlr] [EGL] command: eglInitialize, error: EGL_NOT_INITIALIZED (0x3001), message: "DRI2: failed to create screen"
00:00:00.334 [ERROR] [wlr] [EGL] command: eglInitialize, error: EGL_NOT_INITIALIZED (0x3001), message: "eglInitialize"
00:00:00.334 [ERROR] [wlr] [render/egl.c:242] Failed to initialize EGL
00:00:00.334 [ERROR] [wlr] [render/egl.c:521] Failed to initialize EGL context
00:00:00.334 [ERROR] [wlr] [render/gles2/renderer.c:698] Could not initialize EGL
一番上に気になる記載が、、
以下のチェックがディフォルトだと外れていたのですが、これにチェック入れたら起動しました。
21.04では気にした記憶がないのですが。。まぁ解決したので深追いはしてないです。
さておき。あらためて、起動。しました。
。。。て、、ん?
マウスカーソルが表示されていない、、
調べたら、ドンピシャのがありました。
仮想マシン環境で実行するときは以下の環境変数を入れないとカーソルが出ないことがあるんだそうです。
https://wiki.archlinux.jp/index.php/Sway#.E3.83.9E.E3.82.A6.E3.82.B9.E3.82.AB.E3.83.BC.E3.82.BD.E3.83.AB.E3.81.8C.E8.A1.A8.E7.A4.BA.E3.81.95.E3.82.8C.E3.81.AA.E3.81.84
$ export WLR_NO_HARDWARE_CURSORS=1
.bashrcあたりに仕込むかな。
最小限の設定いろいろ
では改めて、色々設定していきます。
マルチディスプレイ
実機に導入するときに試すので、今回はパス。
menu
標準だとdmenuが入っているので、waylandネイティブでできるものに切り替えます。
archではbmenuを使っていましたが、ubuntuのパッケージにはbmenuがないんでしたね。。
自分でmakeするのもなぁ、、
https://github.com/Cloudef/bemenu
以前調べた以下の方法の設定をswayのコンフィグに追記する形で凌ぐことにします。
まず、fzfのパッケージが必要なので追加。
# apt install fzf
合わせて、swayのコンフィグもローカルに持ってきておきます。
$ mkdir -p ~/.local/sway
$ cp /etc/sway/config ~/.local/sway/
で、以下をswayコンフィグに追加。
set $menu foot -T menu bash -c 'compgen -c | sort -u | fzf | xargs swaymsg exec --'
for_window [app_id="foot" title="menu"] {
floating enable
resize set width 25 ppt height 20 ppt
move position 0 px 0 px
}
ブラウザ
firefoxを入れます。
22.04ではsnapでの導入になったとき来ましたが、とりあえずaptで実行するとsnapを呼び出してインストールしてくれるみたいですね。
# apt install firefox
21.04に下調べしたときの手順に従って日本語表示用のfonts-nanoを、、入りません。
微妙に名前変わったみたいです。
# apt install fonts-noto-cjk
chromiumも入れておきます。
# apt install chromium-browser
chromium-browserで起動するとXを使おうとして失敗するので、waylandを使うように引数を加えてやります。
$ chromium-browser --enable-features=UseOzonePlatform --ozone-platform=wayland
ディフォルトでwaylandを使ってくれないかなーと期待していたのですが、だめでしたね。。
日本語入力
# apt install --no-install-recommends fcitx5-mozc fcitx5-config-qt qtwayland5 mozc-utils-gui
# apt install --no-install-recommends fcitx5-module-wayland fcitx5-module-xorg fcitx5-frontend-gtk3
# echo -e "export GTK_IM_MODULE=fcitx\nexport QT_IM_MODULE=fcitx\nexport XMODIFIERS=@im=fcitx" >> /etc/environment
$ echo "exec fcitx5" >> ~/.config/sway/config
fictx5-configtoolでmozcの設定を入れて一旦終了。
firefoxは、これで問題なく日本語入力が可能になります。
chromeはNG。
試しに、それらしいプラグインも入力してみましたが、だめ。。
https://www.google.com/intl/ja/inputtools/chrome/
導入も有効化もできるのですが、いざ入力しても日本語に変換されません。。
westonの事例ですが、--enable-wayland-imeをつける例があったので試したのですが、それもダメ。
うーん、、依然chromeはダメかぁ、、
スピーカーの設定
# apt install alsa-base pulseaudio
.config/sway/configに追記
# Sound
bindsym $mod+t exec pactl set-sink-volume $(pacmd list-sinks |awk '/* index:/{print $3}') -5%
bindsym $mod+y exec pactl set-sink-volume $(pacmd list-sinks |awk '/* index:/{print $3}') +5%
exec pulseaudio --start --log-target=syslog --daemonize+no
これは問題なし。
#まとめ
archlinux構成の際のトラブルが一気に解決したら、、と思ったのですが、状況変わらずでした。
もしかするとドライバ周りが安定していて、現状のsway環境でちょこちょこ発生しているnouveau(Nvidiaドライバらしい)のエラーを出してswayが異常終了する事象が解決したりする、、、かもしれないので、ubuntu構成のswayも併用して試してみようと思います。
なんとも。。