VoCoreの開発環境をMacで構築する
INDIEGOGOでお金を出していた極小Linuxボード「VoCore」が、10月から出荷開始され、ステイタスを見ていると、オプションボード付きの僕のところへんも「Shipped」となったので、しばらくしたら届くのだろう。
このVoCoreは、無線LANルータなどで使われているRalinkのチップが載っていて、市販の無線LANルータなどの代替OSとなるOpenWrtを動かすことを前提としているようだ。なるほど、確かに小さなLinuxボックスを作るという目的にはよく適合している。
「送ったよ」の連絡が来たのでちゃんとサイト見てみたら、開発環境の作り方みたいなページもあるし、居ても立ってもいられなくなったので、とりあえず開発環境の整備だけでもしてみよう、ということで早速。
基本的にはこのページのインストラクション通り
Setup MacOS Develop Enviroment
このインストラクションはVoCore用のKernelのBuild環境作りと、実際のKernelイメージの作り方だな。端末まだ来てないけどやってみるしかないでしょう。
ただし、僕の環境だとMacPortsではなくHomebrewなので、5と6の方法が違う。Homebrew入れてない人は5でMacPortsインストールすればいいし、Homebrewの人はすでにインストール済みということなのでHomebrewのインストール方法は割愛。
brew install coreutils gnu-getopt gnu-tar findutils wget
ln -s /usr/local/opt/gnu-getopt/bin/getopt /usr/local/bin/getopt
色々調べながらやってみたところ、僕のところでは上記のパッケージが必要だった。そこそこ使ってる環境なので、すでにインストールされていたパッケージ等があるかもしれないので、足りない場合があるかもしれない。
ページに書いてあるfileutilsは、Homebrewではcoreutilsの中に含まれているようだ。また、gnu-getoptはインストールするだけではコマンドへのパスが通らず、そもそもMacに入っているgetoptは使えるオプションが足りないようなので、シンボリックリンクを作成しておいた。
また、9に関しては、ディレクトリの移動が抜けてるけど、想像通り
cd /Volume/VoCore/openwrt
して、以降はopenwrtのディレクトリの中で行う。
そして、10のとおりbuildを実行してみる。おや?Error?Google先生に聞いたりしつつ、OpenWrtの公式サイトからPatch持ってきて適用してみたり、何度かソースを持って来直して試したりしてみたところ、エラーの発生箇所が一様でない。そして、エラーが出ても、再度makeコマンド投げれば先に進むようだ。エラーの発生芭蕉はtouchコマンドのところ?!ん〜、何か時々ファイルの書き込みでこけてるだけっぽい?!いや、「だけ」っていうか、それはそれで問題なんだけど。touchでコケるか?!
ま、とりあえず、エラー出てももう一回makeコマンドなげてみろってことで。
そして、最後の最後まで悩んだのが、以下のエラー。
Signing key has not been configured
make[2]: Leaving directory `/Volumes/VoCore/openwrt'
make[1]: Leaving directory `/Volumes/VoCore/openwrt'
OpenWrt公式のIssue見ても「いや、このIssue閉じてもらってもいいですか」みたいな記述しかなく、ぐぬぬ…って思いながらも調べてたら、VoCoreの中の人のBlogで答えを見つけた。
Topic: Setting up OpenWrt build environment on OSX and build VoCore image | Vonger's Blog
これが正常に終了した時のメッセージだった
時間返して…orz。確かに、bin/以下にバイナリができあがってる。ということで、フライングでkernelイメージ作ったけど、これ以上これ以上何もできないので、ここから先は実機が来てからってことで。
日本のメーカーから、きちんと技適通した似たようなコンセプトのボード出ないかなぁ。