ブログ

Armadillo-460でQt

at_kazutaka.bito
2015年4月5日 21時50分

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を作成した。