2024年3月30日土曜日

LS-GLがTFTPでしか起動しなくなったら・・・ [ LS-GL(Debian) ]

LS-GLを久しぶりにセットアップしたい気分になったので、やってみたのですが・・・
なんと、TFTPモードでしか起動しなくなっちったよ???

理由はわからんが起動しないものはしないので、世の中の人に聞いてみることに・・・


U-Bootで起動するための方法を調べてくれている人たちがいるではないですか!!
R.Shingenさんによると、LS-GLには前期型と後期型があるようで、HDDを指定する部分が違うようです!
家のはどうやら後期型らしいのでハードディスクの指定 ide 0:1 みたい。
ちなみに前期型は ide 1:1 らしい。

で、R.Shingenさんのブログのように設定してみるものの家のLS-GLは言うことを聞いてくれな〜い!

仕方なく、さらに世の中の人に頼ることにした・・・

すると!「パソコンと会話ができる男 Livingston のブログ」という、まさに新人類(古)が残してくれた素晴らしい遺産を発見!!


どうしても、
** Too many args (max. 16) **

となってしまって・・・うまくいかない・・
でも、R.Shingenさんのものとよく見くらべてみると、変数内で setenv している部分を発見!!
んん? これって、中で設定しなくてもいいんじゃね?
ってことで、外で設定したら・・・

パンパカパーン!!
大成功でした!!


では、以下に方法を残すこととする。。。


まずは、シリアルコンソールで接続する。
速度は115200bpsですよ!

関係ないけど、速度で「通信速度はボーレートと呼び、単位は [bps] ・・・」とか、平気で言ってるサイトとかがあるけど、どうなの?
まあ、たまたまUARTなどでは同じなだけで、ボーレートの単位は [baud(ボー)] だろ!! ボーだ!ボーだ!
昔々カセットテープでデータセーブしてた データレコーダ をなめんな(笑)


[Ctrl] + [c] などして、U-Bootのコマンドラインに入る。

環境変数を printenv コマンドで確認してみる。
U-BOOTの現状の環境変数(一部伏字)
Marvell>> printenv bootargs=$(bootargs_base) $(bootargs_root) baudrate=115200 loads_echo=0 rootpath=/nfs/arm cpuName=926 CASset=min MALLOC_len=4 bootargs_end=:::XXXXXXXXX:eth0:none ethact=egiga0 ethaddr=xx:xx:xx:xx:xx:xx buffalo_ver=BOOTVER=1.10 buffalo_minor_ver=BOOT_MINOR_VER=1.00 build_time=18:35:39 initrd=initrd.buffalo kernel=uImage.buffalo bootargs_base=console=ttyS0,115200 def_tftp=tftp 0x00100000 $(kernel);tftp 0x00800000 $(initrd);setenv bootargs $(bootargs_base) $(bootargs_root) $(buffalo_ver) tftpboot=yes;bootm 0x00100000 0x00800000 ipaddr=192.168.X.Y bootargs_root=root=/dev/sdaX rw panic=5 filesize=682A84 serverip=192.168.X.Z stdin=serial stdout=serial stderr=serial enaMonExt=no enaFlashBuf=yes enaCpuStream=no ethprime=egiga0 bootdelay=3 disaMvPnp=no overEthAddr=no usb0Mode=host usb1Mode=host force_tftp=1 bootcmd=tftp 0x00100000 $(kernel);tftp 0x00800000 $(initrd);setenv bootargs $(bootargs_base) $(bootargs_root) $(buffalo_ver) tftpboot=yes;bootm 0x00100000 0x00800000

書き換えてみる・・・
ついでにrootパーテーションも変更しておく
U-BOOTでコマンド実行
Marvell>> setenv bootargs_root 'root=/dev/sda2 rw panic=5' Marvell>> setenv bootargs $(bootargs_base) $(bootargs_root) $(buffalo_ver) Marvell>> setenv bootcmd 'ide reset; ext2load ide 0:1 0x00100000 /$(kernel);ext2load ide 0:1 0x00800000 /$(initrd);bootm 0x00100000 0x00800000;'

環境変数を見てみる。
U-BOOTの変更箇所の環境変数
Marvell>> printenv ... bootargs_root=root=/dev/sda2 rw panic=5 bootargs=console=ttyS0,115200 root=/dev/sda2 rw panic=5 BOOTVER=1.10 bootcmd=ide reset; ext2load ide 0:1 0x00100000 /$(kernel);ext2load ide 0:1 0x00800000 /$(initrd);bootm 0x00100000 0x00800000; ...

起動テスト
Marvell>> boot

うまくいったら、再起動して、もう一度 setenvコマンドで設定後、saveenv コマンドで保存しておく・・・

でも、ちょっと問題も・・・この方法だと bootargs を書き換えちゃうので、

bootargs=$(bootargs_base) $(bootargs_root) $(buffalo_ver)

この並びを忘れないようにしないと・・・

あっ!環境変数に備忘録として、フォーマットを書いておけばいいじゃん!
(変数展開しないように、クォーテーションで囲ってね!)

ってことで save の前に
Marvell>> setenv bootargs_FORMAT '$(bootargs_base) $(bootargs_root) $(buffalo_ver)'

これでよし!!
 
Marvell>> saveenv

あ〜今日もめでたい一日でした(笑)

ふんどしの持ち主

0 件のコメント:

コメントを投稿