Armadilloフォーラム

Armadillo-840 Qt Creatorでの液晶表示について

k.nishijo

2018年3月2日 15時26分

Armadillo-840 製品マニュアル 14.3. Qt Creator の手順に従って「14.3.3. Hello World をデスクトップ上で実行」 まで確認できましたが

14.3.4. Hello World をArmadillo 上で実行が確認できません。

手順に従ってやっていますが、14.3.5. Hello World を拡張ボードのLCD に表示 の設定後もアプリケーション出力画面に

Segmentation fault
リモートアプリケーションは終了コード 139 で終了しました。 と出てしまいます。

ちなみに キットを管理 ー デバイス ー テストでは 以下の表示が出たので正常につながっているかと思います。

ホストに接続中...
Checking kernel version...
Linux 3.4-at22 armv7l

指定されたポートが使用可能かチェック中...
All specified ports are available.

デバイステストは正常に完了しました。

本件の問題点をご教示ください。

コメント

> 14.3.4. Hello World をArmadillo 上で実行が確認できません。
> 手順に従ってやっていますが、14.3.5. Hello World を拡張ボードのLCD に表示 の設定後もアプリケーション出力画面に
> Segmentation fault
> リモートアプリケーションは終了コード 139 で終了しました。 と出てしまいます。

14.3.4.2節に従ってリモートターゲットを設定変更いただいた後、
Armadillo用へのリビルドは実行されましたでしょうか?
-----
本節の構成どおりに作業を行った場合、hello-qtプロジェクトはデスクトップ用にビルドされています。Armadillo用にビルドしなおすために、メニューの「ビルド -> プロジェクト "hello-qt" をリビルド」を選択します。ビルドエラーとならない場合は、「ビルド -> 実行」を選択すると実行されます。
-----
ご確認いただければと思います。

ご指摘の箇所を確認して再度ビルとしてみましたが結果は変わりません。

このエラーの意味をご教示ください。

Segmentation fault
リモートアプリケーションは終了コード 139 で終了しました。
Segmentation fault
リモートアプリケーションは終了コード 139 で終了しました。
Segmentation fault
リモートアプリケーションは終了コード 139 で終了しました。
Segmentation fault
リモートアプリケーションは終了コード 139 で終了しました。
Segmentation fault
リモートアプリケーションは終了コード 139 で終了しました。

> > 14.3.4. Hello World をArmadillo 上で実行が確認できません。
> > 手順に従ってやっていますが、14.3.5. Hello World を拡張ボードのLCD に表示 の設定後もアプリケーション出力画面に
> > Segmentation fault
> > リモートアプリケーションは終了コード 139 で終了しました。 と出てしまいます。

>
> 14.3.4.2節に従ってリモートターゲットを設定変更いただいた後、
> Armadillo用へのリビルドは実行されましたでしょうか?
> -----
> 本節の構成どおりに作業を行った場合、hello-qtプロジェクトはデスクトップ用にビルドされています。Armadillo用にビルドしなおすために、メニューの「ビルド -> プロジェクト "hello-qt" をリビルド」を選択します。ビルドエラーとならない場合は、「ビルド -> 実行」を選択すると実行されます。
> -----
> ご確認いただければと思います。

再起動して、確認してみたところエラーメッセージが下記のように変わりました。
evdevtouch: Using device /dev/input/event0
min X: 0 max X: 799
min Y: 0 max Y: 479
min pressure: 0 max pressure: 0
device name: st1232-touchscreen
Protocol type B (mtdev)
libEGL warning: DRI2: xcb_connect failed
libEGL warning: DRI2: xcb_connect failed
libEGL warning: GLX: failed to load GLX
Could not initialize egl display

EGL error
Aborted
リモートアプリケーションは終了コード 134 で終了しました。

上記メッセージについて、何かわかるようでしたらご教示ください。

