Russ Coxのboot/qemuを構築する
Plan 9の /sys/src/cmd/unix/u9fs はビルドが通らない状態なので、非公式ミラーのバージョンを使う。
git clone https://github.com/unofficial-mirror/u9fs.gitcd u9fsmake
u9fs -a none -u lufia次にビルド環境が必要なので、qemuで適当にインストールしたPlan 9イメージを実行する。
cd plan9img./start.bash -v9fs 10.0.2.1mount /srv/10.0.2.1 /mnt/termせっかくビルドするので64bit環境にする。一般的な再構築手順はPlan 9環境の再構築に書いたが、ここではディレクトリを作成するなど細かい手順が増えるので別途記述する。
bind -c /mnt/term/amd64 /amd64mkdir /amd64/ ^ (bin lib)mkdir /amd64/lib/apemkdir /amd64/bin/ape
cd /mnt/term/sys/srcobjtype=amd64mk libsmk cleanlibs
cd /mnt/term/sys/src/apemk lib.installmk lib.cleanmk cmd.installmk cmd.nukemk 9src.installmk 9src.nukemkdir -p /amd64/bin/ ^ (aux auth dial disk fossil fs ip/httpd ndb replica upas usb venti)
cd /mnt/term/sys/src/cmdmk install# 途中でlibmap.a6が無くて落ちるのでbindするbind -a /mnt/term/sys/src/cmd/map/libmap /sys/src/cmd/map/libmapmk nuke
mkdir /amd64/bin/gamescd /mnt/term/sys/src/gamesmk install nukeカーネル
cd /mnt/term/sys/src/9k/k10mk install 'CONF=k10'mk nuke 'CONF=k10'9boot や 9load をビルドする。
cd /mnt/term/sys/src/9/pcboot# boot設定を編集してサイズを小さくしておくmk install cleanブートローダ
mkdir /mnt/term/bootfile=/mnt/term/boot/pxeboot.raw.newdd -bs 1000000 -if /dev/zero -of $file -count 4disk/partfs $filecd /dev/sdXX # これは本当にXXだったdisk/mbr -m /386/mbr datadisk/fdisk data>>> a p1 0 1>>> t p1 fat32>>> A p1>>> w>>> q
ramfscp /mnt/term/pcboot/9bootpbs /tmp/9loaddisk/format -b /386/pbslba -d -r 2 dos /tmp/9loadmbr, pbs{,lba,raw} をビルドしたい場合
cd /mnt/term/sys/src/boot/pcmk install cleanacme
mkdir -p /mnt/term/acme/bin/amd64cd /mnt/term/acmemk install nukeあとは以下のファイルをRussのリポジトリからコピーしておいて使う。
- /cfg/pxe/xxx
- /boot/qemu