ODROID-XU+E届いた!

よっしゃー待ちに待ったODROID-XU+Eが届きました。

こんな感じ


こんな感じ

いやーにひひひw


ODROID-XUは韓国製の小型Linuxボードで、ハードウェアスペックが非常に高い。
まず、Armでオクタコアってあんまり聞かないよ。
しかも小型Linuxボードなのにファン乗ってるし(かっこいい!!)

位置付けとしては次期Galaxyのテストベッドみたい。


Coretex-A15 1.6GHz×4、Cotetex-A7 1.2GHz×4、
メモリ 2GB、
GPGPU搭載、USB3.0、I/O30ピン、 etc...
http://www.hardkernel.com/renewal_2011/products/prdt_info.php?g_code=G137510300620


ということで早速箱を開けて画面に接続してAndroidを起動!・・・・しない。。。

あれ?

とりあえずシリアルを繋げてどうなっているか見てみた。
windows用のシリアルのドライバはここにあったのでインストール
http://www.silabs.com/products/mcu/pages/usbtouartbridgevcpdrivers.aspx


見てみるとシリアルは出力されているみたいで、ログを見るとOSは起動しているみたい。


調べると、HDMI周りの問題があるみたいで、いろんな人が同じような症状で困っていた。
よく見ると、HDMIから何かしらの出力はされているものの、ディスプレーに表示されていない。
対策方法も実にさまざまで、片っ端から調べて実行してもうまく行かない。
ディスプレーも4種類試してみたがどれもうまくいかない。
http://forum.odroid.com/viewtopic.php?f=65&t=2212


んが〜!どうしよう。
ということで、色々なOSで起動させてみようと思い、以下のサイトを見つけました。
http://www.mdrjr.net/odroid/
http://builder.mdrjr.net/tools/


んじゃ〜Debianじゃ〜
と張り切ってDebian入れても、HDMI経由でうまく出力はされない。
でも何かしらの出力はHDMIからされているみたい。
強いて言うなら黒い画面が出力されている感じ。


ログインは、
ユーザー:odroid
パスワード:odroid


又は


ユーザー:root
パスワード:odroid


です。


デフォルトでSSHDが立ち上がっていたので、SSHでのログインは出来た。


めげずに最新版のUbuntu(2013/9/17版)で試してみた。
Ubuntuは勝手にスーパーユーザーでログイン状態になるのね。
とりあえず、Ubuntuはユーザー追加すれば、デフォルトでSSHDが立ち上がっているのでSSH経由で入れた。
でもHDMIでは出力はされない。これも何かしらの出力はHDMIからされているみたい。


あと、LinuxからODROID-XU+Eにログインして、twm、xyesは立ち上がったので、Xは動いているみたい。
ん〜そうするとやはり問題はHDMI回りだなぁ〜


/media/boot/boot.ini

に記述されているHDMIの解像度周りもディスプレーに合わせて変えてみたけど、やっぱりだめだった。

もうひとつ、ディスプレーポートという出力があって試そうと思ったけど、(実際試したけど、)
Ubuntuではまだ対応できていないとのこと。


いや〜届いたとき、テンションMAXだったから、うまくいかなくて心が折れそうになった。


ODROID-XU+E一枚しか買ってないから、これが不良品なのか、それともソフトウェアのバグ&HDMIの相性でうまく行っていないのかの
切り分けが難しいところ。
ボードのグランドが怪しいのではないかとの書き込みもあったり・・・


ということで、シリアルケーブルが無かったらマジで何も出来なかったよ・・・ orz
買っておいてよかった。


もう、割り切って、このモンスターマシンはSSHで入って、ヘッドレスシステムで運用すると決めるか!?
うまくいっている人も要るみたいなので、もう少し動向を見守ってみようと思う。

新作のハードおそらく完成

もう東日本大会がすぐそばということで、ここ数日マイクロマウス関連の人の動きが
活発になってきましたね。僕も夜の時間を有効活用して、しこしこ新作のハードを作ってました。

ということで、今年の新作はこうなりました。

何の変哲も無い、どこにでもある標準の構成。
というかあえてこうしました。今まで色々機能を付け加えすぎて結局振り回されて消化できずに終わっていたので、
オーソドックスの構成にして、プログラムの充実をさせたい。


あえて言うなら、機体重量を軽くしすぎず、40g前後を目指して作ったことかな。


重量バランスは申し分ないくらいうまく行った気がする。


すこし足回りのかみ合わせが気になっているので、もしかしたらもう一度ホイールの作り直しをするかも。

あと、さっき電源入れたらレギュレータの出力がおかしくなったので、
もしかしたらすんなりプログラムできずに、回路デバッグから始まるかもしれない。
ただ単に電池切れという可能性も...


