- CFを NetBSD/i386 から読めるデバイス(USB Card reader等)につなぐ.
- NetBSD/i386 で CF を認識(今回は /dev/rsd0)したら, dd で CFの先頭部分をとばす.
# dd if=/dev/zero of=/dev/rsd0d bs=1m count=1
- FreeBSD/i386 の /stand/sysinstall で以下のように fdiskを実行
5M 4 bootable <-- FAT
239M 169 bootable <-- NetBSD
Boot Manager: None
- Jornada に CF を挿して起動. WindowsCE が CF の foramt をしてくれる.
(この時,先頭の5MBだけがformatされれば成功)
先頭の5MBだけ FAT にしておくのは, hpcboot.exe を置いておく必要があるため.
- NetBSD/i386にCFをつないで disklabel を実行.
# disklabel -I -i sd0
partition> a
Filesystem type [?] [4.2BSD]:
Start offset [5c, 10240s, 5M]:
Partition size ('$' for all remaining) [239.336c, 490160s, 239.336M]: 489472
a: 489472 10240 4.2BSD 0 0 0 # (Cyl. 5 - 243)
partition> P
8 partitions:
# size offset fstype [fsize bsize cpg/sgs]
a: 489472 10240 4.2BSD 0 0 0 # (Cyl. 5 - 243)
c: 489472 10240 unused 0 0 # (Cyl. 5 - 243)
d: 500400 0 unused 0 0 # (Cyl. 0 - 244*)
e: 10208 32 MSDOS # (Cyl. 0*- 4)
partition> W
Label disk [n]? y
Label written
partition> Q
- fdisk を実行して確認. 先頭のパーティションが FAT, 残りが NetBSD 用のパーティションになっているか確認.
# fdisk sd0
Disk: /dev/rsd0d
NetBSD disklabel disk geometry:
cylinders: 244 heads: 64 sectors/track: 32 (2048 sectors/cylinder)
BIOS disk geometry:
cylinders: 244 heads: 64 sectors/track: 32 (2048 sectors/cylinder)
Partition table:
0: sysid 4 (Primary DOS with 16 bit FAT <32M)
start 32, size 10208 (4 MB), flag 0x80
beg: cylinder 0, head 1, sector 1
end: cylinder 4, head 63, sector 32
1: sysid 169 (NetBSD)
start 10240, size 489472 (239 MB), flag 0x80
beg: cylinder 5, head 0, sector 1
end: cylinder 243, head 63, sector 32
2: <UNUSED>
3: <UNUSED>
- 続いて newfs を実行.
# newfs -m 5 -b 8192 -f 1024 /dev/rsd0a
/dev/rsd0a: 489472 sectors in 239 cylinders of 64 tracks, 32 sectors
239.0MB in 6 cyl groups (44 c/g, 44.00MB/g, 9920 i/g)
super-block backups (for fsck -b #) at:
32, 90176, 180320, 270464, 360608, 450752,
- installboot を実行.
# /usr/mdec/installboot -v /usr/mdec/biosboot.sym /dev/rsd0a
/usr/mdec/biosboot.sym: entry point 0x8063000
proto bootblock size 48128
room for 10 filesystem blocks at 0x580
/dev/sd0a is not mounted
mounted /dev/sd0a at /tmp/installboot06098a
unmounting
Will load 79 blocks.
dblk: 2576, num: 16
dblk: 2592, num: 16
dblk: 2608, num: 16
dblk: 2624, num: 16
dblk: 2640, num: 15
BSD partition starts at sector 10240
- いよいよ install. と言っても, NetBSDのftpサイトから /pub/NetBSD/NetBSD-release名/hpcarm/binary/sets 以下の tar ballを持ってきて展開するだけ. tar を展開し終わったら NetBSD/hpcarm の /etc/fstab を作っておく.
# mount -o async,noatime /dev/sd0a /mnt
# cd /mnt
# for x in $somewhere/hpcarm/binary/sets/*.tgz;do tar xzpf $x; done
# cat > /mnt/etc/fstab
/dev/wd0a / ffs rw,softdep,noatime 1 1
[Ctrl]+D
- X11 も同様に tar を展開すれば OK. あらかじめ ftp://anduin.eldar.org から X11R6_hpcarm 以下を持ってきておく. tar ball の展開後, Xhpc を bin/ にコピー, Xmodmap を NetBSD/hpcarm の /usr/X11R6/lib/X11/xinit/.Xmodmap にコピーする.
# mkdir /mnt/usr/X11R6
# cd /mnt/usr/X11R6
# for x in $somewhere/X11R6_hpcarm/*.tar.gz; do tar xzpf $x; done
# mv Xhpc bin/
# rm bin/Xhpc.DIST
# cp $somewhere/X11R6_hpcarm/Xmodmap /mnt/usr/X11R6/lib/X11/xinit/.Xmodmap
- MAKEDEV を実行
# cd /mnt/dev
# ./MAKEDEV all
- NetBSD/hpcarm の /etc/rc.conf を編集
# vi /mnt/etc/rc.conf
hostname=jornada
wscons=YES
sshd=YES
- CF の FAT領域(先頭 5MB分の領域)に hpcboot.exe をコピー. hpcboot.exe はどこから持ってきたか忘れたけど,たぶん今なら ftp.netbsd.org の NetBSD-current以下から hpcboot.exe.uue を落として来て, uudecode すればいいんだと思う.
# cd /
# umount /mnt
# mkdir /mnt2
# mount -t msdos /dev/sd0e /mnt2
# cp $somewhere/hpcboot.exe /mnt2
- JornadaにCFを挿して WindowsCE を boot. WindowsCE が boot したら,CFの中の hpcboot.exe を実行. hpcboot のメニューは以下のように設定する. "x" と書かれたところのチェックボックスをオンにする.
/ netbsd
HP Jornada 720 (Japanese)
x wd
x boot verbosely
x boot to single user
ask for file name to boot from
break into kernel debugger
serial console
- hpcboot から NetBSD/hpcarm を boot. NetBSD/hpcarm がsingle user mode で起動するので,とりあえず以下を実行して /etc/rc.conf の rc_configured を "YES"に設定.
# mount -a
# vi /etc/rc.conf
rc_configured=YES
# [Ctrl]+D
- multi user mode で起動するので, /etc/ld.so.conf を編集.
# vi /etc/ld.so.conf
/usr/X11R6/lib
/usr/local/lib
/usr/pkg/lib
/usr/lib
これで Jornada 7x0 で NetBSD/hpcarm + X11R6 が起動できるはず.
スクリーンショット等はこちら.