ここで紹介するやり方はBB NaviやHDDゲームとPS2Linuxを共存している環境です。
つまりPS2Linuxβ版をベースにしたものです。PS2Linux 1.0ベースの場合とHDD認識が異なりますので気をつけてください。
BB Navigator 0.10 DISC 2 に source.tgz という固まりがあります。
この中に kernelソースがありますが、若干のパッチ宛てが必要です。
# cd /usr/src # mv linux linux.org →2.2.1_ps2へのシンボリックリンクを待避(最初だけね) BB Navi 0.10 DISC2からソース持ってくる # cd /var/tmp # tar zxf /mnt/cdrom/source.tgz rpmから強制的にファイルを取り出してみる。(rpmでそのまま入れても良いかな。。。) # cd kernel # rpm2cpio kernel-2.2.19_ps2-5.src.rpm | cpio -i --make-directories # cd /usr/src # tar zxf /var/tmp/kernel/linux-2.2.19.tar.gz HDDフォーマット認識がBB Navi仕様になっているので、PS2Linux仕様にパッチまたは怪しいパッチを宛てる # cd /usr/src/linux # patch -p0 < bblinux.diff ここから先は普通のカーネル再構築 # cd /usr/src/linux # cp -p config_ps2 .config →とりあえずデフォルトのカーネル設定にする # make menuconfig →オプションとか好きにいじる # make dep # make clean # make # make modules # make modules_install # mount /mnt/mc00 # gzip -c9 vmlinux > /mnt/mc00/vmlinux-2.2.19.gz →圧縮したカーネルを作成(未圧縮でコピーでも可) # vi /mnt/mc00/p2lboot.cnf(2行目の vmlinux-2.2.19.gz のエントリを追加)# umount /mnt/mc00
"Linux on MC" vmlinux "" 203 /dev/hda1 "" Linux on Memory Card(PS2)
"Linux 2.2.19" vmlinux-2.2.19.gz "" 203 /dev/hda1 "" Linux-2.2.19 on Memory Card(PS2)
"Single" vmlinux "" 203 /dev/hda1 single Single User Mode
"Emergency" vmlinux "" 203 /dev/hda1 emergency Emergency Mode
[ -f /lib/modules/`uname -r`/misc/ps2rtc.o ] && insmod ps2rtcところでX環境で使う人は、マウス周りを修正する必要があります。
# insmod -f /lib/modules/2.2.1_ps2/misc/ps2sd.o自動化したいなら /etc/rc.d/rc.sysinit あたりを変えればいいのです。
さて、2.2.19にすることでどう変わるんでしょう。
とりあえず気が付いたのは、
・結構USBが行ける。USBメモリキーのマウントもできました。
・smbfsでマウントできる。Windows共有をマウントできるってことですね。
・konが使えない。。。。原因等未調査
・(怪しいパッチを宛てると)BB Navigatorのパーティション __linux.X (ReiserFS, ext2)がマウントできる。
なんかあったら教えて!
BB Navigator 0.20 DISC に source.tgz という固まりがあります。
この中に kernelソースがありますが、今回はカーネルヘッダが入っていません。
0.10に0.20を組み合わせてもうまくいきませんでした。
BB Navi 0.20 からソース持ってくる # cd /var/tmp # tar zxf /mnt/cdrom/source.tgz # cd kernel # rpm2cpio kernel-source-2.2.19_ps2-23.mipsel.rpm | cpio -i --make-directories BB Navi 0.10とパッケージの仕方が変わってます。 cpioしたあとは、こんな感じ /var/tmp/source/kernel/usr/src/linux/ BB Navi 0.10 + 0.20 というカーネルソースでコンパイルしたら usb周りでエラーった。 というわけで、全上書きではなく、部分的に更新すればもしかしたら。。。 そこまでする必要があるかどうかは謎です。(一応usb以外の更新でならいけました) (参考)更新ファイル一覧 ./Makefile ./arch/mips/defconfig ./arch/mips/kernel/r2300_fpu.S ./arch/mips/ps2/kernel/Makefile ./arch/mips/ps2/kernel/debuglog.c ./arch/mips/ps2/kernel/ide.c ./arch/mips/ps2/kernel/reset.c ./config_ps2 ./drivers/block/ide-probe.c ./drivers/block/ide.c ./drivers/char/serialgdb.c ./drivers/ps2/cdvd.c ./drivers/ps2/mc.c ./drivers/ps2/sd.c ./drivers/ps2/sd.h ./drivers/ps2/sdcall.h ./drivers/ps2/smap.c ./drivers/ps2/smap.h ./drivers/scsi/scsi.c ./drivers/scsi/scsi.h ./drivers/scsi/scsi_error.c ./drivers/scsi/sd.c ./drivers/scsi/sg.c ./drivers/usb/Config.in ./drivers/usb/devices.c ./drivers/usb/hid.c ./drivers/usb/hub.c ./drivers/usb/keybdev.c ./drivers/usb/usb-storage.c ./drivers/usb/usb-storage.h ./drivers/usb/usb.c ./drivers/usb/usbkbd.c ./drivers/usb/usbpd.c ./drivers/video/ps2dma.c ./drivers/video/ps2gs.c ./init/main.c (参考)新規ファイル一覧 ./drivers/char/defkeymap.c ./drivers/char/hfmodem/gentbl/ ./drivers/char/hfmodem/tables.h ./scripts/lxdialog/checklist.o ./scripts/lxdialog/inputbox.o ./scripts/lxdialog/lxdialog ./scripts/lxdialog/lxdialog.o ./scripts/lxdialog/menubox.o ./scripts/lxdialog/msgbox.o ./scripts/lxdialog/textbox.o ./scripts/lxdialog/util.o ./scripts/lxdialog/yesno.o ./scripts/mkdep/ ./scripts/split-include/
怪しいパッチについて
BB Navigator の "__linux.X" というIDのパーティションを認識するようになります。 →この辺の話はこっち
注意!! ・書き込みは一切確認していません。この手の物はリードオンリーで使用しましょう。 書き込みするとどうなるかは全然わかりません。下手すると壊すし、もしかしたら問題なしかもしれない。 ・linuxのパーティションがすでに hda10 を越えて使用している場合は使用しないで下さい。どうなるかわかりません。 パッチをちょっとだけ修正すればいける気がしますが試していません。 ・何がおこるかわかりません。 |
# cd /dev # vi MAKEDEV 593行目くらいの for part in 1 2 … 8 # 9 … にある # を消す # ./MAKEDEV hda
マウントの仕方ですが、普通に
# mount -t reiserfs -o ro /dev/hda11 /mnt/〜 とか
# mount -t ext2 -o ro /dev/hda13 /mnt/〜 とかでいいです。