Armadilloフォーラム

御社ホームページの 14.2.2. 制限事項について 

k.nishijo

2018年3月13日 11時11分

御社ホームページの
https://manual.atmark-techno.com/armadillo-840/armadillo-840_product_ma…

>14.2.2. 制限事項
>執筆時点で判明している、不具合事項は次の通りです。

>メインウィンドウ以外にサブウィンドウを作成する場合、作成に失敗する場合があります。例えば、メッセージボックスやファイルダイアログなどを>作ろうとする場合に、EGL_BAD_ALLOCエラーとなる場合があります。

という記述がありますが、たしかに実際にやってみるとうまくいかないようです。
例えば、複数画面を切り替えて表示するアプリケーションの作成を想定した場合の利用は可能でしょうか?
(プログラムの作るによるのかもしれませんが。。。)

以上よろしくお願いします。

コメント

過去の記事を参照したところ
https://armadillo.atmark-techno.com/forum/armadillo/1932

複数の画面を持つ場合はQMLを使うことが有効な手段だとありますが、

御社ホームページにある14.2.2. 制限事項では、アルマジロでQMLデザイナーは使えないと書いてあります。
QMLデザイナーが使えない場合、ほかにはどのような手段でQMLで画面作成をしていくのでしょうか?

ご教示ください。

>
> 御社ホームページの
> https://manual.atmark-techno.com/armadillo-840/armadillo-840_product_ma…
>
> に
>
> >14.2.2. 制限事項
> >執筆時点で判明している、不具合事項は次の通りです。
>
> >メインウィンドウ以外にサブウィンドウを作成する場合、作成に失敗する場合があります。例えば、メッセージボックスやファイルダイアログなどを>作ろうとする場合に、EGL_BAD_ALLOCエラーとなる場合があります。
>
>
> という記述がありますが、たしかに実際にやってみるとうまくいかないようです。
> 例えば、複数画面を切り替えて表示するアプリケーションの作成を想定した場合の利用は可能でしょうか?
> (プログラムの作るによるのかもしれませんが。。。)
>
> 以上よろしくお願いします。
>
>
>

> > QMLデザイナーが使えない場合、ほかにはどのような手段でQMLで画面作成をしていくのでしょうか?

ボタン等を配置する場合はプログラム内に組み込んでいくしかないという認識でよろしいでしょうか?

> 過去の記事を参照したところ
> https://armadillo.atmark-techno.com/forum/armadillo/1932
>
> 複数の画面を持つ場合はQMLを使うことが有効な手段だとありますが、
> > QMLデザイナーが使えない場合、ほかにはどのような手段でQMLで画面作成をしていくのでしょうか?
>
> 御社ホームページにある14.2.2. 制限事項では、アルマジロでQMLデザイナーは使えないと書いてあります。

> ご教示ください。
>
>
> >
> > 御社ホームページの
> > https://manual.atmark-techno.com/armadillo-840/armadillo-840_product_ma…
> >
> > に
> >
> > >14.2.2. 制限事項
> > >執筆時点で判明している、不具合事項は次の通りです。
> >
> > >メインウィンドウ以外にサブウィンドウを作成する場合、作成に失敗する場合があります。例えば、メッセージボックスやファイルダイアログなどを>作ろうとする場合に、EGL_BAD_ALLOCエラーとなる場合があります。
> >
> >
> > という記述がありますが、たしかに実際にやってみるとうまくいかないようです。
> > 例えば、複数画面を切り替えて表示するアプリケーションの作成を想定した場合の利用は可能でしょうか?
> > (プログラムの作るによるのかもしれませんが。。。)
> >
> > 以上よろしくお願いします。
> >
> >
> >

御不便おかけいたします。
IDEは使わずに、リファレンスマニュアルを参照して
emacs等のエディタでQMLを書いてください。

QMLデザイナーは、別途有償ライセンス版を購入すれば使えるのでしょうか?

> 御不便おかけいたします。
> IDEは使わずに、リファレンスマニュアルを参照して
> emacs等のエディタでQMLを書いてください。

アルマジロ上でのQtをつかった開発については、いろいろと制約事項があるように思いますが、
Qt以外に御社で確認されたGUI環境等なにかありませんでしょうか?

> QMLデザイナーは、別途有償ライセンス版を購入すれば使えるのでしょうか?
>
> > 御不便おかけいたします。
> > IDEは使わずに、リファレンスマニュアルを参照して
> > emacs等のエディタでQMLを書いてください。

Xをインストールしてgtkでも書く事ができますが、Armadillo-840の
GPUによる描画処理が使えるのはQtだけです。X+gtkの場合は
描画にCPUの処理時間を使います。

Armadillo-840はシングルコアなので、GUI描画のためにあまり
CPUを割きたくないためQtを勧めておりますが開発環境が貧弱ですね…

