Qt3Dprojectが起動できても終了できない?/UDOO-report07

Qt5とQT3Dがなんとかインストールできたものの、また問題が・・・。examples/qt3dにあるデモ用Qt projectを起動したのですが、フルスクリーンで、keyboardもmouseも効かなくなり、お手上げ。UDOOforumをくぐると、同じ問題にでくわしている人がいた。”Board hangs up when runs Qt programs” と “UDOO can’t quit from Qt programs with GUI“を参考に、~/.profile の最後に、QT_QAP_ENABLE_TERMINAL_KEYBOARD=1を追記しました

具体的には、$ sudo nano ~/.profile そして 最後の行に export QT_QAP_ENABLE_TERMINAL_KEYBOARD=1 を記述・保存しました

次回起動後は、Qt3dのサンプルプロジェクトを終了する際、ctrl+cでプログラム停止、ctrl+alt+F2 でCUI画面に、さらにctrl+alt+F1でコンソールを切替て、sudo reboot で再起動して、デスクトップ画面に戻しています。なんかおかしいかな???

UDOOケースが完成/UDOO-report06

UDOO forumにあったアクリ組立ケースの「型紙」をダウンロードして、実際に作成しました。Quadだと冷却フィンのため使えないボード固定用ビス穴があるので、今回は3点で無理やり固定してます。この型紙はDualのがいいみたいです。型紙はここからダウンロードしました。最初はインターネット上にあった3Dプリント用データをDLして、Kinco’s品川に見積だしたら、常識外な金額提示だったので、却下しました。(なんか3Dプリントの価格は、日本と海外を比較すると桁違い?!)

P1040481 P1040494 P1040492 P1040486

UDOOでQt5.3をビルド UDOO-report05

UDOOquad に、Qt5.3をビルドした記録です。

(環境)
ホスト : Ubuntu14.04 LTS / 64bit
ターゲット : Linaro Ubuntu 12.04 LTS / 32bit(UDOO quad)

(参考文献)
http://www.udoo.org/ProjectsAndTutorials/how-to-build-qt5-for-udoo/
How to build QT5 for UDOO

1.ホストが64bitなので、まずは”ia32-libs”をインストールします。まず、ここが1つ目の障害でした。下記を参考にしてクリア!
http://stackoverflow.com/questions/23182765/how-to-install-ia32-libs-in-ubuntu-14-04-lts
How to install ia32-libs in ubuntu 14.04 LTS
http://www.cyberciti.biz/faq/install-libgobject-2-0-so-0-on-debian-ubuntu-linux/
Error While Loading Shared Libraries: libgobject-2.0.so.0 Error and Solution [ Debian / Ubuntu ]
http://crunchbang.org/forums/viewtopic.php?id=23561
[SOLVED] ia32 packages kept back from dist-upgrade
http://www.randomhacks.co.uk/package-ia32-libs-gtk-has-no-installation-candidate-ubuntu-13-10/
Package ‘ia32-libs-gtk’ has no installation candidate Ubuntu 13.10
http://askubuntu.com/questions/352717/getting-ia32-libs-gtk
Getting ia32-libs-gtk

2.まずはgitをインストール
$ sudo apt-get install git

3./home/<user>下に、Qtソースコードとツール・チェーンを収納するためのディレクトリ”UDOO_Qt5_build”を作成、所有者を<user>に変更
$ sudo mkdir /home/<user >/UDOO_Qt5_build
$ sudo chown -R <user>:<group> /home/<user>/UDOO_Qt5_build

4.現在地を UDOO_Qt5_buildに変更
$ cd UDOO_Qt5_build

5.Freescaleのツール・チェーンを、UDOO_Qt5_build下にダウンロード
UDOO_Qt5_build$ git clone https://github.com/embest-tech/fsl-linaro-toolchain.git

6.UDOO.orgのダウンロード/バイナリページから、使用する(=ターゲットと同一)ファイルシステムを見つけ、ファイルシステムと同名のディレクトリを、/home/<user>下に新たに作成。*今回使用するファイル・システムは、”UDOO_FS_ubuntu-1204_v4.0”
UDOO_Qt5_build$ sudo mkdir /home/<user>/ UDOO_FS_ubuntu-1204_v4.0

7.現在地をディレクトリ<fileSystem name>に移動し、ファイルシステム圧縮ファイル”UDOO_FS_ubuntu-1204_v4.0.tar.gz”をダウンロード
UDOO_Qt5_build$ cd /home/<user>/UDOO_FS_ubuntu-1204_v4.0
(圧縮ファイルのダウンロードは各自対応)

