平衡点
2024/06/12
_ wsl2 で systemd
時間が取れないけれど, 流石に CF-RZ8 だけだと諸々厳しくなってきたので, ジタバタしていたり.
ー `systemd status` fails output on Ubuntu · Issue #8879 · microsoft/WSL · GitHub
の最後にある通り「systemd の 255.7
以降なら大丈夫!」を信じて wsl の Debian を trixie/sid に更新するなどしたら,
起動時に dbus に繋がらず, systemd の起動が timeout → WSL2 の init が起動, という状況であった.
wsl2 の DebugConsole を見ると cgroup v1 まわりでエラーを吐いているみたいな…
というわけで
cgroup2 /sys/fs/cgroup cgroup2 rw,nosuid,nodev,noexec,relatime,nsdelegate 0 0
という内容で /etc/fstab
を作成して wsl を再起動すると dbus も起動して,
systemctl なども使える様になった.
…これは起動時の kernel のパラメータで指定した方が良いかなぁ.
(追記) ~/.wslconfig
に
[wsl2]
kernelCommandLine = cgroup_no_v1=all
として, /etc/fstab
の内容は削除した. この場合でもちゃんと動いている.
_ wslg の設定
何も設定していない状況だと,
can't open DISPLAY :0
と怒られた.
既知の話かもしれないけれども.
/etc/tmpfiles.d/wslg.conf
あたりを作成して
L+ /tmp/.X11-unix - - - - /mnt/wslg/.X11-unix
としておくと良い.
2024/06/17
_ WSLとWindowsの時刻同期
suspend & resume すると時刻がズレるのはどうにかならんかなぁ, と.
WSL 側で systemd-timesyncd
を起動するってのでも良いんだけれど,
やりたいことは母艦(?)の Windows 側との同期であって, これがちょっと面倒.
つまり,
WSL で systemd-timesyncd
を動かしていると,
WSL側の時刻は正しいのだけれど
(Windows の時刻同期のタイミングとズレるのか), Windows と WSL で時刻がズレる.
どうしたモンかと思っていたが WSL では /dev/ptp0
が生えていて,
これが母艦との時刻同期に使えるらしい.
残念ながら systemd-timesyncd
はまだ ptp support が無い
というわけで chrony を使う.
これでどうなるのか, ちょっと試してみます.
2024/06/18
_ WSL で Windows 側のフォントを利用する
wslg でアプリケーションを起動することはそんなに無いと思うのだけれど, 一応.
/etc/fonts/local.conf
に
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<dir>/mnt/c/Windows/Fonts</dir>
<dir>/mnt/c/Users/uwabami/AppData/Local/Microsoft/Windows/Fonts</dir>
</fontconfig>
と書いて fc-cache -fv
を走らせておく.
2024/06/19
_ WSL2 での gpg-agent, ssh-agent
まあ Gpg4win - Secure email and file encryption with GnuPG for Windows を使えば良い, という話ではあるものの. 今の所 Windows 側の VSCode で作業する気も無いので.
WSLで閉じて, gpg-agent (と ssh-agent)を使うには(gnupg の準備は済んでいるモノとする).
pinentry-curses
を入れておく 最初は gnome-keyring + pinentry-gnome3 で, とか思っていたけれど 面倒な事にキー配列が US 配列になる(なったりならなかったりする)ので, パスワード入力が面倒.keychain
も入れておく~/.zshrc
あたりでif [[ -d /mnt/wslg ]]; then if [[ -z $GPG_AGENT_INFO ]]; then eval $(keychain -q --eval --agents ssh,gpg $GPG_KEY_ID) fi typeset -gx SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket) typeset -gx GPG_TTY=$(tty) gpg-connect-agent updatestartuptty /bye > /dev/null fi
とでもしておくことに.
初回に端末を開いた際に GPG の認証が走る (あと, 初回の ssh の接続の際にも認証が走る)が, 許容範囲.
とはいえ, secret-tools
で keyring
触るし,
正直な所 WSLg のキー配列が US になる(なったりならなかったりする)のが解決してくれるのが一番良いんだけれど.
うーん.