> ご指摘の箇所を確認して再度ビルとしてみましたが結果は変わりません。
>
> このエラーの意味をご教示ください。
>
> Segmentation fault
> リモートアプリケーションは終了コード 139 で終了しました。
> Segmentation fault
> リモートアプリケーションは終了コード 139 で終了しました。
> Segmentation fault
> リモートアプリケーションは終了コード 139 で終了しました。
> Segmentation fault
> リモートアプリケーションは終了コード 139 で終了しました。
> Segmentation fault
> リモートアプリケーションは終了コード 139 で終了しました。
>
>
>
> > > 14.3.4. Hello World をArmadillo 上で実行が確認できません。
> > > 手順に従ってやっていますが、14.3.5. Hello World を拡張ボードのLCD に表示 の設定後もアプリケーション出力画面に
> > > Segmentation fault
> > > リモートアプリケーションは終了コード 139 で終了しました。 と出てしまいます。
>
>
>
>
>
>
>
> >
> > 14.3.4.2節に従ってリモートターゲットを設定変更いただいた後、
> > Armadillo用へのリビルドは実行されましたでしょうか?
> > -----
> > 本節の構成どおりに作業を行った場合、hello-qtプロジェクトはデスクトップ用にビルドされています。Armadillo用にビルドしなおすために、メニューの「ビルド -> プロジェクト "hello-qt" をリビルド」を選択します。ビルドエラーとならない場合は、「ビルド -> 実行」を選択すると実行されます。
> > -----
> > ご確認いただければと思います。

QT_QPA_EGLFS_DISPLAY=1を削除してみるとこのエラーに変化するようです。
再度環境変数を追加してみたところ、同様のエラーに戻りました。

> 再起動して、確認してみたところエラーメッセージが下記のように変わりました。
> evdevtouch: Using device /dev/input/event0
> min X: 0 max X: 799
> min Y: 0 max Y: 479
> min pressure: 0 max pressure: 0
> device name: st1232-touchscreen
> Protocol type B (mtdev)
> libEGL warning: DRI2: xcb_connect failed
> libEGL warning: DRI2: xcb_connect failed
> libEGL warning: GLX: failed to load GLX
> Could not initialize egl display
>
> EGL error
> Aborted
> リモートアプリケーションは終了コード 134 で終了しました。
>
> 上記メッセージについて、何かわかるようでしたらご教示ください。
>
>
>
> > ご指摘の箇所を確認して再度ビルとしてみましたが結果は変わりません。
> >
> > このエラーの意味をご教示ください。
> >
> > Segmentation fault
> > リモートアプリケーションは終了コード 139 で終了しました。
> > Segmentation fault
> > リモートアプリケーションは終了コード 139 で終了しました。
> > Segmentation fault
> > リモートアプリケーションは終了コード 139 で終了しました。
> > Segmentation fault
> > リモートアプリケーションは終了コード 139 で終了しました。
> > Segmentation fault
> > リモートアプリケーションは終了コード 139 で終了しました。
> >
> >
> >
> > > > 14.3.4. Hello World をArmadillo 上で実行が確認できません。
> > > > 手順に従ってやっていますが、14.3.5. Hello World を拡張ボードのLCD に表示 の設定後もアプリケーション出力画面に
> > > > Segmentation fault
> > > > リモートアプリケーションは終了コード 139 で終了しました。 と出てしまいます。
> >
> >
> >
> >
> >
> >
> >
> > >
> > > 14.3.4.2節に従ってリモートターゲットを設定変更いただいた後、
> > > Armadillo用へのリビルドは実行されましたでしょうか?
> > > -----
> > > 本節の構成どおりに作業を行った場合、hello-qtプロジェクトはデスクトップ用にビルドされています。Armadillo用にビルドしなおすために、メニューの「ビルド -> プロジェクト "hello-qt" をリビルド」を選択します。ビルドエラーとならない場合は、「ビルド -> 実行」を選択すると実行されます。
> > > -----
> > > ご確認いただければと思います。

先ほどの案内はあまり関係なかったようで、申し訳ありません。
手元の環境で試したところでは製品マニュアルの手順で問題なく動作しましたが、
kernel/userland/ATDEを最新のものにしていただいて再度ご確認いただくことは可能でしょうか?
お手数をおかけしますが、よろしくお願いします。

kernel :linux-a840-v1.20.bin.gz ( v1.20)
userland : romfs-a840-v1.13.img.gz (v1.13)
atde : atde5-i386-20161130.tar.xz (添付のCDに入っていたもの)

上記で再度確認していますが、動作変わりません。
何かわかりましたらよろしくお願いします。

> 先ほどの案内はあまり関係なかったようで、申し訳ありません。
> 手元の環境で試したところでは製品マニュアルの手順で問題なく動作しましたが、
> kernel/userland/ATDEを最新のものにしていただいて再度ご確認いただくことは可能でしょうか?
> お手数をおかけしますが、よろしくお願いします。

当方では、本製品のフラッシュを以前に一度Windows Compact7 に書き換え後、久しぶり動作させるために再度Linuxに入れなおしたのですが、
Linuxで起動時の場合、液晶のほうに何かしら表示のようなものは出ないのでしょうか?

もしかしたら液晶が壊れているのではないかという可能性はないでしょうか?

