LoginSignup
1
1

More than 3 years have passed since last update.

Onion OmegaでFreeBSD

Last updated at Posted at 2017-06-05

たまたま転がり込んで来たOnion Omegaを今更ながらFreeBSDで使えるようにしてみました。OmegaはmipsなAtherosのわりと新しめのAR9330というSOCを使っていて、RAM 64M/Flash 16Mなので私のターゲットの中では結構リッチな方です。世の中的にはOmega2が使われ初めていて、一周遅れで自分らしいなと妙に納得したりしています。

Onion.jpg

AR9330はAR9331と同じものでAP121と呼ばれているものではないかと思われます。

OnionOmega.png

私はオペレーションはMacなので、ドーターボードについているUART USBデバイス変換のSiLabsのチップのドライバつかってシリアルコンソールにアクセスします。

こちらにfreebsd-wifi-buildでのビルド方法があるので、これを参考にZRouterでビルドできるようにしてみました。

上記のビルドスクリプトをみると、TP Linkタイプのイメージを作成する必要がありmktplinkfwコマンドを利用しているようです。このイメージはU-Bootといいつつ別のものになってしまっているようです。ZRouterにもmktplinkfwコマンドは入っていたのですが、古いもののようなので、freebsd-wifi-buildからソースをコピーしてビルドできるようにしてみました。

mktplinkfwはshare/mk/converters/ではなくMakefileに直接書いてあったので、調整してとりあえずビルドできるようにはなったのですがlzma errorが起きて起動できません。いろいろ試して再起動した後にはerrorが起きないようなので、試す時は常に再起動するようにしました。

ところがOKが出るのですが、そこから進みません。よくよく調べてみるとAR933xは他のAR7/9系とは別のuartのコードが用意されていて、これを使う必要がありました。AtherosのSOCで100のSwitchを内蔵しているチップはAR724x -> AR933x -> AR934xとなっていますが、なぜAR933xだけ別物になってしまったのでしょうか。。。

最初のログが出るまでのデバッグはなにも見えない中でCPUがどうなっているか想像してのデバッグで、無の世界で禅の修行している気分になります。

これでやっとブートログが出ました。ちょっと前にAR9340もいじっていたので、簡単にできるかと思ったら、一日近くかかってしまいました。

実際イメージを焼くには上のページの処理にeraseを実行する必要もありました。

後はhintsをsys/mips/confを参考に調整してみました。

このSOCではEthernetインターフェースのargeは二つありますが0がSwitchのPHY4に接続されていて外に出ています。

USBも正常に認識されています。

GPIOも沢山あるのでBitbangでI2CやSPIも使えます。

objcopyがbinutilからelftoolchainに変わってから、おかしくなっているので、古いバイナリを発掘して使っています。2018/01に直りました。

もちろん技適がないのでWIFIは確認していません。:)

とりあえずmrubyを入れてイメージを作ってみました。RAMもFlash大きいので、いろいろできそうです。

カーネル起動だけ

setenv ipaddr 10.10.10.102;setenv serverip 10.10.10.3
tftpboot 0x80600000 Onion_Omega.bin
bootm

焼き直し

setenv ipaddr 10.10.10.102;setenv serverip 10.10.10.3
tftpboot 0x80020000 Onion_Omega.bin
erase 0x9f020000 0x9f7fffff
cp.b 0x80020000 0x9f020000 $filesize

u-bootの環境変数が保存できないので、毎回入力が必要でちょっと不便です。

このブートは圧縮して入っていて128Kと小さくなっています。16MのFlashが付いているのにちょっと不思議な気もします。追記:このブートはu-boot_mod由来で、このプロジェクトが小さめに作るポリシーだったようです。

とりあえず半分だけ消しています。イメージが大きくなった場合は0x9fff0000まで広げられます。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1