備忘録として記録する。
debian-10.1.0-amd64-netinst.iso の graphical install で一通りインストールした。 ファイルシステムは btrfs にしたのとスワップ領域を減らした以外は特にいじった記憶がない。
以下、graphical install 後に変更・修正した内容である。
ブートローダーの変更
iso では grub2 をブートローダーとしてインストールしたが、システム全体が systemd なので統一してみたく systemd-boot に変更してみた。 以下、その際の作業内容になる。
インストール
# bootctl install
必要に応じて
--path
オプションをつける。
これで systemd-boot に必要なファイルが efi パーティションに展開される。
今回は/boot/efi
が efi パーティションである前提で続ける。ブートエントリの追加
/boot/efi/loader/entries/debian.conf
に下記のように書く。title Debian linux /vmlinuz-4.19.0-6-amd64 initrd /initrd.img-4.19.0-6-amd64 options root=PARTUUID=YOUR_PART_UUID_HERE rw quiet nouveau.modeset=0
linux
やinitrd
には/boot/efi
をルートとしたパスが必要だった。
options
のPARTUUID
はblkid
コマンドで調べた。 自分の環境の場合、grub2 の際に/boot
配下に vmlinuz や initrd.img があったため、それらをコピーして efi パーティションに設置した。
これってシンボリックリンクでもいいんだろうか…?この辺りはメモを忘れてうろ覚えだが、
efibootmgr
コマンドでブート順序を確認した記憶がある。 起動順序でLinux Boot Manager
が最初になっていればsystemd-boot
で起動する。
なお、この辺りで参考にしたのは Arch Wiki 。
nouveau nomodeset
ブートオプションを追加した話。
起動時にコンソールの表示が妙に伸びており、下記エラーが表示されていた。
[ 4.953345] nouveau 0000:07:00.0: DRM: failed to create kernel channel, -22 [ 5.074717] nouveau 0000:07:00.0: DRM: allocated 1920x2160 fb: 0x200000, bo 00000000ab79588a
マシンは NVidia の GPU を使っており、そのドライバに起因するものらしい。
今回 GPU は緊急時のコンソール表示のためにつけており、基本は ssh で使う予定なのでブートオプションで KMS を無効化してしまう。
先の systemd-boot の conf にも書いてあるように、以下の nouveau.modeset=0
をブートローダーのエントリの設定に追加した。
options root=PARTUUID=YOUR_PART_UUID_HERE rw quiet nouveau.modeset=0
このあたり、実はちゃんと理解しておらず nouveau って KMS に対応してるはずでは?とか疑問が残っている。 そのうち調べる。
realtek ドライバ
[ 3.553551] r8169 0000:05:00.0: firmware: failed to load rtl_nic/rtl8168h-2.fw (-2) [ 3.553616] firmware_class: See https://wiki.debian.org/Firmware for information about missing firmware [ 3.553690] r8169 0000:05:00.0: Direct firmware load for rtl_nic/rtl8168h-2.fw failed with error -2 [ 3.553693] r8169 0000:05:00.0 enp5s0: unable to load firmware patch rtl_nic/rtl8168h-2.fw (-2)
apt の non-free なリポジトリを追加して firmware-realtek パッケージを取得することで解決した。
Watchdog 問題
[ 3.382156] sp5100_tco: SP5100/SB800 TCO WatchDog Timer Driver [ 3.382217] sp5100-tco sp5100-tco: Using 0xfed80b00 for watchdog MMIO address [ 3.382227] sp5100-tco sp5100-tco: Watchdog hardware is disabled
特段使う予定もなく、disabledになっていて問題はないがいちいち disabled と出して欲しくなかったためロードしないようにした。
# cat << EOF > /etc/modprobe.d/sp5100_tco.conf blacklist sp5100_tco EOF
上記は調べている時に見つけた これ を参考にしている。
lm_sensors
CPU温度を mackerel に飛ばしたかったので、lm_sensors を入れた。
# apt install lm_sensors
sensors-detect
して sensors
を実行すれば取れるはずがCPUの温度情報が取れていなかった。
sensors-detect
の出力をよく見ると下記の情報が得られた。
To load everything that is needed, add this to /etc/modules: #----cut here---- # Chip drivers nct6775 #----cut here----
このガイドを元に /etc/modules
に nct6775
を追記して再起動したらCPU温度を CPUTIN
として取得できるようになった。
sensors
の出力結果の CPUIN の行は次のようだった。
CPUTIN: +26.5°C (high = +80.0°C, hyst = +75.0°C) sensor = thermistor
この温度の数値部分(26.5)を mackerel に飛ばすために値を整形するのは下記のようにしてみた。
$ sensors|grep CPUTIN|awk '{print $2}'|sed -E 's/^\+(.+)°C$/\1/g'
とりあえずここまで。
まだ設定は全てしていないかもしれないので、気づいたものがあれば追記する。