The Xbox Linux Project

News

Manifesto

FAQ

Roadmap

Status

Documentation

Screenshots

Download

Links

Mailing List

Contact


Sourceforge Project Page

How to Install Debian GNU/Linux on your Xbox

by Edgar Hucek, 6 September 2002

Debian GNU/Linux を Xboxにインストールするためにいろいろやっています。一応の成果が出たので発表します。

What do you need?

  • マイクロソフト社の電子署名がないソフトでも動くような対策がなされたXbox。HDDが10Gのモデルなら問題なし。8Gのモデルの場合、付け替えたほうがいいかも。(訳注:デュアルブートしないなら付け替えなくてもOKなはず)
  • Sourceforge から落とした Xbox LinuxのイメージをCD-Rに焼いたもの
  • apt-getするので、インターネットに出て行くためのルータ。Linuxマシンをルータ代わりにしてもOK。(訳注:LANの中にapt-getサーバを立てればそれでもいいとおもう)

!!! Warning !!!

まず、XboxのHDDをバックアップしておくことをお勧めします。(訳注:一応、もとのシステムを残したままでLinuxも入れる方式ですが、念のため。)




警告: 有限会社デジタルインフラは、 電子署名対策をする方法に関し、 一切関与しません。 あなたの判断で、自分の責任で、 あくまで合法的に行ってください。




How to start

Xbox Linux install CD のイメージ(多分、ファイルネームはxbox-linx-install-cd-0.0.xxxx.iso.bz2)を Sourceforge で落とし、解凍し(bzip2 -d xbox-linux-install-...)、CD/RWに焼いてください。さらに、そのCD/RWの中に、hddboot.iso というのがあるので、それも別のCD/RWに焼いてください(訳注:一枚はHDDにLinuxをインストールするCD。もう一枚は、HDDにインストールしたLinuxを起動させるためのCD。あと、Xboxは、CD-Rを認識しないので、RWを使うしかない)。

Xboxの電源をいれ、Dashboard が立ち上がるまで待ちます。(Dashboardを利用する方法だけを検証済み). インストールCDをいれます。立ち上がらない場合、トレイをイジェクトしてもう一度CDを入れたりとかいろいろやってみてください。結果、ログインプロンプトまで行けばOKです。

user root password xbox でログインします. 次に、XboxのHDDにLinuxのパーティションを切ります。/dev/hda1 を開始トラック 15534 (これは、Xboxのパーティションの最後の次です。) に指定し、サイズを128 MB にし、そこを swap にします(訳注:10GのHDDをつんだXboxだと、8Gモデルと10Gモデルの差に起因する2Gバイトの余りがHDDの最後尾にあるので、そこにLinuxを詰め込む)。のこり (約 1.7 GB) は /dev/hda2 として ルートファイルシステムに割り当てます。ルートファイルシステムの形式が ext3 でデバイス名が /dev/hda2 だとします。 mkfs.ext3 /dev/hda2 で論理フォーマットをかけます。その後、XBOXLinuxInstallを実行します。やっていることはようはコピーしてるだけです。二つ設定項目がありますが、何も考えずリターンでデフォルトを選んでしばし待ちます。まあ、タバコでもコーヒーでもどうぞ(喫煙派ならですが)。 といっても、そんなに実行に時間はかかりません。そのうち終わるでしょう。
いまのところ、IBM-PCでいうところの、「MBRにLILO」みたいなことは不可能です。よって、HDDに入れたLinuxを立ち上げるのにもブートディスクが必要です。それが、もう一枚のCD/RWです。

それを使ってブートしたら、先ほど同様 root でログインし、 ネットワーク関係の設定をして下さい。たとえばこんな様な設定です。

IP : 192.168.0.2
Netmask : 255.255.255.0
Gateway : 192.168.0.1
Nameserver : 62.99.200.2 ( this is a public DNS )
Hostname : xbox.localdomain.local

設定すべきファイルはこれらです:

/etc/hosts
/etc/hostname
/etc/network/interfaces

設定後、いよいよ apt-get です。 これにより、Debianのパッケージがインストールされます。dselect してインストールするパッケージを選んでください。いくつかのパッケージは最初から選択されています。 これらは Basic system におけるデフォルトです。 そのままにしておいてもOKでしょう。変えてもいいです。

どうですか?ほら。Debianが無事走った・・・でしょ?

Notes on running X

以上の手順でインストールすると、Xfbdev X-Server(フレームバッファドライバ用のXサーバ)もインストールされているはずです。 これを有効にするには、二つのシンボリックリンクを変更します。それをせずにX window を使うとハングします。変更するリンクは、 /etc/X11/X から /usr/bin/X11/XFree86 にいっているリンクを /usr/bin/X11/Xfbdev に変更し、 /usr/bin/X11/X から /usr/bin/X11/XFree86 にいっているリンクを /usr/bin/X11/Xfbdev に変更します。あとは startx で X が立ち上がるはずです。

Notes about the boostrap system

Xboxでの起動の関係で、普通の Debian とは少し異なる部分があります.

二つのディレクトリを新たに加えてあります。 /XBOXLocal と /usr/debian です. これは、CD上に作ったイメージでも実行できるようにするためです。/XBOXLocal の下に /etc, /home, /var, /tmp そして /root をつくり、/ から /XBOXLocal/{それぞれれのディレクトリ名} へシンボリックリンクを張ってあります。 /usr/debian には、/var の下のディレクトリの中から、巨大なものを移しました。 /usr/debian の下の構造は、元と変わりません。もとファイルがあった場所からはシンボリックリンクを張ってあります。ブートのときは、 initrd が tmpfs を /XBOXLocal にマウントします. /XBOXLocal の中身は、ブートCDに圧縮して入っており、tmpfs が /XBOXLocal にマウントされた後、解凍されます。これにより、テンポラリファイルやシステムファイルをRAM上におき、ある種のRAMDISK的な使い方ができます。

Some notes to the CD

今回使ったCDはいろいろな可能性があります。CDにはブートローダ(LILOのようなもの)だけを入れておき、ブートされるLinuxのカーネルイメージはHDDにおくこともできます。いわゆるCDブートのLinuxディストリビューションのように、すべてをCD上におくこともできますし、まったく新しいブートのやり方を開発することもできるでしょう。そのような方向性で開発に参加する場合、ISOFSの透過的圧縮をサポートしたカーネルと 圧縮ISOFSをサポートしたまだアルファバージョンの cdrecord ユーティリティと zisofs-tool(http://www.kernel.org/pub/linux/utils/fs/zisofs/にあります)が役に立つでしょう。

今回使ったCDには xbmake.tar.bz2があります. これを解凍すると、 xbmake というディレクトリが出てきます。その下に、いろいろ入っています。今回使ったCDにあるrootfsというファイルを適当なディレクトリにmount -t iso9660 -o ro,suid,loop /{mountpoint of cd}/rootfs mnt でマウントし、xbmake の下の xbox-linuxというディレクトリの下に、cp -aR mnt/* xbox-linux/でファイルをコピーします。これで、あたらしいISOイメージを開発する準備ができました。
最後に、

./create_rootfs.sh
./make_iso.sh

でISOイメージを作ります。これをCD/RWに焼けば、新しいXbox Linux CDの完成です。


© 2002 Edgar Hucek
Everything done on this project is for the sole purpose of writing interoperable software under Sect. 1201 (f) Reverse Engineering exception of the DMCA.
The Xbox Linux Project.