まだまだ走るところまで行く気がしないので、東日本大会は走れないかも。

新作の進行具合

さて、ロボット学会での発表が終わったので、また少しマウス活動を始めて行こうと思います。

とりあえずマウスの現状をまとめて現状把握して気合を入れようかと。


現状は、マウスのハードウェアは9割方出来てます。

こんな感じ。


あとハードでやらなきゃいけないのは、
1.モーターマウントの固定用ねじを切る
2.磁気式エンコーダー用の、磁石固定マウント


完成重量は約45g前後
Mini-Zのタイヤを使ってる以上、たぶんタイヤグリップ的にはいい感じだと思われる。

Li-Po1セルでモータートルク的には十分なはずだけど、もし足りなかったら2セルで運用しようかね。



ソフトウェアのほうは、やらなきゃいけないことがいっぱいで何割方出来たという判定は厳しいけど、

とりあえず現状の問題として、ADの値は何故かひとつだけ取れないのと、
DMAで赤外LEDの発光を制御がいまだ出来ていない。


という所。


東日本大会はどうしようか悩み中。

BeagleBone Black(Angstrom)にSSHで入れるようにする


BeagleBone BlackのAngstrom Linuxは、なぜか初期状態からSSHで入れるやつと、入れないやつがあります。
原因は全然分かりませんが、今回私が解決した方法を書いておきます。


ちょっと解説
まず、BeagleBone BlackのAngstrom LinuxにはSSHデーモンが居ません。
でもSSHで入れる仕組みがあります。
これは、Dropbearと呼ばれる軽量のSSHデーモンが代わりに引き受けてくれているからです。
UbuntuにはSSHDが普通に居ました)


ネットを調べると、SSHで入れたからSSHデーモンは居るとか書いてあるので、
最初は本当に戸惑いました。え?無いし。。。とか思ったり。


また、DropbearはSSHログインを要求されたときに起動するので、システムの起動時には居ません。
これを引き受けているのが、どうやらxinetdではなく、systemdっぽい。
すくなくともxinetdにそういう記述は無かった。


ここで問題なのが、Dropbearが起動するとき鍵を生成しようとするのだが、
この部分でこけてしまうこと。なんでここでこけてしまうかはまったくの謎。


でもだったら手動で作ってあげれば良いじゃないかということで。

追記:
rm /etc/dropbear/dropbear_rsa_host_key
dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key
dropbearkey -t dss -f /etc/dropbear/dropbear_dss_host_key
dropbear start


cd /etc/dropbear/
dropbearkey -t rsa -f ./dropbear_rsa_host_key
dropbearkey -t dss -f ./dropbear_dss_host_key
dropbear start


これでうまく行ってくれるんじゃないかと思います。

BeagleBone BlackにUbuntu+WindowManager(LXDE)を入れてみる

そろそろBeagleBone BlackにAngstrom Linuxではなく、Ubuntuでも試したいなと。