QMLデザイナーがATDEで動作しないのは、ATDE内のライブラリとQMLデザイナーを
動かしているQt自体の依存関係を解決したライブラリを提供できていないためです。

そのため、他のQt5が標準的に使うことのできるLinux PCやWindowsマシン等で
QMLデザイナーを動かして、完成したQMLと.pro等のリソースもって来ることで、
Armadillo向けのビルドに使えるはずです。

幸い、Qtはクロスプラットフォームな実装なので(Qtと無関係なlinuxやwindows独自の
システムコールやライブラリのような)OS依存のコード以外は、共通で使えます。
(.proはどの環境でも共通で、その情報を元にビルド環境依存なMakefile等を生成
しています。)

まして、QMLはQtのライブラリ内で解釈されるスクリプト言語なので、
どこで作っても同じです。ただし、QtのバージョンはArmadillo/ATDEと合せる必要はあります。

> そのため、他のQt5が標準的に使うことのできるLinux PCやWindowsマシン等で
> QMLデザイナーを動かして、完成したQMLと.pro等のリソースもって来ることで、
> Armadillo向けのビルドに使えるはずです。

たしかに上記のようなやり方ならでQMLが使えますね。
思いつきませんでした。

> Xをインストールしてgtkでも書く事ができますが、Armadillo-840の
> GPUによる描画処理が使えるのはQtだけです。X+gtkの場合は
> 描画にCPUの処理時間を使います。
>
> Armadillo-840はシングルコアなので、GUI描画のためにあまり
> CPUを割きたくないためQtを勧めておりますが開発環境が貧弱ですね…
>
> QMLデザイナーがATDEで動作しないのは、ATDE内のライブラリとQMLデザイナーを
> 動かしているQt自体の依存関係を解決したライブラリを提供できていないためです。
>
> そのため、他のQt5が標準的に使うことのできるLinux PCやWindowsマシン等で
> QMLデザイナーを動かして、完成したQMLと.pro等のリソースもって来ることで、
> Armadillo向けのビルドに使えるはずです。
>
> 幸い、Qtはクロスプラットフォームな実装なので(Qtと無関係なlinuxやwindows独自の
> システムコールやライブラリのような)OS依存のコード以外は、共通で使えます。
> (.proはどの環境でも共通で、その情報を元にビルド環境依存なMakefile等を生成
> しています。)
>
> まして、QMLはQtのライブラリ内で解釈されるスクリプト言語なので、
> どこで作っても同じです。ただし、QtのバージョンはArmadillo/ATDEと合せる必要はあります。

御社ホームページの
https://manual.atmark-techno.com/armadillo-840/armadillo-840_product_ma…

にある制約事項についてですが、840以外のアルマジロについても同様でしょうか?

> > そのため、他のQt5が標準的に使うことのできるLinux PCやWindowsマシン等で
> > QMLデザイナーを動かして、完成したQMLと.pro等のリソースもって来ることで、
> > Armadillo向けのビルドに使えるはずです。
>
> たしかに上記のようなやり方ならでQMLが使えますね。
> 思いつきませんでした。
>
>
>
>
>
>
>
>
>
>
>
> > Xをインストールしてgtkでも書く事ができますが、Armadillo-840の
> > GPUによる描画処理が使えるのはQtだけです。X+gtkの場合は
> > 描画にCPUの処理時間を使います。
> >
> > Armadillo-840はシングルコアなので、GUI描画のためにあまり
> > CPUを割きたくないためQtを勧めておりますが開発環境が貧弱ですね…
> >
> > QMLデザイナーがATDEで動作しないのは、ATDE内のライブラリとQMLデザイナーを
> > 動かしているQt自体の依存関係を解決したライブラリを提供できていないためです。
> >
> > そのため、他のQt5が標準的に使うことのできるLinux PCやWindowsマシン等で
> > QMLデザイナーを動かして、完成したQMLと.pro等のリソースもって来ることで、
> > Armadillo向けのビルドに使えるはずです。
> >
> > 幸い、Qtはクロスプラットフォームな実装なので(Qtと無関係なlinuxやwindows独自の
> > システムコールやライブラリのような)OS依存のコード以外は、共通で使えます。
> > (.proはどの環境でも共通で、その情報を元にビルド環境依存なMakefile等を生成
> > しています。)
> >
> > まして、QMLはQtのライブラリ内で解釈されるスクリプト言語なので、
> > どこで作っても同じです。ただし、QtのバージョンはArmadillo/ATDEと合せる必要はあります。

Armadillo-840以外のArmadilloについてはQtに利用について
当該の内容は検証しておりません。

> メインウィンドウ以外にサブウィンドウを作成する場合
これはバックエンドにOpenGLを利用している場合の実装仕様なので
Armadillo-840以外では、GPUによるOpenGL描画はできないため、
他機種では関係しません。

