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 からブートするので画面に変化があるまでそのまま待つ。
この際に再度電源ランプが付いたりすると起動に失敗しているような気がする。

リセット方法

電源ボタン長押し。四秒間程度