調べると、(たとえばこのサイト http://www.armhf.com/index.php/boards/beaglebone-black/)
BeagleBone BlackのUbuntuOSイメージにはX-Windowsが入っていない。
というか、極限まで削りたかったのか、もう、ただの素のUbuntuカーネル
(後で気づいたけど、gccもmakeも入ってないよ!どういうことだよ!!ってなりました。)
俺はWindowsで飼いなされているので、Xは無くても良いけど、入ってると便利なこともあるよなぁ
と思って、Xを入れてみました。
Xを入れるのにはここのサイトを参考にしました。
http://circuitco.com/support/index.php?title=Installing_LXDE


最初はUbuntu13.04に一所懸命に軽量WindowManeger、今回はFluxbox入れようと頑張りましたが、
結局だめでした。

症状としてはXを立ち上げたとたん、カーネルログに残らないハングの仕方をするというもので、
FluxBoxを立ち上げるとすぐにハングし、超軽量WMであるTWMであればそれなりに起動しているが、
結局グラフィカルな負荷がかかるとハングしました。
(xloadで負荷を見ていて、処理が重いという感じではなく、うまく行ってるのにスポンと落ちる)
こんな感じで(実はここまで来るのに丸二日かかりましたorz)

憶測で語るのは良くないですが、なんだかメモリリークとかしてるんじゃないかなぁと思ったり。。。

途方に暮れ、調べたところどうやらUbuntu13.04はグラフィック周りのバグが多いとのことでした。
先程の http://circuitco.com/support/index.php?title=Installing_LXDE の中段に


NOTE: LXDE on this version of Ubuntu(13.04) is very buggy. Issues include a long boot-up time, missing mouse cursor, and the taskbar may fail to show up after login

と書いてありました。

訳すと、
注意:ubuntu13.04のLXDEはバグまみれです。不具合として、起動時間が必要以上にかかったり、マウスのカーソルが表示されない、ログイン後にタスクバーの起動に失敗するなどなど。。とありました。

ということで、あきらめてマニュアル通りに12.04にLXDEを素直に入れました。


まずmicroSDubuntuイメージを焼きます。容量は、4GB以上のものが好ましいと思います。
BeagleBone Blackの公式サイトを参考にします。
http://beagleboard.org/Getting%20Started

手順としては、windows disk imagerをインストールして、OSイメージをmicroSDに書き込みます。

このmicroSDをあとはBeagleBone Blackに差し込んでブートすれば勝手にmicroSDからOSが起動します。

ユーザーとパスワードは


User:ubuntu
Password:ubuntu


です。これでログインが出来ます。

で、前置きが長くなりましたが、CUIが起動したら、後は以下のコマンドを打つだけ。


sudo apt-get -y install lxde lxde-core lxde-icon-theme


インストールには約30分ほどかかりますので、終わったら再起動してください。
これで勝手にXが立ち上がると思います。


手順としては以上です。


ちなみに、どうせSSHでログインして開発するし、毎回毎回GUIが勝手に起動するのも重いし嫌だという方は、


cd /etc/init
mv lxdm.conf lxdm.disabled


と打ってください。

こうする事で、起動時にLXDEに関する.confが読まれずに起動するので、無駄な処理をしなくて済みます。
.disabledという拡張子に変えたのはなんとなくです。個人で好きなように変えてもらって結構です。


また、チョロッとXを立ち上げたい場合は、

sudo lxde

で立ち上がりますのでご安心を。


いやー自分で何でもかんでもやろうとしても良い事無いですね。ちゃんと調べましょう。という教訓でした。

BeagleBone BlackのeMMCから、OSイメージを丸ごとバックアップしてみる。

BeagleBoneBlackはボード上のeMMCと呼ばれる記憶領域からLinuxをブートしたり、
microSDにOSイメージを書き込むことでブートできたり、別のLinuxディストリビューション
eMMCに書き込むことができたり、さまざまな事ができます。


今まで、初期状態からeMMCに入っていたAngstromLinuxで開発していたので、
これまでの開発データはすべてそこに入っています。

そこで、そろそろバックアップを取って他のことしたいなぁと思ってきたので、やってみました。


ちょっとしたデータのバックアップというより、中に入っているシステムイメージを丸ごと
別のmicroSDに焼いてしまおうという荒業なので、この記事を読んで生じたトラブルに責任は持てません。

あくまで自分用のメモ程度だと思ってください。


BeagleBoneBlackにはmicroSDの差込口がありますが、今回は使わずに、
外部給電タイプのUSBハブにSDカードリーダを挿してmicroSDを認識させました。
microSDの容量ですが、eMMCと同じ2GB以上あれば問題ないでしょう。
今回は4GBのものを使いました。


まず、microSDが認識されたかdmesgコマンドでデバイス周りのカーネルログを見ます。
無いとは思いますが、もしmicroSDが自動的にマウントされていたらアンマウントしてください。
dfコマンドでマウントされているか分かります。
(追記:新しく買ってきたBeagleBone Blackは勝手にマウントされました。2013/8/31)


BeagleBoneBlackのeMMCに焼かれているシステム全体は、mmcblk0と呼ばれる領域に
入っているみたいなので、それをそのままddコマンドでmicroSDに書き込んでしまいます。



今回はmicroSDがsdbと認識されたので、

dd if=/dev/mmcblk0 of=/dev/sdb

と書いて実行しました。

sdaと認識されることもあるので、きちんとdmesgコマンドでデバイスカーネルログ見た後、
/devのディレクトリを確認してから行ってください。
時間としては1時間くらいかかりました。


ddコマンドの取り扱いには何度も言うようですが、十分注意してください。


このあと、このmicroSDをBeagleBoneBlack本体に挿して電源を入れて、
ちゃんとmicroSDからブートすることが確認できました。


以上、誰かの参考になれば。

ついにBeagleBone Blackが秋月から発売!


みなさん。ついにBeagleBoneBlackが秋月で発売開始されましたよ!
http://akizukidenshi.com/catalog/g/gM-06867/

いや〜これでBeagleBoneBlack人口増えて、コミュニティが盛んになると
必要な情報がどんどん手に入るようになっていきますね。
ますます使いやすくなるのではないでしょうか。


僕もこれからなるべくやった事を書いていくようにします。


早くRaspberryPiと同じくらい使いやすくなって欲しいものです。


秋月で取り扱っているということは、いろんな事して壊してもすぐ買えるってことですね。あら便利。


皆さんももし組込みLinuxボード興味があれば、ぜひ手を出してみてください。
BeagleBoneBlackは少し癖がありますので、不安であればRaspberryPiにするのも手でしょう。