U-Bootから非署名なファームウェアを焼く方法
やることは次の通り
1. USBに.binで終わるファームウェアを入れる
2. 焼き焼き
3. 非著名コード用にbootcmdを書き換え
USBに.binで終わるファームウェアを入れる
自分でソースからビルドするか、
この辺においてあります
そしたら、FAT系列でフォーマットしたUSBメモリのルートに、dsm232.binという名前で置いてください。
焼き焼き
シリアル(UART)を接続した状態で起動し、キーボードのボタンを押しながら電源を入れるとうsbに入れます。
code:U-Boot上で実行するスクリプト
usb start
fatload usb 0 02100000 dsm232.bin
nand erase ${WORK_IMG} ${filesize}
nand write 02100000 ${WORK_IMG} ${filesize}
※ もっとブート方法や焼き方を知りたい方はDSM260のREADMEを参照してください
非著名コード用にbootcmdを書き換え
このままだとセキュアなブート領域から読もうとして起動時に失敗するので、ブート時のコマンドを変更します。
code: U-Boot上で実行するスクリプト
env set bootcmd 'dcache on;run ledon; run show_logo; run bootm_image; boots'
env set bootm_image 'nand read ${RAM} 2400000 18e0000; bootm ${RAM}'
env save
以上で、再起動することで、入れた非著名のイメージを起動することができます。
万が一、正しく書き込めていない場合でも、bootsによりfactory領域にあるフェイルセーフの公式イメージが起動します。