こちらの記事に引き続き。
せっかくオリジナルカーネルが動くことが確認できたので、ユーザーランドも入れてみることにします。
こういう組み込み機器で何かしたいとき、結局クロスコンパイルや何やらが必要になったりして、自分の好きなアプリを入れるのが難しい場合が多いです。
openmikoでも使われているbuildrootにはそこそこパッケージが準備されていますが、
それだけでは物足りなかったり、どうせだからセルフコンパイルしてしまえ、といった場合にapt-getが使えるdebianを入れてしまうとらくちんになります。
ちなみにこういうことができるのはArmadillo-440をいじっていた時に覚えました。
例えば、プレイステーションクラシックにdebianを入れる、なんてこともできます。
あたまがわるいのでPlaystationClassicでUSBメモリにインストールしたDebian jessyを動かしてみた。
— ひろみつ (@bakueikozo) January 16, 2019
開発機になるなw。サイズが300M弱か。このままではFlashには乗らないか
手順はこちらを参考にしたhttps://t.co/ow0bCQ7jZR pic.twitter.com/N3XZqbsar5
さて、しかしながらATOMCam2で使われいるCPUはMIPSとやや特殊な環境。
CPUIDを見るとMIPS R3000と出ていますので、対応しているディストリビューションは結構古く、どうやらDebian8(jessie)まで、の気がしました。
また、対応カーネルが3系、であり、これ以上の上位カーネルを作るのはおそらく無理だと思います。
というわけで、まずはbuildrootで簡易ユーザーランドを作り、debootstrapを使ってjessieを入れてみました。
…普通ならここで手順を書くべきですが、基本的にものぐさなのでそういう記録を全くとっていません(ポンコツ)
microSDカードの第一パーティションに、カーネルのuImageであるfactory_t31_ZMC6tiIDQNを置いておくのはraspberry-piとかと同じですが、
ATOMCamを使うにあたって、複数のパーティションを作ったり、extパーティションを作るのはちょっと面倒です。そのため、ちょっと複雑ですが(atomcam_toolsも同じ方法ですが)、ext2ファイルシステムイメージをfatパーティションに置き、initramfsでマウント、switch_rootすることでdebianを起動させます。
というわけで、まずは結果のみ。
Flash上のパーティションもマウントできますので、既存のシステムのファイルが読めます。
atomcam_toolsに、なんだかどんどん拡張用の修正を加えてくれる方がいるので、
これと結合すると、このdebian上でATOMのアプリを動かすこともおそらく可能になると思います。
いやまあ、わざわざdebian使うか?っていう話もあるんだけど、まずは動かしてみる、という環境を作る、っていうのはそれなりに大事なのよね。apt便利。
apt-getでセルフコンパイルのgccを入れれば、なんとそこでhello,worldがかけるんですよ。
ATOMCamにDebian7入れてapt-get gccしてセルフコンパイルからのhello,world pic.twitter.com/stdt5x73nM
— ひろみつ (@bakueikozo) October 16, 2021