8.上記ダウンロードファイルを解凍、そしてファイルシステム全ファイルの所有者を<user>に変更
UDOO_FS_ubuntu-1204_v4.0$ tar xvzf UDOO_FS_ubuntu-1204_v4.0.tar.gz
UDOO_FS_ubuntu-1204_v4.0$ cd /home/<user>
$ sudo chown -R <user>:<group> /home/<user>/UDOO_FS_ubuntu-1204_v4.0

Qt5をビルドするターゲット・ファイル・システムを、UDOOで使用するためマイクロSDカードに事前に書き込まれたファイル・システムとします。この書き込み済みマイクロSDカードをホストに接続すると、 /media/<user>/udoo_ubu1204 と認識されます

9.X11ではなくフレームバッファでアクセレートされるEGLとOpenGL ESを使用します。従って、下記のように、ファイルシステム内のいくつかのシンボリック・リンクを調整します。最後に、現在地をUDOO_Qt5_buildに戻します
注意:sudoでシンボリックリンクを作成するので、ファイル所有者を<user>に変更することを忘れずに!
$ cd /home/<user>/UDOO_FS_ubuntu-1204_v4.0/usr/lib
lib$ sudo rm libEGL.so
lib$ sudo rm libEGL.so.1
lib$ sudo rm libGAL.so
lib$ sudo ln -s libEGL-fb.so libEGL.so
lib$ sudo chown -R <user>:<group> /home/<user>/UDOO_FS_ubuntu-1204_v4.0/usr/lib/libEGL.so
lib$ sudo ln -s libEGL-fb.so libEGL.so.1
lib$ sudo chown -R <user>:<group> /home/<user>/UDOO_FS_ubuntu-1204_v4.0/usr/lib/libEGL.so.1
lib$ sudo ln -s libGAL-fb.so libGAL.so
lib$ sudo chown -R <user>:<group> /home/<user>/UDOO_FS_ubuntu-1204_v4.0/usr/lib/libGAL.so
lib$ cd /home/<user>/UDOO_Qt5_build

10.Qt5とQt3Dのソースコードを取得します
10-1.Qt5のgit repositoryを取得します
UDOO_Qt5_build$ git clone git://gitorious.org/qt/qt5.git qt5

10-2.ブランチを5.3にします(==Qt5.3にします)
UDOO_Qt5_build$ cd qt5
qt5$ git checkout 5.3

10-3.Qt3D(qt5のサブディレクトリ)のgit repositoryを取得します
qt5$ git clone git://gitorious.org/qt/qt3d.git qt3d

10-4. Qt5とQt3Dのすべてのソースコードをダウンロードするために、スクリプトinit-repositoryを実行します
qt5$ ./init-repository

11. qmake.confファイルに、いくつかの修正を加えます
qt5$ nano qtbase/mkspecs/devices/linux-imx6-g++/qmake.conf

いくつかの変数の定義を下記のように変更します
QMAKE_INCDIR += /home/<user>/UDOO_FS_ubuntu-1204_v4.0/usr/include /home/<user>/UDOO_FS_ubuntu-1204_v4.0/usr/include/arm-linux-gnueabi

QMAKE_LIBDIR += /home/<user>/UDOO_FS_ubuntu-1204_v4.0/usr/lib

QMAKE_LFLAGS += -Wl, -rpath-link, /home/<user>/UDOO_FS_ubuntu-1204_v4.0/usr/lib -Wl, -rpath-link, /home/<user>/UDOO_FS_ubuntu-1204_v4.0/usr/lib/arm-linux-gnueabi

*qmake.conf ファイルの残りの部分は、そのままです
12.configureオプションを定義します。すべてのオプションのリストは下記を実行すればわかります
qt5$ ./configure -help

私が実行したconfigureオプションは、下記の通り。(完了するには、それなりに時間がかかります)

qt5$ ./configure -prefix /opt/qt5 -make libs -no-pch -no-opengl -device imx6 -device-option CROSS_COMPILE=/home/<user>/UDOO_Qt5_build/fsl-linaro-toolchain/bin/arm-fsl-linux-gnueabi- -no-largefile -opengl es2 -qt-zlib -qt-libpng -qt-libjpeg -no-nis -no-cups -gui -make examples -sysroot /media/<user>/udoo_ubu1204 -no-gcc-sysroot -opensource -confirm-license -qreal float -v