以上ご回答お願いします。

> kernel :linux-a840-v1.20.bin.gz ( v1.20)
> userland : romfs-a840-v1.13.img.gz (v1.13)
> atde : atde5-i386-20161130.tar.xz (添付のCDに入っていたもの)
>
> 上記で再度確認していますが、動作変わりません。
> 何かわかりましたらよろしくお願いします。
>
>
> > 先ほどの案内はあまり関係なかったようで、申し訳ありません。
> > 手元の環境で試したところでは製品マニュアルの手順で問題なく動作しましたが、
> > kernel/userland/ATDEを最新のものにしていただいて再度ご確認いただくことは可能でしょうか?
> > お手数をおかけしますが、よろしくお願いします。

とりあえずマニュアルの図6.16 LCD にテスト画像を表示するコマンドを入力してみたところ正常に液晶画面にてテストパターンが出力されているようなので液晶が壊れているわけではなさそうです。。。

> 当方では、本製品のフラッシュを以前に一度Windows Compact7 に書き換え後、久しぶり動作させるために再度Linuxに入れなおしたのですが、
> Linuxで起動時の場合、液晶のほうに何かしら表示のようなものは出ないのでしょうか?
>
> もしかしたら液晶が壊れているのではないかという可能性はないでしょうか?
>
> 以上ご回答お願いします。
>
>
>
> > kernel :linux-a840-v1.20.bin.gz ( v1.20)
> > userland : romfs-a840-v1.13.img.gz (v1.13)
> > atde : atde5-i386-20161130.tar.xz (添付のCDに入っていたもの)
> >
> > 上記で再度確認していますが、動作変わりません。
> > 何かわかりましたらよろしくお願いします。
> >
> >
> > > 先ほどの案内はあまり関係なかったようで、申し訳ありません。
> > > 手元の環境で試したところでは製品マニュアルの手順で問題なく動作しましたが、
> > > kernel/userland/ATDEを最新のものにしていただいて再度ご確認いただくことは可能でしょうか?
> > > お手数をおかけしますが、よろしくお願いします。

確認ありがとうございます。

> とりあえずマニュアルの図6.16 LCD にテスト画像を表示するコマンドを入力してみたところ正常に液晶画面にてテストパターンが出力されているようなので液晶が壊れているわけではなさそうです。。。

製品マニュアル6.6.2項の図6.28にありますサンプル動画再生は正常に動作しますでしょうか?

確認したところ以下のエラーメッセージが出力されました。

[root@armadillo840-0 (ttySC2) ~]# gst-launch-1.0 filesrc location=/mnt/big-buck-
bunny-30sec-800x480.mp4 \
> ! qtdemux name=demux0 \
> demux0.audio_0 ! queue ! acmaacdec ! audioresample ! audio/x-raw,rate=48000,ch
annels=2 \
> ! alsasink device=hw:1 \
> demux0.video_0 ! queue ! acmh264dec ! acmfbdevsink device=/dev/fb1
Setting pipeline to PAUSED ...
ERROR: Pipeline doesn't want to pause.
ERROR: from element /GstPipeline:pipeline0/GstAcmH264Dec:acmh264dec0: Resource not found.
Additional debug info:
gstacmh264dec.c(501): gst_acm_h264_dec_open (): /GstPipeline:pipeline0/GstAcmH264Dec:acmh264dec0:
Failed open device (null). (Bad address)
Setting pipeline to NULL ...
Freeing pipeline ...

Failed open device (null). (Bad address)
Setting pipeline to NULL ...
Freeing pipeline ...

> 確認ありがとうございます。
>
> > とりあえずマニュアルの図6.16 LCD にテスト画像を表示するコマンドを入力してみたところ正常に液晶画面にてテストパターンが出力されているようなので液晶が壊れているわけではなさそうです。。。
>
> 製品マニュアル6.6.2項の図6.28にありますサンプル動画再生は正常に動作しますでしょうか?

OpenGLを使うためのファームウェア領域を消していないでしょうか。
Armadilloにログインして下記のコマンドを実行してファイルがあるか
確認してみてください。

ls -l /opt/firmware/sgx/linux/armhf/

正しく存在していれば下記のようにファイルのリストが表示されます。

