パスワードを忘れた? アカウント作成
475604 journal

yk700101の日記: install NetBSD 4.0 on HPW-50PA

日記 by yk700101
○概要
    NetBSD 4.0 を HPW-50PA にインストールしたときのメモ。

○目的
    ・HPW-50PA の利用法を探る。

○前提
    1. VMware Server を使用して VMware 仮想マシンにインストールした、
            NetBSD 4.0 を利用。

○インストール(VMware 仮想マシン上)
    ・方針
        パーティションの作成、ファイルの展開などを
        VMware 仮想マシン上の NetBSD 4.0 で行っておく。

    ・使用したもの
        CF(コンパクトフラッシュ) 1GB
        USB カードリーダ

    ・NetBSD hpcsh インストール用 CD-ROM イメージの取得
        ftp://ftp4.jp.netbsd.org/pub/NetBSD/iso/4.0/hpcshcd-4.0.iso

    ・VMware 仮想マシン の NetBSD 4.0 を起動

        起動後、
            ・仮想マシンの CD-ROM を hpcshcd-4.0.iso に接続。
            ・仮想マシンに USB 経由で CF を接続。

    ・パーティション作成(CF)
        目的:
            パーティションを2つ(32MB/残り全部)作成する。

        操作:
            su -

            #----------------------------------------
            # パーティションを作成するための情報を生成
            #----------------------------------------
            #ターゲットディスク
            TARGET_DISK=sd0

            #ターゲットディスクの全セクタ数
            TOTAL_SECTORS=`fdisk ${TARGET_DISK} \
                    | grep --max-count=1 'total sectors' \
                    | sed 's/^[^0-9]*\([0-9]*\)$/\1/'` && \
                echo ${TOTAL_SECTORS}

            #パーティション 0 についての情報
            PART_0_START=63
            PART_0_SIZE_MB=32
            PART_0_SIZE=`expr ${PART_0_SIZE_MB} \* 1024 \* 1024 / 512` \
                && echo ${PART_0_SIZE}

            #パーティション 1 についての情報
            PART_1_START=`expr ${PART_0_START} + ${PART_0_SIZE}` && \
                echo ${PART_1_START}
            PART_1_SIZE=`expr ${TOTAL_SECTORS} - ${PART_0_START} - ${PART_0_SIZE}` && \
                echo ${PART_1_SIZE}

            #----------------------------------------
            # パーティションの作成
            #
            # (注)
            # 1セクタは 512 byte。
            #
            # -s id/start/size
            #
            # 006 Primary 'big' DOS, 16-bit FAT (> 32MB)
            # 169 NetBSD
            #
            # Installed bootfile doesn't support required options. と表示されるが、
            # 特に気にしなくて良い模様。
            #----------------------------------------
            fdisk -fu -0 -s 6/${PART_0_START}/${PART_0_SIZE} ${TARGET_DISK}
            fdisk -fu -1 -s 169/${PART_1_START}/${PART_1_SIZE} ${TARGET_DISK}

            #確認
            fdisk ${TARGET_DISK}

        出力:
            Disk: /dev/rsd0d
            NetBSD disklabel disk geometry:
            cylinders: 991, heads: 64, sectors/track: 32 (2048 sectors/cylinder)
            total sectors: 2030112

            BIOS disk geometry:
            cylinders: 127, heads: 255, sectors/track: 63 (16065 sectors/cylinder)
            total sectors: 2030112

            Partition table:
            0: Primary 'big' DOS, 16-bit FAT (> 32MB) (sysid 6)
                    start 63, size 65536 (32 MB, Cyls 0-4/21/16), Active
            1: NetBSD (sysid 169)
                    start 65599, size 1964513 (959 MB, Cyls 4/21/17-126/93/63)
                            PBR is not bootable: Bad magic number (0x2042)>
            2: <UNUSED>
            3: <UNUSED>

    ・ディスクラベルの設定
        操作:
            #よく分からなかった。
            # とりあえず、以下のコマンドで設定するものと思われるが、
            # 今回は修正する必要は無い模様。
            disklabel -i ${TARGET_DISK}
            disklabel -e ${TARGET_DISK}

            #確認
            disklabel -r ${TARGET_DISK}

        出力:
            # /dev/rsd0d:
            type: ESDI
            disk:
            label: fictitious
            flags:
            bytes/sector: 512
            sectors/track: 63
            tracks/cylinder: 16
            sectors/cylinder: 1008
            cylinders: 2014
            total sectors: 2030112
            rpm: 3600
            interleave: 1
            trackskew: 0
            cylinderskew: 0
            headswitch: 0 # microseconds
            track-to-track seek: 0 # microseconds
            drivedata: 0

            7 partitions:
            # size offset fstype [fsize bsize cpg/sgs]
              a: 1999392 30720 4.2BSD 0 0 0 # (Cyl. 30*- 2013)
              c: 1999392 30720 unused 0 0 # (Cyl. 30*- 2013)
              d: 2030112 0 unused 0 0 # (Cyl. 0 - 2013)
              e: 30657 63 MSDOS # (Cyl. 0*- 30*)

    ・パーティションをフォーマット
        操作:
            newfs /dev/${TARGET_DISK}a
            newfs_msdos /dev/${TARGET_DISK}e

    ・パーティションをマウント
        操作:
            #マウントポイント(CF)
            MOUNT_POINT_CF=/root/cf

            #マウント
            mkdir ${MOUNT_POINT_CF}
            mount /dev/${TARGET_DISK}a ${MOUNT_POINT_CF}
            mount

        備考:
            softdep を付けた時は、
            unmount 時に Device Busy とエラーメッセージが表示されて
            アンマウントできなくなった。
            softdep が原因かどうかは不明。

    ・インストール元をマウント
        操作:
            #マウントポイント(CD-ROM)
            MOUNT_POINT_CDROM=/root/cdrom

            #マウント
            mkdir ${MOUNT_POINT_CDROM}
            mount -t cd9660 -o ro /dev/cd0a ${MOUNT_POINT_CDROM}
            mount

    ・インストールファイルを展開
        操作:
            cd ${MOUNT_POINT_CF}
            tar xvzpf ${MOUNT_POINT_CDROM}/hpcsh/binary/sets/base.tgz
            tar xvzpf ${MOUNT_POINT_CDROM}/hpcsh/binary/sets/kern-GENERIC.tgz
            tar xvzpf ${MOUNT_POINT_CDROM}/hpcsh/binary/sets/etc.tgz
            tar xvzpf ${MOUNT_POINT_CDROM}/hpcsh/binary/sets/man.tgz

        備考:
            とりあえず、 man.tgz も展開しておいた。

    ・Special file の作成
        操作:
            cd ${MOUNT_POINT_CF}/dev
            ./MAKEDEV all

    ・fstab の作成
        操作:

            (
                echo "/dev/wd0a / ffs rw,noatime,nodevmtime 1 1"
            ) \
                > ${MOUNT_POINT_CF}/etc/fstab

            # 確認
            cat ${MOUNT_POINT_CF}/etc/fstab

        備考:
            マウントオプションがどういう効果があるかは、今ひとつ理解できていない。

    ・rc.conf の設定
        操作:
            # ファイルバックアップ
            cp -i ${MOUNT_POINT_CF}/etc/rc.conf ${MOUNT_POINT_CF}/root/rc.conf.backup

            # オプションの追加
            (
                cat ${MOUNT_POINT_CF}/root/rc.conf.backup
                echo
                echo '#myuser -->'
                echo 'rc_configured=YES'
                echo 'rtclocaltime=YES'
                echo 'no_swap=YES'
                echo '#myuser <--'
            ) \
                > ${MOUNT_POINT_CF}/etc/rc.conf

            # 確認
            cat ${MOUNT_POINT_CF}/etc/rc.conf

        備考:
            あとでタイムゾーンを設定する必要がある模様。

    ・MSDOS 領域 に boot loader をインストール
        操作:
            #マウントポイント(CF の MSDOS 領域)
            MOUNT_POINT_CF_MSDOS=/root/cf_msdos

            #マウント
            mkdir ${MOUNT_POINT_CF_MSDOS}
            mount -t msdos /dev/${TARGET_DISK}e ${MOUNT_POINT_CF_MSDOS}
            mount

            #必要なファイルをコピー
            cp ${MOUNT_POINT_CDROM}/hpcsh/installation/hpcboot-sh3.exe \
                    ${MOUNT_POINT_CF_MSDOS}/hpcboot.exe

    ・マウントポイントを削除
        操作:

            cd

            #アンマウント
            umount ${MOUNT_POINT_CF_MSDOS}
            umount ${MOUNT_POINT_CF}
            umount ${MOUNT_POINT_CDROM}

            #ディレクトリを削除
            rmdir ${MOUNT_POINT_CF_MSDOS}
            rmdir ${MOUNT_POINT_CF}
            rmdir ${MOUNT_POINT_CDROM}

    ・CF を取り外す

○HPW-50PA で NetBSD 4.0 を起動する。
    CF を挿入し、hpcboot.exe を実行する。

    起動した画面の以下の項目を変更して「Boot」ボタンを押す。
        netbsd.gz -> netbsd
        CASIO .... -> HITACHI PERSONA HPW50PAD

    ※とりあえず起動に成功した。
            さらに設定が必要だが、時間が無いため途中で止めた。
            テストには使用できそう。

○参考
    ・December 15, 2007 INSTALL 8 NetBSD(CD-ROM の中にも入っている)
        ftp://ftp4.jp.netbsd.org/pub/NetBSD/NetBSD-4.0/hpcsh/INSTALL.html

    ・HP Jornada 6x0 on NetBSD/hpcsh
        http://www.yagoto-urayama.jp/~oshimaya/netbsd/hpcsh/index.html

    ・Установка NetBSD на Jornada 680-690 | Russian NetBSD team (site v3.0 rc2)
            (※ http://world.altavista.com/ で英語に翻訳して読んだ。)
        http://runetbsd.ru/wiki/ustanovka_netbsd_na_jornada_680_690

○更新履歴
        2007/12/30 作成
typodupeerror

物事のやり方は一つではない -- Perlな人

読み込み中...