configurationが成功すれば、最後に“Configure summary”が記述され、その中のどこかに“OpenGL …yes (OpenGL ES 2.x)”という記述が見つかるはずです
configure中に、いくつかエラーが出現しますが、それは今回必要としない機能部分ですので、最後に“Configure summary”が記述されれば、基本的には、configurationは成功です

実は、私はここで大きく躓きました。
それは、9で作成したシンボリックの所有者を変更していなかった(root:rootのまま)にもかかわらず、“Configure summary”にまでたどりつき、一見Configureが成功したように見え、そのままmakeしてしまいました。makeでもいくつかエラーがでましたが、そのままmake installまですすむこともできました。しかし、すべての操作終了後、Qt3Dのexampleを実行すると、”it could not find or load the Qt platform plugin “eglfs”.”というエラーがでて、実行できません。“Configure summary”をよく見ると、”egfls…..no”でした。この原因が、シンボリック・リンクの所有者がrootのままだということに気づくのに、お盆休みをすべて使ってしまいました、トホホホ・・(これはUDOO.orgには明確な記述がないから要注意!)

13.makeコマンドを実行してください。私はコンパイル時間を少なくするために、3つのジョブを同時に実行するオプション”ーj3”をつけました。それでも4時間以上かかりましたが………
qt5$ make -j3

14.Qtをインストールするディレクトリを作成します
まずは、ホストに、そして、所有者を<user>にすることをお忘れなく
qt5$ sudo mkdir /opt/qt5
qt5$ sudo chown -R <user>:<group> /opt/qt5
つぎに、ターゲットに、そして、こちらも所有者を<user>に
qt5$ sudo mkdir /media/<user>/udoo_ubu1204/opt/qt5
qt5$ sudo chown -R <user>:<group> /media/<user>/udoo_ubu1204/opt/qt5

15.すべてのインストールするディレクトリの作成と所有者の変更が完了したら、make installを実行
qt5$ make install

すべての操作が正常に完了すれば、Qt5がターゲットのファイルシステムの /opt/qt5 ディレクトリに、すべてインストールされています。

16.最後に、ターゲットでの操作・実行を行います
まずは、ターゲットのファイルシステム上でのQt5を確認します
$ ls -l /opt/qt5

17.所有者を変更します
$ sudo chown -R ubuntu:root /opt/qt5

18.適切な検索をするよう動的リンクに伝えるために、このスクリプトを実行します
$ sudo /opt/gpulink-fb.sh
もし、x11バージョンに戻すなら、このスクリプトを実行します
$ sudo /opt/gpulink-x11.sh

19.インストールされているQtサンプルの中の1つを実行して、動作を確かめました
$ /opt/qt5/examples/qt3d/monkeygod

LinaroUbuntu12.04では10分経つと画面がoffに UDOO-report04

UDOOでLinaro Ubuntu12.04LTSを使用した時、マウスやキーボードを操作しないで10分経過すると、自動的に画面がOFFになってしまう。調べたところ、どうもbugらしく、Energy Starという規格に沿ってLinuxが動いているために起きる現象のようです。でも、これでは業務には使用できないので、下記の対策を施し、この現象を無効にしました。

まずは、原因を確認します。

“$ xset  -q” で、現状を表示し、その記述の中に “Screen Saver:
prefer blanking: yes allow exposures: yes timeout: 600 cycle: 600 “ があることを確認

次に、/home/<user>/.profile の先頭行に” xset s 0 0 ” を記述し、保存、再起動すれば、次回以降起動しても、この現象が現れなくなります

(参考文献)https://bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/1072531

楽しくなければDOOHじゃない! by CocaCola

いつでも、コカ・コーラのサイネージは面白い。今回は透過型LCDとタッチパネル両方インストールされたクール・ボックス。やっぱり、お客さまを観察するためのカメラ付きじゃなくて、とっても身近なエンターテイメント・マシンが一番いいかも

香港のAR DOOH

香港のバス停で展開されているARデジタル・アウト・オブ・ホームの事例です。以前、BMWがニューヨークでも、同じようなARサイネージを展開していました。ウィンドーガラスに向かい側の道路の様子が写っている風で、車がすべてBMWの電気自動車になっている=CO2排出をこんだけ削減できるというエコ・キャンペーンでしたね