NetBSD/evbarm (NetWalker)
NetBSD 7.99.11 時点の情報に基づいて記載しています。
bootable SD 作成
基本的には ryo さんの手順で良いのだけれど、Linux パーティションサイズが 512MB 未満だとブロックサイズが 1KB になってしまうので明示的に 4KB を指定してあげないと起動しない SD になるので注意。
なお、ここでいう起動しないは SHARP のロゴすら出ません。延々とリブートを繰り返しているのでしょう。
bootable SD 作成 & 設定手順
ここでは microSD を USB メモリリーダライタ経由で接続して操作を行っています。
# fdisk -u sd0 (fdisk パーティション更新。fdisk sd0 参照) # disklabel -t sd0 > netwalker-label.txt (適当に編集。disklabel -t sd0 参照) # disklabel -r -w -f netwalker-label.txt sd0 netwalker # newfs_ext2fs -O 1 -b 4096 -f 4096 /dev/rsd0e # mount -t ext2fs /dev/sd0e /mnt # echo /boot/netbsd.bin > /mnt/boot/boot.conf # cp /usr/src/sys/arch/evbarm/compile/NETWALKER/netbsd-ld0.bin /mnt/boot/netbsd.bin # umount /mnt # mount -o async /dev/sd0a /mnt # cd /mnt # for i in base comp etc games man misc modules tests text xbase xcomp xetc xfont xserver > do > gzip -dc /your/release/dir/evbarm/binary/sets/$i.tgz | tar --unlink -xpvf - > done # cd etc # ln -sf /usr/share/zoneinfo/Asia/Tokyo localtime # vi rc.conf # vi wscons.conf # vi fstab # cd # umount /mnt
fdisk sd0
Linux パーティションのオフセットは 1 にしておかないと bootable にならないらしい。
残りは NetBSD パーティションに。
nonaka@koharu$ fdisk sd0 Disk: /dev/rsd0d NetBSD disklabel disk geometry: cylinders: 15423, heads: 64, sectors/track: 32 (2048 sectors/cylinder) total sectors: 31586304, bytes/sector: 512 BIOS disk geometry: cylinders: 1023, heads: 255, sectors/track: 63 (16065 sectors/cylinder) total sectors: 31586304 Partitions aligned to 2048 sector boundaries, offset 1 Partition table: 0: Linux native (sysid 131) start 1, size 129023 (63 MB, Cyls 0-8/7/63), Active PBR is not bootable: All bytes are identical (0x00) 1: NetBSD (sysid 169) start 131072, size 31455232 (15359 MB, Cyls 8/40/33-1966/39/57) PBR is not bootable: Bad magic number (0x4728) 2: <UNUSED> 3: <UNUSED> First active partition: 0 Drive serial number: 0 (0x00000000)
disklabel -t sd0
適当なので / と swap だけ。
Linux パーティションも mount できないとカーネルの更新が NetBSD 上から行えないので設定しておくこと。
netwalker:\ :dt=SCSI:se#512:ns#32:nt#64:sc#2048:nc#15423:\ :pa#29227008:oa#131072:ta=4.2BSD:ba#32768:fa#4096:\ :pb#2097152:ob#29358080:tb=swap:\ :pc#31455232:oc#131072:\ :pd#31586304:od#0:\ :pe#129023:oe#1:te=Linux Ext2:be#4096:fe#4096:
インストール後の設定
/etc/localtime
東京標準時設定
# ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
/etc/rc.conf
全部載せるの面倒なので色々省いています。
- rc_configured=YES 化は必須
- キーボード配列の設定のために
wscons=YES
。これをしないとキートップと入力される文字がずれるので注意。 - 電源ボタンを押したときにユーザーランド側から普通にシャットダウンしてほしいので
powerd=YES
- NetWalker の RTC は UTC で設定されている様なので rtclocaltime は不要
rc_configured=YES hostname="netwalker.myhome.local" wscons=YES powerd=YES
/etc/wscons.conf
全部載せるの面倒なので色々省いています。
- キーボード配列のために encoding jp を指定。これをしないとキートップと入力される文字がずれるので注意。
encoding jp
/etc/fstab
いつもの設定
/var/shm はもう少し多くても (25%?) 良さそう
/dev/ld0a / ffs rw,log 1 1 /dev/ld0b none swap sw,dp tmpfs /tmp tmpfs rw,-m1777,-sram%50 tmpfs /var/shm tmpfs rw,-m1777,-sram%10 ptyfs /dev/pts ptyfs rw kernfs /kern kernfs rw procfs /proc procfs rw
SD カードからの起動方法
マウス左右ボタンを押しながら電源ボタンを押す。電源ランプが付いて消えたら SD からブートするので画面に変化があるまでそのまま待つ。
この際に再度電源ランプが付いたりすると起動に失敗しているような気がする。
リセット方法
電源ボタン長押し。四秒間程度