DD-WRTやその他のファームをルーターに焼くのにFON FLASHというのを使い始めた。linuxではCUIのfon-flashとGUIのfon-flash-guiがある。fon-flash-guiの方が使いやすそうだが、グラフィック表示をするために色々ライブラリを入れなくてはならず、バージョンが合わないと途中でいきなり落ちたりするので危険だ。fon-flashを使う方が安心だろう。

fon-flash -i enp2s0 -c gargoyle gargoyle_1.10.0-ath25-root.squashfs gargoyle_1.10.0-ath25-vmlinux.lzma

なんて感じで起動する。引数が覚えられないが、引数なしでfon-flashを起動すると説明が出てくるので、それに従えば良い。で、書き込みを始めると10分くらいして

tftp repeat block 1234

みたいな表示が延々出てくる。数字の部分は1ずつ増えてゆく。tftpがrepeatしているのだから、通信でエラーになっているっぽい。googleで検索すると”Its stuck in a repetition loop”とあったので電源ケーブルを引き抜いて中断した。そして再びfon-flashを起動するとまた同じメッセージが延々と表示される。これを3回繰り返した後、意を決して(嫌になって)、tftp repeat blockが表示されてから放置した。すると数字が12000を超えた辺りで書き込みが終了して、doneと表示された。なんだ、待っていれば良かったのだ。それにしてもファームの書き込み中に電源断をしても平気なのは良い。ファームの書き込みアドレスと、Redbootの部分のアドレスが違うので安全に中断ができる。書き込んでいるファーム自体が書き込みプログラム部分も含んでいると、中断したらそのルーターは文鎮になってしまう。