ここで言う「私でもできる!」は筆者でもできるという意味であり、これを読んだ全ての人ができるという意味ではないので注意
今回は短めです
背景
ラズパイ30台程をpxeブートすることになったが、TFTP_PREFIXだったり、TFTP_PREFIX_STRも書き換えたかったのでRaspberryPi Imagerのeeprom書き換えモードが使えなかった(今回に適していない)
->RaspberryPi Imagerと同じ感じでeepromを書き換えるSDを作ればいいのでは?
目的
RaspberryPi Imagerのeeprom書き換えSDのカスタム化
手法
- eeprom書き換えSDの用意
-
pieeprom.binを読めるようにする -
pieeprom.binとpieeprom.sigを新しく作成する - sdにコピーして検証
eeprom書き換えSDの用意
これは普通に上記ファイル以外が欲しいので、RaspberryPi Imagerを使って初めにブートのみ雑に指定して作成して大丈夫です。
(ex PXEならPXE、SDならsdなど)
細かい作成方法はこちらの記事で細かく書かれています参考文献1。
pieeprom.binを読めるようにする
お手元の端末にsdカードを接続してマウントなどをして
pieeprom.bin pieeprom.sig README.txt
recovery.bin vl805.bin vl805.sig
一式があることを確認します
このタイミングで、RPi以外を使っている方はgithubからコマンドをクローンする必要があります。
git clone https://github.com/raspberrypi/rpi-eeprom.git
cd rpi-eeprom
パターン1 新規にファイルを作成
こんな感じに記載してあげればOKです。
(ファイル名などもなんでもいいですが、今回はbootconf.txtとします)
後は ここを見ると他のオプションもわかったりします。
(TFTP_PREFIXだったり、TFTP_PREFIX_STR)もあります。
[all]
BOOT_UART=0
WAKE_ON_GPIO=1
ENABLE_SELF_UPDATE=1
BOOT_ORDER=0xf41
NET_INSTALL_AT_POWER_ON=1
パターン2 既存のeepromから編集
既存のものから編集したい場合はこちらが参考になり
rpi-eeprom-config ./pieeprom.bin --out bootconf.txt
とすることで、既存のbinからtxt形式で取得することができます。
pieeprom.binとpieeprom.sigを新しく作成する
作成した設定ファイル (以下bootconf.txtで進めるので各自で置き換えてください。)
まず新しいpieeprom.binを作成します。
rpi-eeprom-config --config ./bootconf.txt --out pieeprom.bin ./pieeprom.bin
ここで./pieeprom.binは確認したもともと存在しているpieeprom.binを指します。
なので、このコマンドでは同一ディレクトリで上書きをしてしまうので、上書きしたくない場合はディレクトリを分けるかbin名を分けたほうが良いです。
次に、.sigを作成します。
rpi-eeprom-digest -i pieeprom.bin -o pieeprom.sig
このコマンドではry)
sdにコピーして検証
どちらも出来上がったらsdカードへコピーをします。
cp ./pieeprom.bin /Volumes/NO\ NAME
cp ./pieeprom.sig /Volumes/NO\ NAME
コピーが完了したら、sdを実際にRPiへ差し込み電源を投入します。
eepromの記載が間違っていなければ画面が緑色になりLチカしますので、1台目の確認後はどれだけ大量のRPiがあっても、モニターに繋がなくても書き換えがわかります。
参考文献