世界を動かす技術を、日本語で。

セガ・メガドライブ用Linux

2026年6月30日原文(github.com)

概要

  • Sega MegaDrive でLinuxを動作させるプロジェクトの紹介
  • Mega EverDrive (CoreまたはPro)カートリッジが必須
  • 通常のエミュレータ では動作困難、専用QEMUフォークが付属
  • 構築手順・起動方法 を詳細に解説
  • 実機の挙動や制限 についても説明

Sega MegaDriveでLinuxを動かす方法

  • ジョークではなく実現可能 なプロジェクト

  • 必要なもの

    • Sega MegaDrive本体
    • Mega EverDrive CoreまたはPro (Proは未検証)
    • EverDriveとPCを接続するUSBケーブル
    • 十分な作業時間
  • エミュレータでの動作

    • 一般的なエミュレータでは 動作不可
    • EverDrive独自のSSF2マッパ (4MB RAM提供)やSDカードからのファイル読み込みプロトコル、タイマーレジスタのエミュレーションが必要
    • 専用の QEMUフォーク が付属し、PCで動作確認可能
      • ただし 実機の速度感は再現不可 (QEMUではCPUが速すぎる)

ビルド手順

  • ツールチェーン構築

    • ./buildtoolchain.shを実行し、 Buildroot を使ってm68k-linuxツールチェーンを作成
  • U-Bootのビルド

    • ./builduboot.shU-Boot をビルド
  • medtoolのビルド

    • ./buildmedtool.shmedtool (EverDriveとのシリアル通信用ツール)をビルド
  • Linuxカーネルのビルド

    • ./buildlinux.shLinuxカーネルイメージ をビルド
  • rootfs(erofsイメージ)のビルド

    • ./buildrootfs.shrootfs erofsイメージ を作成
  • エミュレータ版の構築

    • ./buildqemu.shQEMU をビルド
    • ./runqemu.shでQEMUを起動し、Linuxをブート

起動手順

  • 必要ファイルのSDカードへのコピー
    • u-boot/u-boot.bin
    • linux/vmlinux.lz4
    • smolutils/m68k.erofs
  • MegaDriveの電源投入
  • USBケーブルをPCに接続
    • dmesgで EverDriveの認識 を確認
      • デバイス名例:/dev/ttyACM0
  • medtoolによるシリアル接続
    • ./medtool/medtool -p /dev/ttyACM0 -m terminalで接続
    • 指示に従い minicom でUNIXソケットに接続
  • EverDriveメニューでu-boot.binを選択し起動
    • 画面の指示に従いゲーム開始
  • minicomにU-Bootの起動画面が表示
    • カーネルやrootfsのロード状況が表示

Linux起動後の様子

  • カーネルバージョンや開発者情報 が表示

    • 例:Linux version 7.1.0-rc6-00250-g29f5b5b8fc12-dirty
  • 初期化ログやメモリ情報 の表示

  • gettyによるシェル起動

    • /dev/ttyED0/dev/ttyVDP0でsmolshシェルが利用可能
  • コマンド例

    • ls -lpsでファイル一覧やプロセス確認
  • 動作速度について

    • カーネルのロード・展開に非常に時間がかかる
    • 12MHz 68000搭載機よりも遅い
    • EverDrive fifoとの通信がボトルネック

MegaDrive専用の特徴

  • ビデオ出力を利用した独自コンソール
    • スクロール付きの画面表示
    • 右上の 緑色ボックス がハートビート(カーネル稼働中の点滅)
    • その下の 赤色ボックス がディスクアクセスインジケータ

意義・注意点

  • シリアル端末だけでなく、MegaDriveの映像出力を使った本格的なLinux環境
  • 現状は極めて遅いが、最適化の余地あり
  • 実験的プロジェクトとしての価値

参考情報


このプロジェクトは、 レトロハードウェアでのLinux動作 に興味があるエンジニアやハードウェア愛好家向けの、 技術的チャレンジと遊び心 に満ちた取り組みです。

Hackerたちの意見

ほんとにクレイジーだし、リスみたいだね。でも、メガドライブのCPU構成(68000とZ80)が、初めて使ったUnixマシン(TRS-80 Model 16)と同じって知ってたから、Unixの何かを動かすのは理論的には可能だったんだよね…

