既にU-Bootのポーティングに成功していたSHARPの電子辞書「Brain」シリーズに、Linux カーネルと Debian 10 (Buster) をポーティングしました。デバイスドライバが不足していたLCDインターフェースの実装もフルスクラッチで行いました。
Sharp BrainでU-Boot起動→microSDからLinux起動できた!!嬉しすぎる!BrainのWindows CEで必死で遊んでた10年前の自分に教えてやりたい。
— Takumi Sueda (@puhitaku) 2020年3月30日
1: SDをプローブする死闘
2: mmc dev 1でmicroSDを選択し情報表示
3: zImageとDTS読んだ瞬間
4: rootfsが空でinitがないのでpanicする pic.twitter.com/48vVOdvwZg
Linuxのグラフィックドライバー実装完了。画像は起動時のコンソール、getty、Midori(Webブラウザ)とxeyes。WMはOpenbox。 pic.twitter.com/OJicSRXcnh
— Takumi Sueda (@puhitaku) 2020年9月2日
ポイント
- U-Bootのポーティングで得た情報をさらに推し進め、Linuxでも同様に必要となるI/O設定などを移植
- 単にブートするだけでなく、Debian 10による rootfs も作成して完全な GNU/Linux ディストリビューションを動作させることに成功
- Linux カーネルにおいて必要となる Device Tree のようなフレームワークも Brain 向けにカスタマイズを加えた
リポジトリ
GitHub: brain-hackers/linux-brain