NetBSD/hpcarm on Jornada 720


guestbook に NetBSD/hpcarm についての質問/感想をいただいたので半年ぶりに日記を更新したよ. 以下の情報は 2003/03/09にinstallしたときの情報なので out of date な可能性が高いけど, メモとして残しておきます. ちなみにインストーラがまともに動くならNetBSD/hpcarm関連情報のページに情報がたくさんあるので,そちらを参照した方が良いです.

install時に用意するものは, の3台(FreeBSD はいらないかもしれない). NetBSD/hpcarm のインストーラがまともなら何も考えずに install できると思うんだけど,あの頃はインストーラがディスクをうまく切れなかったので NetBSD/i386 上で 256MB の Compact Flash (以下 CF) を mount して tar で流しこむ方法を取りました. FreeBSD は fdisk をするためだけに使用したけどこれはNetBSD/i386 でもできるかも. では,以下手順.
  1. CFを NetBSD/i386 から読めるデバイス(USB Card reader等)につなぐ.
  2. NetBSD/i386 で CF を認識(今回は /dev/rsd0)したら, dd で CFの先頭部分をとばす.
    # dd if=/dev/zero of=/dev/rsd0d bs=1m count=1 
  3. FreeBSD/i386 の /stand/sysinstall で以下のように fdiskを実行
        5M   4  bootable  <-- FAT
      239M 169  bootable  <-- NetBSD
      
      Boot Manager: None
    
  4. Jornada に CF を挿して起動. WindowsCE が CF の foramt をしてくれる.
    (この時,先頭の5MBだけがformatされれば成功)
    先頭の5MBだけ FAT にしておくのは, hpcboot.exe を置いておく必要があるため.
  5. 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
    
  6. 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>
    
  7. 続いて 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,
    
  8. 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
    
  9. いよいよ 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
    
  10. 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
    
  11. MAKEDEV を実行
    # cd /mnt/dev
    # ./MAKEDEV all
    
  12. NetBSD/hpcarm の /etc/rc.conf を編集
    # vi /mnt/etc/rc.conf
    hostname=jornada
    wscons=YES
    sshd=YES
    
  13. 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
    
  14. 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
    
  15. 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
    
  16. 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 が起動できるはず. スクリーンショット等はこちら.

日記の感想はこちらへどーぞ.

Generated with mkdiary.rb
Back to my diary