Last Update: "2008/01/26 09:40:16 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
| boot | bootinfo.txt | 「C を押しながら起動」用
|
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
また 「C を押したまま起動」を可能にするには、(例えば)
boot/bootinfo.txt (この接続先の内容は TNF 用です)
を用意し、mkisofs の時に次の指定を追加します。
-hfs-bless dir/boot
参考:
>http://www.jp.netbsd.org/ja/JP/ml/port-powerpc-ja/200707/msg00011.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 に当る作業を手で行ないます。
-
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..,|
- それを 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 と分ります。
- bootxx.c にその数字を書く (この bootxx.c は disk の installboot 用と同じ)。
45 行目付近:
int block_table[MAXBLOCKNUM] = { 0xcc,0 };
- bootxx.c を コンパイルする
(cd bootcd; make)
- 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
|