ホームページ>mini2440>その1・まずはLinuxで
その1・まずはLinuxで
目次
mini2440とは
先日(2012.4中旬頃)、とあるルートから、FriendlyARM製のmini2440を入手しました。
これは、ARM9プロセッサを搭載したマイコンボードとカラーTFT液晶がセットになったものです。(詳細は以下の公式サイト、紹介記事をご覧下さい。)
参考サイト(1):Mini2440 | S3C2440 ARM9 Board - FriendlyARM
参考サイト(2):ARMベースのタッチ液晶付きLinuxキットが発売 Androidもインストール可
マイコンボードとはいえ、
・プロセッサ:400 MHz
・メインメモリ:64MB
・ストレージ:1GB
と、十数年前のパソコン(Windows98機、初代iMac辺り?)並みのスペックと言えます。
本機は組み立てキットではなく、完成品ですが、ヘッダピンは豊富で、後から色々付けられるようになっています。
(ただし、ピッチが2mmのため、秋葉原等で入手できる2.54mmピッチのコネクタは使えません。専用ケーブルキットもありますが、あまり流通していないようです。)
また、コネクタ類も、USB(A,B各1)/LAN/シリアル/オーディオ出力/SDカードソケットと、充実しています。
液晶は3.5in.カラーTFTグラフィック(320x240pixel)で、タッチパネル付きですが、感圧式で、マルチタッチには対応していないようです。
Linux / Windows CE / Androidの各OSに対応しています。
付属品は、スタイラスペン/ACアダプタ(10W)/USBケーブル(A-B)/LANケーブル/シリアルケーブル/JTAGエミュレータ(プリンタポート用)/DVD-ROM。
ちなみに、DVD-ROM内のドキュメントは中国語でした(泣)。(国内代理店扱いのものは、日本語化されているようです。)
なお、今回は本体だけでなく、専用のCMOSカメラモジュールも同時に入手しましたので、以後のレポートはこれを含んだものとなります。
素で動かしてみる
付属のACアダプタを繋いで、電源ON。(パワーオンLEDがやたらと眩しい…)
すると、おなじみのペンギン君が現れ、次いでQtopiaが起動しました。(Linuxも含め、標準でプリインストールされているようです。)
Qtopiaは、(時期的にはスマートフォン以前の)PDA向けに用意された、開発ツールを含むアプリケーションスイートで、iOSやAndroidを見慣れた目には、古色蒼然として見えてしまいます。
とはいえ、機能的には何の問題もなく、Webブラウザでのホームページ表示もできました。(ページによってはレイアウトが崩れたり文字化けしたりはしますが…)
プリインストールソフトにはCMOSカメラ用のアプリも含まれていたので、これを起動して試したところ、正常動作を確認できました。
また、USBコネクタ(A)にHUB経由でキーボード/マウスを繋いでみましたが、普通に使えました。
どんなアプリを作るか?
マイコンボードの面白さの一つは、ハードウェアを直接扱える、という点でしょう。
とは言っても本機の場合、ハードウェアが十分にリッチなので、OS抜きの単体プログラムや、プアーなハードで多用される産業用のRTOSベースといった選択肢に縛られる事はありません。(勿論、それらを選択しても一向に構わない訳ですが。)
また、タッチパネル付きの液晶を備えていることからも、GUIベースで作りたいところです。
さて、標準でインストールされているLinux + Qtopiaには、本機のハードウェア制御のためのサンプルアプリが含まれています。
つまり、Linuxベース/GUI/ハードウェア制御といった要件を全て満たすお手本がすぐそこにある訳で、とっかかりとしてはうってつけです。
ですが、Qtopiaは既に開発が終了してしまっています。
ただし、その代わりに後継のQt(キュートと読むらしい)が提供されています。
参考サイト(3):Qt - クロスプラットフォームのアプリケーション開発フレームワーク — Qt - A cross-platform application and UI framework
なのでまずは、「ハードウェアを制御するQtopiaアプリと同等なものをQt上で作ってみる」が、当面の目標になるかと思います。
開発マシンを準備する
基本的にはH8と同じく、クロス開発になります。
マシンスペックを考えると、セルフ開発も可能なのでは?と思いたくなるが、さすがに320x240pixelのディスプレイでGUIベースの開発ツールを動かすのは現実的ではない。
つまり、ホストを用意する事になりますが、まずは最もポピュラーなLinuxでいくこととしました。
使用したマシン(自作PC)のスペックは、以下のとおりです。
・プロセッサ:AMD Athlon XP 2600+(2.1GHz)
・メインメモリ:768MB
・ストレージ:80GB HDD
・標準でシリアル/パラレルポート装備
Linuxのディストリビューションは、Ubuntu 10.04を使用。(Windowsの仮想マシンではなく、外付HDDにインストールして、そこから起動。)
注:Ubuntuはsudoを利用することが前提となっているが、パーミッション等の関係からroot(su)の方が都合がいい場合があるので、使えるようにしておいた。方法については、例えば以下を参照。
参考サイト(4):Ubuntuは初期状態ではrootが使えない(パスワード未設定)ようになっている - 偏差値40からのLinux
<minicomをインストールする>
実機との通信はシリアル経由で行うため、事前にターミナルエミュレータをインストールしておきます。
ここでは「minicom」を利用する事とし、Synaptic パッケージ・マネージャ経由でインストールしました。
minicomの設定は、端末を開き、以下のコマンドで行います 。(インストールは一般ユーザで、設定はsuで行った。)
# minicom -s
・「シリアルポート」>「A - シリアルデバイス」>/dev/ttyS0(自分の環境に合わせる。)
・「シリアルポート」>「F - ハードウェア流れ制御」>なし(なしにしておかないと、表示はできるが入力ができなくなる。)
・「モデムとダイアル」>各パラメータを全てクリアしておく。(文字列があると、起動時にモデム接続しようとする。)
minicomは日本語化されているのは嬉しいが、その関係で表示と実際の入力位置がズレる(単にフォント依存かもしれないが)。パラメータ変更後は常に再表示して、意図通り変更できているか確認した方が確実。
開発マシンと実機は、付属のシリアルケーブルで接続しました。
あらかじめminicomを起動しておき、実機の電源投入後、メッセージが表記され、(Enterキーを押した後)コマンドが入力できればOKです。
開発環境を整える
Linuxの場合、様々なディストリビュータが様々なモジュールを提供しているため、Web上で検索して、先達の成果を参考にさせて頂こうとしても、前提となる条件(例えばツールチェーン)が異なる等して、そのまま適用できない、といったケースが間々発生します。
その点、国内代理店様が制作した以下のサイトには、必要な作業が全て詳しく解説されていますので、この通りに進めさせて頂くこととしました。
参考サイト(5):ARM環境のQt4とQtopia開発入門
注:以下、suが添付されているものは、rootで作業した事を示す。
<Ubuntuに必要なパッケージをインストールする(su)>
・参考サイト(5)の通り、以下を実行。
# apt-get install -y g++
# apt-get install -y x11*
<ARM用のクロスコンパイラをインストールする(su)>
・参考サイト(5)の「ARM用のクロス・コンパイル・ツールをインストールする」を実施。
・パスは実行時に指定できるので、ここでは設定しなくても良い。
<x86用のqtopia-2.2.0をコンパイルして実行する(su)>
・参考サイト(5)の「x86用のqtopia-2.2.0をコンパイルと実行する」を実施。
・上述のマシンで、2時間位かかった。
・シミュレータを起動し、動作することを確認した。
・今回はシミュレータの動作確認までで、ARM用のqtopiaのコンパイル/サンプルアプリの作成/実機に転送してのテストは行わなかった。
<ARM用のQt-4.6.3をコンパイルする(su)>
・参考サイト(5)の「ARM用のQt-4.6.3をコンパイルと実行する」を実施。
・上述のマシンで、2時間位かかった。(もっと長かったかも。)
・今回は、コンパイルまでで、実機に転送してのテストは行わなかった。
<Qt Creatorをインストールする>
・参考サイト(5)とは異なり、日本語のダウンロードページからインストールした。
・Qt Creatorのバージョンは2.4.1だった。(Synaptic パッケージ・マネージャ経由でもインストール可能だが、1.3.1という相当古いバージョンだった。)
<サンプルアプリを作成する>
・基本的には、参考サイト(5)の「Qt4版の簡易電卓」の通りですが、
- Qt Creatorのバージョン違いにより、ウィザードやタブの構成が説明画像と異なるため、それらしい項目を選択。
- 「ツール>オプション」メニュー>「ビルドして実行>Qt バージョン」タブでの、QtEmbeded-4.6.3-arm(「ARM用のQt-4.6.3をコンパイルする」で作成したもの)の追加は、プロジェクトには依存しないので、初回起動時に一回済ませておけばよい。
- クロスコンパイルしようとすると「arm-linux-g++: Command not found」となってしまったので、「プロジェクト」タブ>「ビルド時の環境変数」のPATHの最後に、コンパイラへのパス「:/opt/FriendlyARM/toolschain/4.4.3/bin」を追加した。(正しい対処かどうかは不明)
<実機に転送して動作確認する>
・参考サイト(5)の「Qt4版の簡易電卓」の項の最後に記述されている「HelloQt4をボードの/binにコピーする。起動用のスクリプトを編集する。」を実施。
・実機へのコピーにはminicomを使用し、zmodemで転送した。
・実機で動作することを確認した。
まとめ
Linux上にQt開発環境を構築し、サンプルアプリがmini2440上で動作するところまで確認できました。
なお、参考サイト(5)では、サンプルは縦画面表示されているように見えますが、うちでは横画面で表示されました。ペンギン君や起動メッセージは横画面表示なので、横の方が素直な気もしますが、どうなんでしょう。
また、Qt Creatorの使い方がよく分かりません。
デバッグ時はホスト上のシミュレータで作業し、OKとなったらワンタッチで設定を切り替えてターゲット用のビルドを行い、実機に転送できる(できればQt Creator上で転送と再起動までやりたい)、という、要はiOS SDKと似たような事がやりたいんですが、更に調査が必要です。
ということで、先はまだまだ長そうです(笑)。
「その2・MacでのQtクロス開発は絶望的??」へ続く
お世話になったサイト
有用なソフトウェアおよび貴重な情報をご提供頂いている皆様に、お礼申し上げます。(以下、順不同)
参考サイト(1):Mini2440 | S3C2440 ARM9 Board - FriendlyARM
参考サイト(2):ARMベースのタッチ液晶付きLinuxキットが発売 Androidもインストール可
参考サイト(3):Qt - クロスプラットフォームのアプリケーション開発フレームワーク — Qt - A cross-platform application and UI framework
参考サイト(4):Ubuntuは初期状態ではrootが使えない(パスワード未設定)ようになっている - 偏差値40からのLinux
参考サイト(5):ARM環境のQt4とQtopia開発入門
更新履歴
2012.05.22 「まとめ」にリンクを追加。
2012.05.15 新規作成
[Home]
[MacSoft]
[Donation]
[History]