-rwxr-xr-x    1 sshd     sshd          8268 Jun 29  2015 libEGL.so*
lrwxrwxrwx    1 sshd     sshd             9 Jun 29  2015 libEGL.so.1 -> libEGL.so*
-rwxr-xr-x    1 sshd     sshd        376456 Jun 29  2015 libGLES_CM.so*
-rwxr-xr-x    1 sshd     sshd        326696 Jun 29  2015 libGLESv2.so*
lrwxrwxrwx    1 sshd     sshd            12 Jun 29  2015 libGLESv2.so.2 -> libGLESv2.so*
-rwxr-xr-x    1 sshd     sshd         59504 Jun 29  2015 libIMGegl.so*
-rwxr-xr-x    1 sshd     sshd          6896 Jun 29  2015 libPVRScopeServices.so*
-rwxr-xr-x    1 sshd     sshd        225620 Jun 29  2015 libglslcompiler.so*
-rwxr-xr-x    1 sshd     sshd         22412 Jun 29  2015 libpvr2d.so*
-rwxr-xr-x    1 sshd     sshd         14744 Jun 29  2015 libpvrEWS_WSEGL.so*
-rwxr-xr-x    1 sshd     sshd          6060 Jun 29  2015 libpvrPVR2D_BLITWSEGL.so*
-rwxr-xr-x    1 sshd     sshd          6432 Jun 29  2015 libpvrPVR2D_FLIPWSEGL.so*
-rwxr-xr-x    1 sshd     sshd          8630 Jun 29  2015 libpvrPVR2D_LINUXFBWSEGL.so*
-rwxr-xr-x    1 sshd     sshd         90228 Jun 29  2015 libsrv_init.so*
-rwxr-xr-x    1 sshd     sshd        141772 Jun 29  2015 libsrv_um.so*
-rwxr-xr-x    1 sshd     sshd        761324 Jun 29  2015 libusc.so*
-rwxr-xr-x    1 sshd     sshd          5500 Jun 29  2015 pvrsrvctl*

もし表示されなければ、下記のイメージファイルをファームウェア領域に
書き込んでください。

https://uArmadillo-800シリーズ Firmwareパーティション用イメージファイル
sers.atmark-techno.com/armadillo-800/default-software/license_agreement

ファームウェアパーティションに対応するデバイスファイルは /dev/flash/firmware です。

ご指摘の通りでしたのURLからダウンロードしましたが、
当方Linuxは初心者のためダウンロードしたイメージをどのようにしたら良いかわかりません。
ご教示ください。

> > https://uArmadillo-800シリーズ Firmwareパーティション用イメージファイル
> > sers.atmark-techno.com/armadillo-800/default-software/license_agreement
>
> URLが崩れたので張りなおします。
> Armadillo-800シリーズ Firmwareパーティション用イメージファイル
> https://users.atmark-techno.com/armadillo-800/default-software/license_…
>
>

参照した個所と同様に行ったところ下記の警告メッセージがでて実行できないようです。
netflash: open(/dev/flash/firmware) failed: Permission denied

> > ご指摘の通りでしたのURLからダウンロードしましたが、
> > 当方Linuxは初心者のためダウンロードしたイメージをどのようにしたら良いかわかりません。
> > ご教示ください。
>
> https://users.atmark-techno.com/comment/766#comment-766
> こちらの書き込みを参照してください。
>

参照先の下記のコマンド実行しておりますか。

 echo 0 > /sys/class/mtd/mtd3/ro

> 参照した個所と同様に行ったところ下記の警告メッセージがでて実行できないようです。
> netflash: open(/dev/flash/firmware) failed: Permission denied
>
>
> > > ご指摘の通りでしたのURLからダウンロードしましたが、
> > > 当方Linuxは初心者のためダウンロードしたイメージをどのようにしたら良いかわかりません。
> > > ご教示ください。
> >
> > https://users.atmark-techno.com/comment/766#comment-766
> > こちらの書き込みを参照してください。
> >

もう、一点確認いたします。
フラッシュメモリの書込み権限はセキュリティの都合guestユーザーには付けていません。
必ずrootユーザーでログインして実施してください。

> > 参照した個所と同様に行ったところ下記の警告メッセージがでて実行できないようです。
> > netflash: open(/dev/flash/firmware) failed: Permission denied
> >
> >
> > > > ご指摘の通りでしたのURLからダウンロードしましたが、
> > > > 当方Linuxは初心者のためダウンロードしたイメージをどのようにしたら良いかわかりません。
> > > > ご教示ください。
> > >
> > > https://users.atmark-techno.com/comment/766#comment-766
> > > こちらの書き込みを参照してください。
> > >

展開することができましたが、
6。6。2を 実行しようとしても変わらず下記メッセージが表示されます。

