drivers/dreamcast/gdrom.c device driver
arch/sh/kernel/setup_dc.c modify to support GD-ROM interrupt
supports:
mount -t iso9660 -o session=0 /dev/gdrom /mnt
Major: 250 Minor: 0
To make entry,
cd <dcroot>/dev mknod gdrom b 250 0
NetBSD/Dremcastのデバイスドライバをもとに作成した、 LinuxSH ProjectのCVSカーネル用のドライバです。
drivers/dreamcast/gdrom.c
デバイスドライバ本体
arch/sh/kernel/setup_dc.c
GD-ROMの割り込みを扱えるように変更
デフォルトでは、GD-ROMはGD-ROM領域をマウントします。GD-ROMのCD-ROM領域(PCで見える部分)をマウンドするには、
mount -t iso9660 -o session=0 /dev/gdrom /mntとします。
メジャー番号:250 マイナー番号: 0
なので、
cd <dcroot>/dev mknod gdrom b 250 0でエントリを作成します。
SH用のバイナリは、SH-Linux でrpm、 Debian GNU/Linux on SuperH でdeb形式のものが用意されている。
DreamcastはCPUがSH4でlittle endianで動作するので、それを利用する。 SH3、SH4用バイナリの両方とも動作するが、SH4用バイナリはFPUを利用するので、浮動少数演算が高速になる。
SH-Linuxでは、sh4用のrpmが用意されているが、Debian GNU/Linux on SuperHでは今のところsh3用のものしか公開されていない(再コンパイルすればsh4用を作成できる)。
SH-Linuxのページにある開発ツール(rpm) の使い方には 「最小構成」が例示されているが、これには/bin/loginがないのでloginできない。 loginはshadow-utilsにあるが、shadow-utilsはpamやらpwdbやらcracklibやらいっぱい必要になる。
util-linuxに、ソースにはあるがバイナリrpmには含まれないloginがあるので、コンパイルしなおせば使える。
mingettyがttyデバイスの所有者、パーミッションを変えようとする(chown,chmod)ので修正
shadow-utilsの/bin/loginも同じくttyの所有者を変えるので、修正するか、util-linuxのloginを使う
他の機種ではsh-liloがどうのとか説明されていますが、要するに起動に必要なのは
開発中はdc-load-ipを使って
ブートパラメータ: mem=16M console=tty0 nfsaddrs=192.168.0.200:192.168.0.129:192.168.0.1::dreamcast::none nfsroot=/usr/dcroot
dc-tool -a 0x8c001000 -u bootparam.bin dc-tool -a 0x8c710000 -x zImageのようにしています。