Linux/Dreamcast

DreamCast GD-ROM device driver

GD-ROM device driver for LinuxSH Project CVS kernel based on NetBSD/Dreamcast

drivers/dreamcast/gdrom.c device driver
arch/sh/kernel/setup_dc.c modify to support GD-ROM interrupt

supports:

by default, mount GD-ROM area when use GD-ROM. to mount CD-ROM area,
 mount -t iso9660 -o session=0 /dev/gdrom /mnt

Major: 250 Minor: 0

To make entry,

 cd <dcroot>/dev
 mknod gdrom b 250 0

DreamCast GD-ROM デバイスドライバ

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
でエントリを作成します。

Dreamcast用のバイナリ

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があるので、コンパイルしなおせば使える。

メモ:read-only root filesystemの利用

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
のようにしています。

関連リンク