すごくクールだね、無意味だけどやらなきゃいけなかったって感じ。どうやって64KBのRAMに収めたのか気になってたけど、Everdriveカートリッジの4MBを使ってるんだね。それなら納得、Linuxが4MBのRAMでN64で動くって考えれば。

N64とメガドライブの違いはRAMだけじゃないよ。N64にはMMUがあるしね。

メガドライブを持ってた頃の思い出がすごく懐かしい。最初のゲーム機でも最後のゲーム機でもなかったけど、成長に影響を与えた機種だった。ゲームに夢中だった時期で、唯一クリアしたゲームはソニック2だった。今でもメガドライブのコミュニティがあるって知って嬉しいし、他の人が言ってるように、これは本当にクレイジーだけど素晴らしいね!

同じく!ソニックとPCではジャズジャックラビットが好きだった。あのウサギが大好きだったな。

俺も同じ経験があるよ。家族は2600を持ってたけど、ジェネシスが初めての現代的なゲーム機だったんだ。ビデオレンタル店やフリーマーケットに行って、買えるゲームが見つかることを願ってたのを懐かしく思い出すよ。

ジェネシスは任天堂ができないことをする。> セガの低スペックな68000は、フルLinux体験に必要なメモリ管理ユニットを持ってないから、実際に動いてるのは-nommuオプションでコンパイルされたカーネルなんだ。へぇ…LinuxはMMUが必要だと思ってた。だから、こんな古いゲーム機では絶対に動かないと思ってたよ。今日は新しいことを学んだ。> メガドライブとEverDriveをエミュレートするQEMUのフォークが含まれていて、実際のハードウェアなしでこれを遊べるのは本当にすごい。

へぇ…LinuxはMMUが必要だと思ってた。だから、こんな古いゲーム機では絶対に動かないと思ってたよ。今日は新しいことを学んだ。MMUなしでマイクロコントローラー上で動くカーネルのバリエーション(主にuCLinux)がずっと前からあったんだよ。

Macintosh Classic/SEシリーズは68kをCPUに使ってたけど、MMUはなかったんだよね。でも、uClinuxみたいなマイクロコントローラー向けのディストリビューションはサポートしてる。残念ながら、ToolBox ROMとの密接な統合があるから、かなり大変な作業なんだ。マイクロソフトがApple LISA用にXenixをリリースしたのはちょっと変わってるけど、歴史的な珍事って感じだね。同じように、Basilisk IIはMac 68kエミュレーションにとってすごく優れたエミュレーターだから、QEMUとかに活かせることがたくさんあるよ。

まだメガドライブ持ってるよ、1994年頃に買ったやつ。最近、Level Hikeで復活させたんだ(RAD2xの方がいいらしいけど、まあこれで十分)。HDMIアダプターを使わないと新しいデジタルテレビでは動かないからね。メインユニットと昔のゲーム(ソニック1と2、コラムズ、アレックスキッド、ワンダーボーイ、シャイニングフォース(セーブ用の新しいバッテリーが必要だった)、ヴァーミリオンの剣)も、何年経っても完璧に動いてるよ(カートリッジの底をしっかり掃除しただけ)。子供たちも楽しんでるよ。「パパ、すごい!すぐに立ち上がるし、遅延もないし、広告もない!」(他のデバイスのクソアプリとは違ってね!)。Linuxがメガドライブに来たって聞いて嬉しい。あとは「seee-gaah」って言いながら立ち上がって、「liii-nuux」って鳴ってくれれば最高だね、ハハハ。

みんな高いコンバーターやスケーラーを買って、新しいテレビで古いゲームをきれいに見せようとするけど、50ドルくらいで素晴らしい古いCRTがリサイクルショップにいっぱいあるのに、なんでだろう。CRTは永遠に残るわけじゃないから、未来に備えるべきだってのは分かるけど、今はまだあるんだよね。運搬やスペースの問題があれば、小さいのも見つけられるし。

ストリートオブレイジ2、ゴースト&ゴブリン、ラディカルレックス、ジュラシックパーク。このメガドライブのゲームはアートと音楽が素晴らしくて、今でも本当に楽しめるよね。

Hacker Newsで議論の続きを見る