Raspi-osの/boot/config.txt

  • 投稿日:
  • by
  • カテゴリ:

Rpi4(8GB)がbootしなくなったので調べものをした。実は電源の容量不足で、OSが立ち上がる途中にSSDが落ちてしまうのが原因であったのだが、事実誤認にてconfig.txtで何とかなるかと試行錯誤してしまった。

以下の基本レシピの部分を除いて、/boot/config.txtを直接編集しなければいけない場面は少ないと思う。基本的にraspi-configコマンド経由の設定でOK。

1.基本レシピ

  • 基本的にはroot権限でraspi-osのraspi-configを実行すれば充分。Pi3/Pi4をサーバー用途にするときは、Interfaceの項でsshのみYes、ssh以外はNoを選択。

  • さらにRpi2/3/4でWifiやBluetoothを無効にするには、最後の行に下記追加。
    BT無いボードはwifiのみ有効
    dtoverlay=disable-wifi
    dtoverlay=disable-bt

  • 古いLCDパネルとか、小型ディスプレイを使うときには、raspi-configの操作だけでは対処できない。/boot/config.txt で適切な解像度を指定し記述する。
    公式に発表はされていないが、Rpi3A/Bでconfig.txtの下記行を読み込ませると、ボードの書き込み専用ROMが書き換わり、raspi-osをUSB mass strageからbootできる。(raspi-os 32/64bit双方で確認)
    program_usb_boot_mode=1
    mini-SDがスロットに刺さっていれば、USBよりも優先される。
    変更は不可逆的。Mini-SDスロットにメディアが無ければ、USBからbootするので問題なし。
    なお、FreeBSD(arm64)のUSB mass storageにあるboot-loaderでも、Raspi-osのconfig.txtを事前に読み込ませることで、本方法でのbootに成功した。ただし、pcに接続して見える/msdosfs/config.txtの"dtoverlay=mmc"をコメントアウトすることが必要。

cat /boot/msdos/config.txt
[all]
arm_64bit=1
dtparam=audio=on,i2c_arm=on,spi=on
# dtoverlay=mmc
dtoverlay=disable-bt
device_tree_address=0x4000
kernel=u-boot.bin

[pi4]
hdmi_safe=1
armstub=armstub8-gic.bin

3B/3B+にて確認
(2021/9/19追記)

  • 下記にてUSB mass storage の立ち上がりを2→5秒に伸ばせる。当方環境では不要で外した。HDDから起動する際に必要となるかも?パラメータ=1で5秒。
    program_usb_boot_timeout=1
    ネタ元はこちら

2.概要

Raspi-OSでは、/boot/config.txtという設定用テキストファイルにハードウェア状態を定義して、kernelを起動する。これはあたかもPCでのBIOS設定の如きである。PCがマザーボードのEEPROMに書き込むのに対して、Raspberry Piでは/boot/config.txtのテキストファイルで格納されている点が異なる。
Raspi-OSのbootディスク(mini-SDかUSB-Mass strage)は、FAT32の/bootパーテーションと、ext4(Linux)のrootfsのマルチパーテーションになっている。Bootディスクが格納された記録メディアをWindowsPCに接続すると、/bootのパーテーションを参照でき、config.txtはメモ帳、あるいはエディタ等で編集が可能だ。Windowsのエクスプローラで、ラベルが"boot"なるリムーバルディスクが見えたら、その中に、config.txtとして表示される。
Raspi-OSが初期状態で起動した後になるが、PCのBios設定の様なプログラムである、/usr/bin/raspi-config を使って、/boot/config.txtの最低限を設定できる。Rpi3, Rpi4で設定できる項目が違い、config.txtを直接エディタで編集必要となる部分もあるが、後に例を交えて詳述する。
(正式リリースの32bit(armhf)版とβ状態の64bit(aarch64)版のいずれも)

3.目的,使用環境

  • 用途
    ネットワークサーバー用途を想定。
    sshのみ有効。Serial, I2C, GPIOは無効。
    GUIを使わないのでVNCも無効。
    イーサネット接続。WIFIやBTは無効。

各論は別記事に纏める。

2021年9月7日