Armadillo-460+LCD拡張ボード(OP-A400-LCD43EXT-L01)でQtを使ってみた。
1.ATDE
Howto : Armadillo-440でQt! 第2回にあるQt/Embedded用のライブラリ等セットアップしたATDE http://armadillo.atmark-techno.com/files/downloads/sample/a440-qt-howto/atde4-qt-amd64-20130131.zip を使用。
2.カーネルとユーザーランド
今回は、現時点(2015.5.12)での最新版を使用する。 Linuxカーネルv2.6.26-at25 ユーザーランドv20150424 をダウンロードして、展開して、リンクをはる。
[atde ~]$ wget http://armadillo.atmark-techno.com/files/downloads/armadillo-460/source/dist/atmark-dist-20150424.tar.gz [atde ~]$ wget http://armadillo.atmark-techno.com/files/downloads/armadillo-460/source/kernel/linux-2.6.26-at25.tar.gz [atde ~]$ tar zxvf atmark-dist-20150424.tar.gz [atde ~]$ tar zxvf linux-2.6.26-at25.tar.gz [atde ~]$ ln -s atmark-dist-20150424 atmark-dist [atde ~]$ cd atmark-dist [atde ~/atmark-dist]$ ln -s ../linux-2.6.26-at25 linux-2.6.x
3.Armadillo-460のQt用のプロダクトディレクトリ
添付のqt-460_20150512.tar.gzをatmark-dist/vendors/AtmarkTechnoディレクトリの下に展開する。 (下記はホームディレクトリにqt-460_20150512.tar.gzがあるものとする)
[atde ~]$ tar zxvf qt-460_20150512.tar.gz [atde ~]$ cp -a qt-460_20150512 ~/atmark-dist/vendors/AtmarkTechno/
make menuconfigを実行して、
[atde ~/atmark-dist/vendors/AtmarkTechno]$ cd ~/atmark-dist [atde ~/atmark-dist]$ make menuconfig
MainMenuでプロダクトディレクトリにqt-460_20150512を選択。
Main Menu Vendor/Product Selection ---> --- Select the Vendor you wish to target (AtmarkTechno) Vendor --- Select the Product you wish to target (qt-460_20150512) AtmarkTechno Products
上記の設定後、ビルドして、イメージをArmadillo-460に書き込む。
4.RAMDISKのサイズの変更
Armadillo-460のSW1を押しながら電源を投入して、保守モードで起動する。 手順3で書き込んだイメージは、Qt用のライブラリを含むため、標準のRAMDISKのサイズ(32MB)では、 不足なので、下記のコマンドを実行してRAMDISKのサイズを拡大する。
hermit> setenv console=ttymxc1 ramdisk=61440
既に設定済みであれば、本手順はとばしていい。
5.Qtのサンプルプログラムを動かしてみる
Armadillo-460を起動して、
[armadillo ~]# hello_qt -qws
を実行すると、"Hello Qt!"という文字が表示される。
5.QtCreatorと組み合わせて動かしてみる
Howto : Armadillo-440でQt! 第3回の手順どおりに実行すると、 LCDにMainWindowが表示されることと、LCDにタッチするとマウスポインタが反応することを確認。
参考) 参考までに添付のArmadillo-460のQt用のプロダクトディレクトリ:qt-460_20150512の作り方を説明する。
A1.プロダクトディレクトリの準備
上記手順2のカーネルとユーザーランドの準備ができているものとする。 標準のArmadillo-460のプロダクトディレクトリをqt-460_20150512という名前でコピーする。
[atde ~]$ cd atmark-dist/vendors/AtmarkTechno [atde ~/atmark-dist/vendors/AtmarkTechno]$ cp -a Armadillo-460 qt-460_20150512
A2.Qtのサンプルを含むユーザーランドの入手
Howto : Armadillo-440でQt! 第2回にある Qtのサンプルアプリを含んだユーザーランドをダウンロードして展開する。
[atde ~]$ wget http://armadillo.atmark-techno.com/files/downloads/sample/a440-qt-howto/atmark-dist-qt-20121105.tar.gz [atde ~]$ tar zxvf atmark-dist-qt-20121105.tar.gz
A3.QtのサンプルをArmadillo-460のQt用のプロダクトディレクトリ:qt-460_20150512にコピーする
[atde ~]$ cd atmark-dist-qt-20121105/vendors/AtmarkTechno/Armadillo-440.Qt [atde ~/atmark-dist-qt-20121105/vendors/AtmarkTechno/Armadillo-440.Qt]$ cp -a hello_qt ~/atmark-dist/vendors/AtmarkTechno/qt-460_20150406/ [atde ~/atmark-dist-qt-20121105/vendors/AtmarkTechno/Armadillo-440.Qt]$ cp -a usr/lib ~/atmark-dist/vendors/AtmarkTechno/qt-460_20150406/usr/
補足) ここでは、hello_qtとusr/libをプロダクトディレクトリに含めることで、 ビルド時にQtとタッチスクリーンのライブラリがユーザーランドに含まれるようにした。
A4.プロダクトディレクトリのMakefileの編集
[atde ~]$ cd ~/atmark-dist/vendors/AtmarkTechno/qt-460_20150512 [atde ~/atmark-dist/vendors/AtmarkTechno/qt-460_20150512]$ gedit Makefile
で、Makefileをエディタで開いて、下記の2行を追加する。
SUBDIR_y += hello_qt
と
$(ROMFSINST) -s /etc/init.d/sshd /etc/rc.d/S70sshd
を追加。 補足)サブディレクトリにhello_qtを追加して、Armadilloの起動時にsshdを起動するようにしている。
A5.sshdの設定
[atde ~/atmark-dist/vendors/AtmarkTechno/qt-460_20150512]$ gedit etc/ssh/sshd_config
で、sshd_configをエディタで開いて、下記の2箇所を変更する。 PermitRootLoginのnoをyesに変更。
PermitRootLogin yes
Subsystem sftpの/usr/libexec/sftp-serverを/usr/lib/openssh/sftp-serverに変更。
Subsystem sftp /usr/lib/openssh/sftp-server
A6.ユーザーランドコンフィギュレーションの設定
[atde ~]$ cd ~/atmark-dist [atde ~/atmark-dist]$ make menuconfig
で、コンフィギュレーションのプロダクトディレクトリに、qt-460_20150512を選択する。
Main Menu Vendor/Product Selection --- Select the Vendor you wish to target (AtmarkTechno) Vendor --- Select the Product you wish to target (qt-460_20150512) AtmarkTechno Products
ユーザーランドコンフィギュレーションの変更と、コンフィギュレーションのアップデートを有効にする。
Main Menu Kernel/Library/Defaults Selection [*] Customize Vendor/User Settings [*] Update Default Vendor Settings
ユーザーランドコンフィギュレーションで、下記のようにopensshのバージョンの設定と、sftp、gdbserver、tslib-calibrateの 有効化を行う。
Userland Configuration Network Applications ---> [*] openssh (6.0p1) version [*] sftp-server [*] sftp
Userland Configuration Miscellaneous Applications ---> [*] gdbserver [*] tslib-utils [*] ts_calibrate (NEW)
以上の手順で、添付のqt-460_20150512を作成した。