LS-GLがTFTPでしか起動しなくなったら・・・
LS-GLを久しぶりにセットアップしたい気分になったので、やってみたのですが・・・
なんと、TFTPモードでしか起動しなくなっちったよ???
理由はわからんが起動しないものはしないので、世の中の人に聞いてみることに・・・
U-Bootで起動するための方法を調べてくれている人たちがいるではないですか!!
R.Shingenさんによると、LS-GLには前期型と後期型があるようで、HDDを指定する部分が違うようです!
家のはどうやら後期型らしいのでハードディスクの指定は ide 0:1 みたい。
ちなみに前期型は ide 1:1 らしい。
で、R.Shingenさんのブログのように設定してみるものの家のLS-GLは言うことを聞いてくれな〜い!
仕方なく、さらに世の中の人に頼ることにした・・・
すると!「パソコンと会話ができる男 Livingston のブログ」という、まさに新人類(古)が残してくれた素晴らしい遺産を発見!!
で、パソコンと会話ができる男 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パーテーションも変更しておく
環境変数を見てみる。
起動テスト
うまくいったら、再起動して、もう一度 setenvコマンドで設定後、saveenv コマンドで保存しておく・・・
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)'
これでよし!!
コメント
コメントを投稿