> Qt CreatorでQMLのデザイナーが利用できません

これはArmadilloではなくQt Creator 2.7.0のバグですが、
一応wheezy-backportからQt Creator 3.2.0が供給されているので
回避することはできます。

次の手順でwheezy-backportリポジトリからQt Creator 3.2.0を
インストールすることができます。ダブルクォート等間違いなく
入力してください。

ATDE$ sudo sh -c "echo  deb http://ftp.jp.debian.org/debian/ wheezy-backports  main contrib non-free > /etc/apt/sources.list.d/my.list"
ATDE$ sudo apt-get update
ATDE$ sudo apt-get install -y -t wheezy-backports qtcreator
 
(確認)
ATDE$ dpkg -l  qtcreator
(略)
ii  qtcreator      3.2.1+dfsg-3 amd64        lightweight integrated developmen 
 
(バージョンが3.2.1+dfsg-3 等の3.2以上ならOK)

(QtCreator2.7.0に対してArmadillo向けに設定済みにしている
コンパイラや環境変数等のデフォルト値は3.2.0でもそのまま
引き継がれますが、全て問題ないかは確認していません。)

> QML言語で...次のようにアプリケーションを実行する必要があります。
これは、制約事項に記載した通りの環境変数の利用で回避できるはずです。

以下の記事の中で
https://armadillo.atmark-techno.com/forum/armadillo/1932

>a840の Qtは、eglfs (EGL Full Screen)を使っています。

そのため、複数画面を表示することができないということを書かれていますが、

http://doc.qt.io/qt-5/embedded-linux.html#eglfsにかかれているそれ以外の方式(EGLFS, LinuxFB, DirectFB, Wayland)ではそれが可能なのでしょうか?
また、そのような機種等をもし御社のほうでご存知でしたらご教示ください。

仮に、Qtを組み込みに使用した場合、そもそも複数画面を同時に出力することが不可能ということであれば、ほかにはどういった選択肢があるのかも併せてご教示いただきたくお願いします。

>
> 以下の記事の中で
> https://armadillo.atmark-techno.com/forum/armadillo/1932
>
> >a840の Qtは、eglfs (EGL Full Screen)を使っています。
>
> そのため、複数画面を表示することができないということを書かれていますが、
>
> http://doc.qt.io/qt-5/embedded-linux.html#eglfsにかかれているそれ以外の方式(EGLFS, LinuxFB, DirectFB, Wayland)ではそれが可能なのでしょうか?
> また、そのような機種等をもし御社のほうでご存知でしたらご教示ください。
>
>

> http://doc.qt.io/qt-5/embedded-linux.html#eglfsにかかれているそれ以外の方式(EGLFS, LinuxFB, DirectFB, Wayland)ではそれが可能なのでしょうか?
> また、そのような機種等をもし御社のほうでご存知でしたらご教示ください。

X11はそのままウィンドウが出せるはずです。恐らくA840でもQt5のコンフィグを変えて
backendをX11にしてビルドすることはできると思いますが、前述のとおりEGLFS以外の
実装はGPUコアを使わないので、1つしかないCPUに描画処理が割かれます。

他の機種でいえば、Armadill-X1でQtを使うときは、debianの標準のQt5をそのまま使って
X11に描画するので、特にPCと変らずウィンドウも出るはずです。これも同様にCPUで
描画処理します。

Armadill-X1は、Qtが普通に使えて840と同様な開発環境にて動作確認ができるのでしょうか?
同様な開発環境であれば、LCD付の評価機等を御社から借りて上記動作を確認してみたいのですがそのようなことは可能ですか

また、
X1がそういう環境にない場合は、840上でQtのコンフィグをかえてバックエンドをX11にしてビルとして確認するやり方をご教示ください。

以上よろしくお願いします。

> X11はそのままウィンドウが出せるはずです。恐らくA840でもQt5のコンフィグを変えて
> backendをX11にしてビルドすることはできると思いますが、前述のとおりEGLFS以外の
> 実装はGPUコアを使わないので、1つしかないCPUに描画処理が割かれます。
>
> 他の機種でいえば、Armadill-X1でQtを使うときは、debianの標準のQt5をそのまま使って
> X11に描画するので、特にPCと変らずウィンドウも出るはずです。これも同様にCPUで
> 描画処理します。

安藤です。

Armadillo-X1では、PC Linuxと同様にネイティブでGUIアプリケーションの開発ができます。
以下のブログ記事では、Armadillo-X1上でWindow Managerを動作させています。

Armadillo-X1でGUIを使用する方法
https://users.atmark-techno.com/blog/6938/2861

Qtでの動作検証は特に実施してはいませんが、apt-getでdebianパッケージをインストールできるので
検証や開発は比較的容易かと思います。