[root@armadillo840-0 (ttySC2) ~]# ls -l /opt/firmware/sgx/linux/armhf/
total 2016
-rwxr-xr-x 1 sshd sshd 8268 Jun 29 2015 libEGL.so*
lrwxrwxrwx 1 sshd sshd 9 Jun 29 2015 libEGL.so.1 -> libEGL.so*
-rwxr-xr-x 1 sshd sshd 376456 Jun 29 2015 libGLES_CM.so*
-rwxr-xr-x 1 sshd sshd 326696 Jun 29 2015 libGLESv2.so*
lrwxrwxrwx 1 sshd sshd 12 Jun 29 2015 libGLESv2.so.2 -> libGLESv2.so*
-rwxr-xr-x 1 sshd sshd 59504 Jun 29 2015 libIMGegl.so*
-rwxr-xr-x 1 sshd sshd 6896 Jun 29 2015 libPVRScopeServices.so*
-rwxr-xr-x 1 sshd sshd 225620 Jun 29 2015 libglslcompiler.so*
-rwxr-xr-x 1 sshd sshd 22412 Jun 29 2015 libpvr2d.so*
-rwxr-xr-x 1 sshd sshd 14744 Jun 29 2015 libpvrEWS_WSEGL.so*
-rwxr-xr-x 1 sshd sshd 6060 Jun 29 2015 libpvrPVR2D_BLITWSEGL.so*
-rwxr-xr-x 1 sshd sshd 6432 Jun 29 2015 libpvrPVR2D_FLIPWSEGL.so*
-rwxr-xr-x 1 sshd sshd 8630 Jun 29 2015 libpvrPVR2D_LINUXFBWSEGL.so*
-rwxr-xr-x 1 sshd sshd 90228 Jun 29 2015 libsrv_init.so*
-rwxr-xr-x 1 sshd sshd 141772 Jun 29 2015 libsrv_um.so*
-rwxr-xr-x 1 sshd sshd 761324 Jun 29 2015 libusc.so*
-rwxr-xr-x 1 sshd sshd 5500 Jun 29 2015 pvrsrvctl*

[root@armadillo840-0 (ttySC2) ~]# gst-launch-1.0 filesrc location=/mnt/big-buck-
bunny-30sec-800x480.mp4 \
> ! qtdemux name=demux0 \
> demux0.audio_0 ! queue ! acmaacdec ! audioresample ! audio/x-raw,rate=48000,ch
annels=2 \
> ! alsasink device=hw:1 \
> demux0.video_0 ! queue ! acmh264dec ! acmfbdevsink device=/dev/fb1
Setting pipeline to PAUSED ...
ERROR: Pipeline doesn't want to pause.
ERROR: from element /GstPipeline:pipeline0/GstAcmH264Dec:acmh264dec0: Resource not found.
Additional debug info:
gstacmh264dec.c(501): gst_acm_h264_dec_open (): /GstPipeline:pipeline0/GstAcmH264Dec:acmh264dec0:
Failed open device (null). (Bad address)
Setting pipeline to NULL ...
Freeing pipeline ...

> 参照した個所と同様に行ったところ下記の警告メッセージがでて実行できないようです。
> netflash: open(/dev/flash/firmware) failed: Permission denied
>
>
> > > ご指摘の通りでしたのURLからダウンロードしましたが、
> > > 当方Linuxは初心者のためダウンロードしたイメージをどのようにしたら良いかわかりません。
> > > ご教示ください。
> >
> > https://users.atmark-techno.com/comment/766#comment-766
> > こちらの書き込みを参照してください。
> >

> 展開することができましたが、
> 6。6。2を 実行しようとしても変わらず下記メッセージが表示されます。

動画の再生はできなくても、とりあえずQtによる表示はできるはずです。

h.264動画がデコードできないのはボード固有のライセンスファイルを消してしまっています。
こちらは再発行必要なため、弊社営業からご連絡いたします。

動画のデコードが必要なくQtだけ使えれば良いのであれば、このまま使えるはずです。

This plugin does not support propagateSizeHints()

上記のメッセージは出力されますが、
とりあえず、Qtの表示はできるようになりました。

> > 展開することができましたが、
> > 6。6。2を 実行しようとしても変わらず下記メッセージが表示されます。
>
> 動画の再生はできなくても、とりあえずQtによる表示はできるはずです。
>

> h.264動画がデコードできないのはボード固有のライセンスファイルを消してしまっています。
> こちらは再発行必要なため、弊社営業からご連絡いたします。
>
> 動画のデコードが必要なくQtだけ使えれば良いのであれば、このまま使えるはずです。