Last Update: "2007/11/21 23:14:27 makoto"

boot cd

内容

次のような内容を 例えば dir の下に用意しておきます。
-r--r--r--  2 makoto  users    50876 Jan  8 08:25 0
drwxr-xr-x  2 makoto  users      512 Apr 18  2005 bin/
lrwxr-xr-x  1 makoto  users       48 Jan  8 10:16 macppc@ -> $FTP/pub/NetBSD/snapshot/20060101ts/macppc
drwxr-xr-x  2 makoto  users      512 Jan  8 10:27 missing/
-r--r--r--  1 makoto  wheel  3137575 Jan  8 08:25 netbsd.macppc
-r--r--r--  2 makoto  users    50876 Jan  8 08:25 ofwboot
-r--r--r--  1 makoto  wheel    54080 Jan  8 07:56 ofwboot.elf
lrwxr-xr-x  1 makoto  users       48 Jan  8 10:59 source@ -> $FTP/pub/NetBSD/snapshot/20060101ts/source
mkisofs する時に -f を付ければ、symbolic link でも大丈夫ですが、 この -f を使う時には、一応注意が必要です。 上のディレクトリに置いたものの意味や具体的な内容は次の通りです。
0 ofwboot の写し
bin date 入
macppc binary/sets
missing /usr/lib/libgcc_pic.a
netbsd.macppc netbsd-GENERIC_MD.gz
ofwboot
ofwboot.elf
source source/sets
bin の中には date を入れることがあるのですが、その時は次のようにして static link のものを作っておきます。
ttyp0:makoto@mini 11:22:22/060610(~)> cd /export/20060527/checkout/src/bin/date 
ttyp0:makoto@mini 11:22:34/060610(...bin/date)>  cc -c netdate.c
ttyp0:makoto@mini 11:22:43/060610(...bin/date)>  cc -c date.c
ttyp0:makoto@mini 11:22:49/060610(...bin/date)>  
   cc -o date -static date.o -L../../obj/destdir.macppc/usr/lib -lutil netdate.o
その他のものを写す作業等は、次のところにも書いてあります。 http://www.ki.nu/software/NetBSD/macppc/boot-cd/files-link.html

mkisofs

Makefile に次のような内容を書いておきます
MKISOFS = mkisofs
CDIMAGE = CDimage
# volid is max 20 chars
#                         0 2 4 6 8 a c e
all: mkboot
        $(MKISOFS) -volid macppc/20060101 -part -hfs    -r -J -l -o $(CDIMAGE) dir
#       $(MKISOFS) -volid macppc/20060101 -part -hfs -f -r -J -l -o $(CDIMAGE) dir
        ./mkboot

boot-hfs:
        $(MKISOFS)  -part -hfs -r -J -l -boot-hfs-file macppcboot.raw -o $(CDIMAGE) dir

clean:
        rm -f mkboot $(CDIMAGE)

installboot

disk の installboot に当る作業を手で行ないます。
  1. ofwboot が 0 という名前で置いてありますが、それが CDimage の何バイト目かを調べます

    具体的には次のようにすれば 00058000 だと分ります。

    ttyp3:makoto@mini 23:10:40/060120(...CD-R/bootcd2)> \
    hexdump -C CDimage  | grep "`hexdump -C dir/0 | head -1 | cut -d ' ' -f 2-15`"
    00058000  7d 00 00 a6 38 00 00 00  7c 00 01 24 4c 00 01 2c  |}...8...|..$L..,|
    
  2. それを 0x200 で割って、何セクタ目かを調べます
    0x200 で割る時には bc を使って次のようにするのも一つの方法です。 この時に 16 進の a-f は大文字で入力します
    ttyp6:makoto@st4200 22:57:20/060120(~)> bc
    obase = 16
    ibase = 16
    1B000/200
    D8
    
    あるいは上で調べた値を使うなら
    ttypc:makoto@st4200 23:13:15/060120(~)> bc 
    obase = 16
    ibase = 16
    58000/200
    2C0
    
    となり、それぞれ d8, 2c0 と分ります。
  3. bootxx.c にその数字を書く (この bootxx.c は disk の installboot 用と同じ)。 45 行目付近:
    int block_table[MAXBLOCKNUM] = { 0xcc,0 };
    
  4. bootxx.c を コンパイルする
    (cd bootcd; make)
    
  5. mkboot を使って、その bootxx を CDimage の第2セクタに書込む。 必要なら、上で設定した数値が CDimage に入っているか確認
    000022c0  2f 6f 70 74 69 6f 6e 73  00 00 00 00 62 6f 6f 74  |/options....boot|
    000022d0  2d 64 65 76 69 63 65 00  00 00 00 cc 00 00 00 00  |-device.........|
    

package 入

package 入の場合は次のような配置になっています。
-r--r--r--   2 makoto  users     50876 Jan  8 08:25 0
-rw-r--r--   1 makoto  users  15186900 Jan  9 05:51 X11R6.6+XF4-20060101.tar.gz
drwxr-xr-x   2 makoto  wheel       512 Aug  5 00:33 XF86Config/
drwxr-xr-x   2 makoto  users       512 Apr 18  2005 bin/
drwxr-xr-x   5 makoto  wheel       512 Jan  8 10:05 macppc/
drwxr-xr-x   2 makoto  users       512 Jan  8 10:27 missing/
-r--r--r--   1 makoto  wheel   3137575 Jan  8 08:25 netbsd.macppc
-r--r--r--   2 makoto  users     50876 Jan  8 08:25 ofwboot
-r--r--r--   1 makoto  wheel     54080 Jan  8 07:56 ofwboot.elf
drwxr-xr-x  35 makoto  wheel      1024 Jan 20 10:09 packages/
(標準設定で)`C'キー起動ができないものかな
http://www.jp.netbsd.org/ja/JP/ml/port-powerpc-ja/200011/msg00026.html
(起動用 CDROM) C を押しながら起動
http://www.jp.netbsd.org/ja/JP/ml/port-powerpc-ja/200705/msg00002.html
続き
http://www.jp.netbsd.org/ja/JP/ml/port-powerpc-ja/200707/msg00011.html