本文へ飛ぶ。

NetBSD/dreamcast よくある質問

この FAQ は常に作業中です。 このポートで、あらたな成果が出ては、あらたな質問も生まれるからです。 もしまだ答えられていない質問があれば、 この FAQ に追加できるよう、 NetBSD/dreamcast メーリングリストや Alex Kirk (alex-at-schnarff-dot-com) までお知らせください。

1. はじめに
1.1. Dreamcast ポートの由来は?
1.2. なぜ Dreamcast で NetBSD を動かすのか?
2. ハードウェア
2.1. すべての Dreamcast 機が CD-R からブートできますか?
2.2. CD-RW からブートできる Dreamcast 機はありますか?
2.3. Broadband Adapter って何ですか?
2.4. Broadband Adapter はどこで入手できますか?
2.5. LAN Adapter って何ですか?
2.6. LAN Adapter はどこで入手できますか?
2.7. 日立 SuperH SH-4 はリトルエンディアンとビッグエンディアンのどっち?
2.8. Dreamcast 用のシリアルケーブルはどこで買えますか?
2.9. Dreamcast 本体にハードドライブを付けられますか?
3. ブート可能な CD
3.1. ブート可能な NetBSD/dreamcast CD イメージはどこにありますか?
3.2. DiscJuggler はどこにありますか?
3.3. それはすごい……で、 CD の作り方は?
3.4. カーネルを作り直すたびに CD を焼くのがいやな場合は?
4. Dreamcast 側の構成
4.1. Dreamcast の IP アドレスの設定方法は?
4.2. IP アドレスの設定用に Dreamcast Browser の GD-ROM を入手できますか?
5. ファイル群の入手 / 作成
5.1. 実際に使える構築済の world ファイル一式はどこにありますか?
5.2. スナップショットはどこにありますか?
5.3. *NIX/*BSD のもとで NetBSD/dreamcast をコンパイルする方法は?
5.4. Windows のもとで NetBSD/dreamcast をコンパイルする方法は?
5.5. カーネルのコンパイルの方法は?
5.6. Josh Tolbert の world ファイルを使いましたが、ログインできません。
5.7. NetBSD/dreamcast で使えるバイナリーパッケージはありますか?
6. Swap, NFS/DHCP, その他もろもろの設定
6.1. スワップファイルを /etc/fstab で書きましたが、 df しても表示されません。なぜ?
6.2. NFS 上のスワップを使った場合の安定性はどのぐらいか?
6.3. スワップファイルはどれぐらいの大きさを用意すればよいか?
6.4. コンソールをシリアルポートに切り替える方法は?
6.5. マウスドライバーはありますか?
6.6. NFS が妙なエラーを吐きます。どういう意味でしょうか?
7. その他いろいろ
7.1. NFS マウントしていない Dreamcast にファイルを送る方法は?
7.2. IP upload slave って何ですか?
7.3. その他、 Dreamcast に関するリソースは?
7.4. 構築ジョブが、 CPU を少ししか使わないまま何時間もかかるのはなぜですか?

1. はじめに

1.1. Dreamcast ポートの由来は?
1.2. なぜ Dreamcast で NetBSD を動かすのか?
1.1.

Dreamcast ポートの由来は?

これは、齊藤正伸が Dreamcast 機で evbsh3 のコードがブートできるように手を加えたものを、 Marcus Comstedt が NetBSD/evbsh3 ポートから派生させたものです。

1.2.

なぜ Dreamcast で NetBSD を動かすのか?

これに対する答えは数多くされてきましたが、まとめとしてメーリングリストへの投稿を いくつか掲げておくのが一番よいでしょう: Drew Vogel Andy R Miles Nordin

2. ハードウェア

2.1. すべての Dreamcast 機が CD-R からブートできますか?
2.2. CD-RW からブートできる Dreamcast 機はありますか?
2.3. Broadband Adapter って何ですか?
2.4. Broadband Adapter はどこで入手できますか?
2.5. LAN Adapter って何ですか?
2.6. LAN Adapter はどこで入手できますか?
2.7. 日立 SuperH SH-4 はリトルエンディアンとビッグエンディアンのどっち?
2.8. Dreamcast 用のシリアルケーブルはどこで買えますか?
2.9. Dreamcast 本体にハードドライブを付けられますか?
2.1.

すべての Dreamcast 機が CD-R からブートできますか?

限定版の“サクラ大戦 Dreamcast for Internet”は CD-R からブートできないことがわかっています。 これ以外のものでもブートできない可能性はあります。 2000 年 10 月より前に製造されたものは動作しないと何度も言われてきましたが、 そのことが明確に検証された例はほとんどありません。

2.2.

CD-RW からブートできる Dreamcast 機はありますか?

ごく一部の Dreamcast 機は何もせずとも CD-RW からブートできるという 未確認の噂があります。このほか多くのものは内部を改造することで ブート可能になります。

2.3.

Broadband Adapter って何ですか?

しばしば “BBA” と略される Broadband Adapter は、本体のモデムと交換できる 10/100Mbit Ethernet モジュールです。これは Realtek 8139 チップにより、 Broadband Adapter 内蔵 PCI バス経由で動作します。 PCI バスは本体ネイティブの G2 バスに変換されます。

2.4.

Broadband Adapter はどこで入手できますか?

どれだけ早く必要でしょうか。待ってもよいのであれば、製造元の CSI の サイト で予約を行っています; 予約が 1,000 台に達すれば製造・出荷されます。 他の入手方法では $100 以上かかるところが、 $49 で済むのは大きいでしょう; 問題は、待つ必要があることと、手に入らない可能性もあることだけです。

待てないという方は、 eBay がいいでしょう。 このほか、 Lik-SangLan-Kwei にも時々あります。また、 Broadband Adapter 組み込み済で出荷されたという Dreamcast R7 機が入手できるかどうか 調べるという手もあります。これらを見付けることは、 Sega が Dreamcast の製造をやめた今となっては、一般的に非常に困難です。 このため、相当の価格高騰が見られ、 多くの Broadband Adapter は本体を上回る価格が付いています。

2.5.

LAN Adapter って何ですか?

LAN Adapter (HIT-0300) は、つまりは 10/100 Mbit Ethernet ではなく 10 Mbit に対応した Broadband Adapter です。 Broadband Adapter の Realtek 8139 に対して、こちらは MB86967 チップを使っています。

2.6.

LAN Adapter はどこで入手できますか?

LAN Adapter を現行の Broadband Adapter より容易に入手できた人たちがいますが、 信頼のおける購入元はありません。これは、日本市場向けだけに製造されたものが、 サードパーティーによって非公式に日本国外に持ち出されたものであることが わかっています。

2.7.

日立 SuperH SH-4 はリトルエンディアンとビッグエンディアンのどっち?

日立 SuperH SH-4 CPU はリトルエンディアンとビッグエンディアンのどちらにもなり得ますが、 Dreamcast ポートではリトルエンディアンとして使っています。

2.8.

Dreamcast 用のシリアルケーブルはどこで買えますか?

売ってくれるベンダーの一覧が Dreamcast Emulation Developer サイトにあります。

2.9.

Dreamcast 本体にハードドライブを付けられますか?

はい。 DC IDE-HD Interface および DREAMCAST DEVELOPMENT の各ページを見てください。なお、これはハンダ付けその他もろもろの工作が必要で、 Dreamcast を完全に壊すおそれもあるものですので、 注意して行ってください。

3. ブート可能な CD

3.1. ブート可能な NetBSD/dreamcast CD イメージはどこにありますか?
3.2. DiscJuggler はどこにありますか?
3.3. それはすごい……で、 CD の作り方は?
3.4. カーネルを作り直すたびに CD を焼くのがいやな場合は?
3.1.

ブート可能な NetBSD/dreamcast CD イメージはどこにありますか?

読みとり専用のファイルシステムを作る場合は、この (非常に古い) DiscJuggler イメージを使ってください。 読み書き可能なファイルシステムを作る場合は、 Josh Tolbert の カーネル (ミラー) を使ってください。 これを使うと、システムがネットブートでき、読み書き可能なファイルシステムが使えます。

3.2.

DiscJuggler はどこにありますか?

DiscJuggler は、 http://www.padus.com/downloads/demo.php から無料で入手できます (機能に制限がありますが、上記のイメージを焼くのにはこれで十分です) 。

3.3.

それはすごい……で、 CD の作り方は?

HOWTO の説明にしたがってください。

3.4.

カーネルを作り直すたびに CD を焼くのがいやな場合は?

Josh Tolbert's Kernel Autoloader Guide に従ってセットアップするとよいでしょう。

このほか、 kloader(4) を試みることもできます。これはカーネルコンフィグで "options KLOADER" によって使えるようになるカーネル内ブートローダーです。

4. Dreamcast 側の構成

4.1. Dreamcast の IP アドレスの設定方法は?
4.2. IP アドレスの設定用に Dreamcast Browser の GD-ROM を入手できますか?
4.1.

Dreamcast の IP アドレスの設定方法は?

いくつかの Dreamcast のゲームは IP アドレスを設定することができ、 このアドレスは変更しない限り本体に記憶されます。同様に、 Broadband Passport ブラウザーソフトウェアも IP アドレスを設定できます。 しかし、すでに NetBSD がブートしており、これに先立って情報が必要でなければ、 Dreamcast はその IP アドレスを受け取ることができます。 最も単純な方法は以下のように NetBSD システムで arp テーブルを編集することです:

    # arp -s dreamcast ethernet
  

ここで “dreamcast” は設定しようとする IP アドレスであり、 192.168.0.128 とします。また、 “ethernet” は Broadband Adapter のハードウェアアドレスであり、 00:00:de:ad:be:ef とすると、コマンドは以下のようになります。

    # arp -s 192.168.0.128 00:00:de:ad:be:ef
  

4.2.

IP アドレスの設定用に Dreamcast Browser の GD-ROM を入手できますか?

http://newbrowser.sega.com/ を試してください。 このシステムで米国外へ配送できる可能性はわずかのようです。

5. ファイル群の入手 / 作成

5.1. 実際に使える構築済の world ファイル一式はどこにありますか?
5.2. スナップショットはどこにありますか?
5.3. *NIX/*BSD のもとで NetBSD/dreamcast をコンパイルする方法は?
5.4. Windows のもとで NetBSD/dreamcast をコンパイルする方法は?
5.5. カーネルのコンパイルの方法は?
5.6. Josh Tolbert の world ファイルを使いましたが、ログインできません。
5.7. NetBSD/dreamcast で使えるバイナリーパッケージはありますか?
5.1.

実際に使える構築済の world ファイル一式はどこにありますか?

NetBSD/dreamcast 2.0 バイナリーセットが使えます。

また、 ftp://releng.NetBSD.org にも面白げなものがあります。

5.2.

スナップショットはどこにありますか?

NetBSD/dreamcast スナップショットは ftp://ftp.NetBSD.org/pub/NetBSD/arch/dreamcast/snapshot/ にあります。 ftp://releng.NetBSD.org でもスナップショットが毎日作られていますが、 日によっては失敗していることもあります。 :-) Dreamcast ポートは SH ベースの他のポートとバイナリー互換なので、 ftp://ftp.NetBSD.org/pub/NetBSD/arch/hpcsh/snapshot/ にある NetBSD/hpcsh ポートなど、 SH ベースの他のポートのスナップショットも使えます。 このことは、ベースシステムのスナップショットだけでなく、 コンパイル済バイナリーパッケージについても同様です。

5.3.

*NIX/*BSD のもとで NetBSD/dreamcast をコンパイルする方法は?

NetBSD ドキュメンテーションページ以下にある"NetBSD のクロス構築" ページと、 NetBSD guide"Crosscompiling NetBSD with build.sh" 節の説明を読んでください。 クロスコンパイルを含む、全般的な構築手順に関するよい情報が /usr/src/BUILDING にいくつかありますので、こちらも読んでおくとよいでしょう。

5.4.

Windows のもとで NetBSD/dreamcast をコンパイルする方法は?

NetBSD/dreamcast を Windows でコンパイルするためには、便利な Cygwin の インストール、動作する sh4 クロスコンパイラー、 NetBSD のコードと、 多くの苦労が必要となるでしょう。うまくいけば、詳細な情報はそう遠くないうちに 用意できるでしょう。

5.5.

カーネルのコンパイルの方法は?

Dreamcast が動作していれば、 NetBSD FAQ の説明どおりにします。動作していなければ、クロスコンパイルする必要があります。

5.6.

Josh Tolbert の world ファイルを使いましたが、ログインできません。

ファイルを tar で展開するときには、 root で行い、かつ属性を保持するための -p フラグを使ってください。それができなければ、

    chmod 777 /etc /var
  

することで、 ログインはできるようになるはずですので、それから適宜修正してください。

5.7.

NetBSD/dreamcast で使えるバイナリーパッケージはありますか?

短い回答: いいえ。

長い回答: 今のところ、 ftp.NetBSD.org の /pub/NetBSD/packages に用意された公式なバイナリーパッケージはありません。ただし非公式なバイナリーはあります: Alex Kirk は数百個の非公式パッケージを構築しており、 彼の web サイトに 一覧があります。 この表中のリンクの一部はパッケージを入手可能になっていますが、残りはそうなってはいません; パッケージへのリンク先はすべて、わずか 128K の帯域でつながっているマシンですので、 ダウンロードが遅くなっても驚かないでください。 また、 Jan Schaumann はパッケージのほとんどを、 より帯域の広い場所に置いており、さらに、偏執症向けに セキュリティーに関して親切な指摘もしています。 なお、 The NetBSD Foundation は、非公式サイト由来のバイナリーパッケージに対して、 いかなる責任も取れませんし、取りません。そのことをどうぞ承知置きください。

6. Swap, NFS/DHCP, その他もろもろの設定

6.1. スワップファイルを /etc/fstab で書きましたが、 df しても表示されません。なぜ?
6.2. NFS 上のスワップを使った場合の安定性はどのぐらいか?
6.3. スワップファイルはどれぐらいの大きさを用意すればよいか?
6.4. コンソールをシリアルポートに切り替える方法は?
6.5. マウスドライバーはありますか?
6.6. NFS が妙なエラーを吐きます。どういう意味でしょうか?
6.1.

スワップファイルを /etc/fstab で書きましたが、 df しても表示されません。なぜ?

スワップファイルは本来のファイルシステムではないので表示されません。スワップスペースの 情報を見るには

    swapctl -l
  

を実行する必要があります。なお、これはデフォルトでは、 一般ユーザーで実行すると 512 バイトブロックで、 root で実行すると 1024 バイトブロックで表示します。

6.2.

NFS 上のスワップを使った場合の安定性はどのぐらいか?

これについては公平に討議するための材料があります。現状の総意的なものとしては、 基本的には安定しているが、 BBA の品質が悪いせいで問題が起きることがある、 というものです。多くの人たちが、問題を回避するために BBA を 10 Mbs のみに設定するようすすめています; そうするには、 Dreamcast の /etc/rc.conf にある ifconfig の行に 10baseT ディレクティブを追加すればよいです。

6.3.

スワップファイルはどれぐらいの大きさを用意すればよいか?

もちろん、これはあなたが自分で決めるべきことであって、 このシステムで何をするかによります。ほとんどの通常の作業─ /usr/pkgsrc のそこそこの大きさのパッケージの構築を含む─であれば、少なくとも 32 MB はとるべきでしょう。 64 MB が最適なサイズであるとの報告が多くあります。 スワップファイルを大きめにとると、 その管理のために物理メモリーも多く必要になることに注意してください。

6.4.

コンソールをシリアルポートに切り替える方法は?

カーネルコンフィギュレーションから “pvr” ドライバーを削除してカーネルを再構築すれば、 自動的にシリアルコンソールを使うようになります。

6.5.

マウスドライバーはありますか?

はい。 “mms” がそうです。 これを使うにはカーネルコンフィギュレーションに以下の記述が必要です:

    mms*    at maple? port ? subunit ?
    wsmouse*    at mms? mux0
  

6.6.

NFS が妙なエラーを吐きます。どういう意味でしょうか?

/usr/src/sys/sys/errno.h にある一行説明を見てください。

7. その他いろいろ

7.1. NFS マウントしていない Dreamcast にファイルを送る方法は?
7.2. IP upload slave って何ですか?
7.3. その他、 Dreamcast に関するリソースは?
7.4. 構築ジョブが、 CPU を少ししか使わないまま何時間もかかるのはなぜですか?
7.1.

NFS マウントしていない Dreamcast にファイルを送る方法は?

NetBSD や似たものが動作しているところで行う最も簡単な方法は、 portal ファイルシステムを使って以下のようにすることです:

    # mkdir /p
    # mount_portal /usr/share/examples/mount_portal/tcp.1.conf /p
  

これで portal ファイルシステムがマウントされ、 cat を Dreamcast へのファイルの送出に使うことができます:

    # cat filename > /p/tcp/dreamcast/port
  

ここで、 “filename” は送ろうとしているファイル名、 “dreamcast” は Dreamcast の IP アドレス、 “port” はファイルの送り先のポート番号です。 bsd という名前のカーネルを、 IP アドレス 192.168.0.128 を持ち IP upload slave (4711 番ポートを listen している) が動作している Dreamcast に送るには、以下のようにします:

    # cat bsd > /p/tcp/192.168.0.128/4711
  
7.2.

IP upload slave って何ですか?

IP upload slave とは Marcus Comstedt が書いた Dreamcast 用プログラムで、 Dreamcast 機の Broadband Adapter 経由でファイルを受渡しすることができ、 その後、ファイルは Dreamcast に実行されます。 http://mc.pp.se/dc/ipslave.html にあります。 使い方の説明は、 Josh Tolbert's Kernel Autoloader Guide にあります。

7.3.

その他、 Dreamcast に関するリソースは?

以下のサイトをあたってください:

これらのページは必ずしも NetBSD に特化したものではないことに注意してください。

7.4.

構築ジョブが、 CPU を少ししか使わないまま何時間もかかるのはなぜですか?

大きなもの、特に /usr/pkgsrc 以外での構築をするときに、構築ジョブが非常に長い時間かかり、 かつ CPU は少ししか使わないがメモリーはたくさん使っている場合、 このプラットフォームの大きな罠の一つにはまっています: NFS 越しのスワップは本当に、本当に遅いのです。

何事かというと、構築ジョブが、システムの持つ 32MB のメモリーを大幅に超過し、 大量のスワップをネットワーク越しに行なっているのです。 この過程は、たとえネットワークが速いものであっても、 とてつもなく遅いものになります; 最善の策は、メモリーを解放するため、 Dreamcast で動いている不要なプロセスを kill してみることです。 それで構築ジョブが止まる気配もないまま 5 時間以上動いていたとしても、 気にしないでください。また、構築ジョブを kill したりしないでください。 それでも大丈夫ですし、 kill してもその構築時間がすべて無駄になるだけだからです。

tech-kern メーリングリストの Simon Burge の投稿によれば、仮想メモリーの設定をいじって、 なんとかすることができます。この投稿を全部読んだ上で、設定をどうすべきか 自分で決めるのが一番いいのですが、ようするに、

    sysctl -w vm.anonmax=95
  

を実行するのがよさげだということです。 sysctl(3) マニュアルページによれば、 これは“物理メモリーの何パーセントを、匿名アプリケーションデータの保持用として、 それ以外の用途の分から奪うことができるか”を変更するものです。