あひるの勉強部屋

つらつらつら~と不定期にカキコするブログ

debianインストール時のメモ書き

備忘録として記録する。

debian-10.1.0-amd64-netinst.iso の graphical install で一通りインストールした。 ファイルシステムは btrfs にしたのとスワップ領域を減らした以外は特にいじった記憶がない。

以下、graphical install 後に変更・修正した内容である。

ブートローダーの変更

iso では grub2 をブートローダーとしてインストールしたが、システム全体が systemd なので統一してみたく systemd-boot に変更してみた。 以下、その際の作業内容になる。

  1. インストール

    # bootctl install

    必要に応じて --path オプションをつける。
    これで systemd-boot に必要なファイルが efi パーティションに展開される。
    今回は /boot/efiefi パーティションである前提で続ける。

  2. ブートエントリの追加 /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
     
    linuxinitrd には /boot/efi をルートとしたパスが必要だった。
    optionsPARTUUIDblkid コマンドで調べた。 自分の環境の場合、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

マシンは NVidiaGPU を使っており、そのドライバに起因するものらしい。
今回 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/modulesnct6775 を追記して再起動したら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'

とりあえずここまで。
まだ設定は全てしていないかもしれないので、気づいたものがあれば追記する。