玄箱proを初期化する方法

ものすごい今更なんですが、玄箱proを初期化する方法です。シリアルコンソール環境必須。

参考にしたサイト

以下の環境で行います。

配線とかの準備

SCON-KIT/PROで,kuroとwindowsのusbを繋ぎます.このとき,kuro側をがっちり挿しておかないと,後でキー入力できないかもしれないので注意.windowsのデバイスマネージャでOSが認識してるCOMポートnoを確認したら,Tera Term Proを立ち上げます.

TeraTermでは,シリアルポートのオプションで次のように設定.

次にwindowsIPアドレスを192.168.11.1に設定.同時にtftpサーバを立ち上げて,以下の2つのファイルを/に配置しておきます.

ファイルは http://kuroutoshikou.com/modules/display/?iid=966 とかにあるような.

環境変数の初期化

Hit any key to stop autoboot: 0と出てるときにキーを押して,以下をコピペ.

setenv loads_echo 0
setenv ipaddr 192.168.11.150
setenv serverip 192.168.11.1
setenv rootpath /nfs/arm
setenv stdin serial
setenv stdout serial
setenv stderr serial
setenv cpuName 926
setenv CASset min
setenv enaMonExt no
setenv enaFlashBuf yes
setenv enaCpuStream no
setenv MALLOC_len 4
setenv ethprime egiga0
setenv bootargs_end :::DB88FXX81:eth0:none
setenv buffalo_ver BOOTVER=1.091
setenv build_time 18:10:02
setenv initrd initrd.buffalo
setenv kernel uImage.buffalo
setenv bootargs_base console=ttyS0,115200
setenv bootargs_root root=/dev/mtdblock2 rw panic=5
setenv bootargs $(bootargs_base) $(bootargs_root) $(buffalo_ver)
setenv nand_uImage_offset 20000
setenv default_kernel_addr 0x00100000
setenv default_initrd_addr 0x02000000
setenv bootcmd 'nboot $(default_kernel_addr) 0 $(nand_uImage_offset) ;setenv bootargs $(bootargs_base) $(bootargs_root) $(buffalo_ver); bootm $(default_kernel_addr)'
setenv nand_boot yes
setenv bootdelay 3
setenv disaMvPnp no
setenv overEthAddr no
setenv usb0Mode host
setenv usb1Mode host
setenv ethact egiga0
setenv tftp_load_kernel tftp $(default_kernel_addr) $(kernel)
setenv tftp_load_initrd tftp $(default_initrd_addr) $(initrd)
setenv set_boot_args setenv bootargs $(bootargs_base) $(bootargs_root) initrd=0x02000040,20M $(buffalo_ver)
setenv def_tftp '$(tftp_load_kernel);$(tftp_load_initrd);$(set_boot_args); bootm $(default_kernel_addr) $(default_initrd_addr)'
saveenv

rebootします.

NANDフラッシュメモリの初期化

kuroの電源を入れたら,Hit any key to stop autoboot: 0とか言ってるところでキーを押します.tftpでファイルの転送が済んだらlinuxが立ち上がるはずなので,

user=root
pass=kuroadmin 

でログイン.

BusyBoxのシェル上で,次のように入力してフラッシュを初期化します.

~ # update_mtd.sh all

Doneと出たらおk.

パーティションの破壊

sdaにlinuxが入っている場合,パーティションテーブルを破壊しないとそのlinuxが立ち上がってしまうので注意.

以下のようにしてテーブルを破壊します.

dd if=/dev/zero of=/dev/sda bs=1M count=1

ここで電源を落として,配線し直しておきましょう.以降は通常のサブネット上でtelnetすれば操作できます.

shutdown -h

Debian化(lenny)

debian lennyから玄箱proのサポートが追加されたそうで、かなり楽にDebian化できました。そのときのメモ。

参考サイト

インストール用パーティションを作成しますが、これはインストール中に潰されるので適当に。

玄箱telnetでログインして、

$ fdisk /dev/sda
Command: n
Command action: p
Partition number: 1
First cylinder: Enter
Last cylinder: +50M
Command: w

という感じで、/dev/sda1を作る。続いて,

mkfs.ext2 /dev/sda1

ファイルシステム作成。

/mnt/disk1にマウントする。

mount /dev/sda1 /mnt/disk1

そのままだとホスト名の名前解決がうまくできないので以下を実行.

echo "hosts: files dns" > /etc/nsswitch.conf

で、以下をコピペ。

cd /mnt/disk1
wget http://ftp.nl.debian.org/debian/dists/testing/main/installer-armel/current/images/orion5x/network-console/buffalo/kuroboxpro/config-debian
wget http://ftp.nl.debian.org/debian/dists/testing/main/installer-armel/current/images/orion5x/network-console/buffalo/kuroboxpro/initrd.buffalo
wget http://ftp.nl.debian.org/debian/dists/testing/main/installer-armel/current/images/orion5x/network-console/buffalo/kuroboxpro/uImage.buffalo

さらに一行.

sh config-debian

で,reboot.立ち上がったらいよいよDebianをインストールします。

sshで繋ぐ.user=installer, pass=install

ssh installer@192.168.1.100

後は普通のDebianインストールと同じです。私はほとんどデフォルトでインストールしました。