Nintendo DS向けLinux移植、DSLinux
(dslinux.org)- DSLinuxは、Nintendo DSとDS LiteでLinux環境を動かすための移植プロジェクトで、古い携帯ゲーム機をLinux実行デバイスとして活用できるようにする
- DSiや3DSなどの後続機種も、DS互換モードで動作できると整理されている
- 実機だけでなく、desmumeのような一部のNDSエミュレーターでも実行でき、テスト環境を広げられる
- プロジェクトは動作可能な状態で、ドキュメントとDS向けのLinuxプログラム集も提供している
- 現在活動中の開発者はいないが、新しいコントリビューターはwikiやリポジトリなど既存のリソースをもとに引き継げる
実行対象と互換環境
- DSLinuxは、LinuxをNintendo DSとNintendo DS Liteへ移植したプロジェクト
- DSiや3DSなど、より新しいモデルはDS互換モードで動作できる
- 実機のほか、desmumeのような一部のNDSエミュレーターでも実行される
ドキュメント、プログラム、貢献リソース
- DSLinuxは機能的に動作しており、利用ドキュメントと便利なLinuxプログラム集をDS向けに提供している
- 初めて使う際はFAQを参照できる
- 現在活動中の開発者はいないが、新しいコントリビューターを歓迎している
- 新しい開発者向けの文書はwikiに多く残っている
- 提供されている主なリソース
- DSLinux wiki
- BlitzedのIRCチャンネル
#dslinux、返答を待つには忍耐が必要 - DSLinuxフォーラムは消滅しており、再び有効化されることはない
- dslinux-devel mailing list
- dslinux-commit mailing list
- DSLinux SVN repository
- DSLinux builds、代替ビルド場所
- DSLinux on Wikipedia
1件のコメント
Hacker Newsの意見
ずいぶん前にこのプロジェクトへ小さな貢献を何度かしたことがあるので、まだWebサイトが生きていると知ってうれしい
このプロジェクトで一番面白かった部分はメモリ処理だった。DSにはRAMが4MBしかなく、MMUもないのでスワップも不可能だったが、Game Boyカートリッジポートにはバスにマッピングされた32MBのアドレス空間があった。その空間を32MB RAMで埋める自作/クローン系カートリッジがあったのだが、DSはカートリッジポートに16ビット整列アドレスでしか書き込めないという問題があった。ほとんどのソフトウェアは8ビット整列の書き込みができると仮定しているため、開発者たちは、非整列位置への書き込みを適切な読み出し、16ビット書き込み、シフト演算の組み合わせに置き換える、パッチ済みGCCを作った
Opera DSカートリッジはずいぶん前になくしてしまったが、メモリ拡張パックはいまでもDS Liteにスロットカバーのように挿さっている
こうしたカートリッジはRAMとフラッシュベースのストレージ、またはCFカードを組み合わせて搭載していて、一種のバンク方式の背後にあり、ストレージやRAMを露出するよう指示できた。そのためストレージシステムがバスに直接マッピングされ、RAMを節約するためにプログラムを先にRAMへコピーせず、ストレージから直接実行する**XIP(execute in place)**を行っていた
ある産業制御ソフトウェアをDSLinuxへ移植しようとして、メモリ圧迫下でSLOBアロケータが動作する方式のバグに遭遇し、私のパッチの一つがアップストリームに取り込まれた。いまではSLOBは廃止されたが、組み込みに入門していた若いころに自作ハックの楽しさを知る経験だった。面白いことに、改造したDSはいまでも私たちの地域天文台の機器の大部分を動かしている
最近DSの自作ソフトを深く掘ってみたが、すごいものがたくさんあった。Yu-Gi-Oh!計算機、MP3プレイヤー、Doom移植版などだ
特にDS LiteとDSiのハードウェアが本当に気に入っている。2023年に触っても感触がよく、縦持ちで電子書籍を読んだりHotel Duskを遊んだりするとき、対称的な画面が素晴らしい。中国語学習用としても歴代級のソフトウェアであるMy Chinese Coachがあり、DS Zhongwenのように中国語に焦点を当てた自作パッケージも少なくともあと2つある。DSは過小評価されていて、良いゲームが多く、エミュレーションにも夢のような機器だ。強力すぎず、バッテリーを食う「現実的」なグラフィックに執着していない点もいい
いまの親しい友人の何人もが別のプロジェクトをやっていて、その中にはDS Linuxの作者もいた。偶然にも、みんな後にSilicon Valleyのさまざまな技術企業で働くことになり、数十年後に現実世界で再会することになった
Knytt Stories DSのような他のものも作った。Nintendo DS向けの自作ソフトを作るのは素晴らしい経験で、ハードウェアの制約と可能性が、創造性と工学的な挑戦の両方を発揮するだけの余地を与えてくれた
3DSを持っているならTwilightMenuプロジェクトも確認する価値がある。SDカードから自作タイトルなどをロードできるDSiMenuクローンで、フラッシュカードにも対応している
[0]: https://github.com/BASLQC/vnds
Webサイトに載っていたWikipedia記事は「特筆性なし」で削除されたが、アーカイブは残っている: https://web.archive.org/web/20170708075915/https://en.wikipe...
iPodで動いていた同等のプロジェクトで、これもμCLinuxベースだ
HNのトップページでこれを見られて本当にうれしい。何年もの間、DSLinuxに参加していた
自分のWebサイトでほぼ毎日nightlyビルドを維持していた。当時の私のCとシステムプログラミングの腕はまだ初心者レベルだったので、コードを貢献したことはなかったと思うが、テストやコミュニティの人たちを助けることはかなりやった。Nintendo DSは売ってしまったが、Linuxを保存して起動するのに使っていたSupercardはまだどこかにある。こんな見た目だった: [https://wiki.gbatemp.net/wiki/File:SuperCard_CF_V2.jpg](https://wiki.gbatemp.net/wiki/File:SuperCard_CF_V2.jpg)
この素晴らしい仕事を可能にした功績は、何人かの個人に大きく帰せられる。特にMalcolm Parsons(pepsiman)、後にOpenBSD開発者になったStefan Sperling、そしてAmadeusだ: http://dslinux.org/wiki/ContactingDevelopers.html
正確には現代的な対応物ではありませんが、改造した Nintendo Switch はいくつかの Linux イメージでデュアルブートできます: https://wiki.switchroot.org/
公式の Tegra ドライバーがベースなので、古くはあるものの、意外と多くのものを動かせます。Box86 で SkiFree を動かしてみて、それで満足しました
DRAM チップもまったく同じモデルですが、これは汎用部品に近く、メーカーのサプライヤー関係を反映した結果だったのでしょう。これまでの Nintendo ハードウェアの中では、公式サポートの Linux ディストリビューションに最も近い事例と言えます
興味深いことに、いま HN のホームに上がっている別の記事と同じ uCLinux 作業の一部をベースにしています
789 KB Linux Without MMU on RISC-V
https://news.ycombinator.com/item?id=37822082
高校生のころ、M3 カートで DS Linux を動かし、自転車で近所を回りながらウォードライビングをしていました
これが存在していたことをほとんど忘れていましたが、共有してくれたおかげで楽しい記憶を思い出しました。DS と M3 カートはまだ持っていますが、昔のビルドが入っていた SD カードはずいぶん前になくなりました
11歳くらいのころ、この Homebrew を自分の DS にインストールした記憶があります
当時は Linux が何なのかまったく知りませんでしたが、DSLinux のおかげでコンピューターサイエンスへの関心が深まりました。作った人たちと、コードを貢献したすべての人に感謝しています
これが私の Linux 入門ルートでした。BSDgames[0] と Frotz[1] のパッケージをまとめてくれた人が誰であれ感謝しています
おかげでテキストアドベンチャーゲームとインタラクティブフィクションが一生好きになりました。子どもが bin ディレクトリを漁って、単純なアドベントカレンダーアプリを期待してプロンプトに “advent” と入力したら、まったく別の世界[2]に落ちたときの驚きを想像してみてください
[0] https://wiki.linuxquestions.org/wiki/BSD_games
[1] https://davidgriffith.gitlab.io/frotz/
[2] https://en.wikipedia.org/wiki/Colossal_Cave_Adventure
その後、Unix 用 Frotz で advent や battlestar のようなものを Linux 上で動かし、trek も一緒に遊ぶようになって、すっかりハマりました
数カ月前、DSi から自分のサーバーへ SSH 接続してみたくて、これを調べました。ただ笑いを取るためにやってみたことです
そこまで深掘りするつもりはなかったので、Wi-Fi が「そのままでは動かない」と分かったところで諦めましたが、いつかそこで SSH をぜひ動かしてみたいです
私の DSi はまだあり、まだ動きますが、DSLinux は動かなかったと記憶しています