tomi_vhi
2023年6月21日 16時23分
渡邊です。
現在、Armadillo-460 で画面表示をさせようと色々試していっています。
そこで、下記の png_display の記事を参考に、画面表示を試みてみましたがエラーとなります。
https://armadillo.atmark-techno.com/blog/615/1748
結果は下記の通り。
[root@armadillo460-0 (ttymxc1) ~]# DISPLAY=:0 ./png_display
./png_display: error while loading shared libraries: libgtk-x11-2.0.so.0: cannot open shared object file: No such file or directory
GTK のライブラリの問題のように思えますが、どのようにすればよいでしょうか。(何らかの設定変更が必要?)
また、romfs.img.gz で書いたとき、この png_display を自動起動させるようなことは可能でしょうか?
下記の記事が近いような気がしましたが、rc.local のファイルが見当たりません。
(440のフォルダには /etc/default/ に rc.local があり、中を見ると Starting functester と書かれている)
https://armadillo.atmark-techno.com/forum/armadillo/1602
よろしくお願いいたします。
ファイル | ファイルの説明 |
---|---|
result.png |
コメント
tomi_vhi
渡邊です。
ご回答ありがとうございます。
今まで、第7章 ビルドで書かれている通り、[....dist]$ make コマンドで romfs .img.gz と linux.bin.gz を作っており、
この場合、romfs フォルダが書き変わってしまうのは挙動でわかっていました。
make romfs → make image で、png_display がpng_display が /usr/bin/ フォルダに入りました。
png_display が /usr/bin/ フォルダに入ったので、DISPLAY=:0 ./png_display を実行したのですが、下記のように表示されます。
何が原因となっているのでしょうか?
(/tmp/フォルダに a440_480x272.png は予め入っています)
(png_display:1335): Gtk-WARNING **: cannot open display: :0
[....dist]$ echo $DISPLAY
(空白)
よろしくお願いいたします。
ファイル | ファイルの説明 |
---|---|
png_display.png |
tomi_vhi
export DISPLAY=:0 とすると echo $DISPLAY は :0 となりますが、状況は変わりません。
ファイル | ファイルの説明 |
---|---|
png_display.png |
at_mizo
tomi_vhi
渡邊です。
> atmar-distのソースに含まれる、以下のArmadillo-440用の起動スクリプトを参考に、Xfbdevを起動してみてください。
> vendors/AtmarkTechno/Armadillo-440/etc/init.d/xfbdev
vendors/AtmarkTechno/Armadillo-440/etc/init.d/xfbdev の xfbdev を
vendors/AtmarkTechno/Armadillo-460/etc/init.d/ に入れてみましたが、状況は変わりません。
(romfs/etc/init.d/ 内の xfbdev は変更されていました)
とりあえず xfbdev は元の状態に戻しています。
追伸
10分すると、LCDの表示が消えてしまうのも何か関係していますでしょうか?
LCDはずっと表示するようにしたいです。
よろしくお願いいたします。
at_mizo
溝渕です。
> vendors/AtmarkTechno/Armadillo-440/etc/init.d/xfbdev の xfbdev を
> vendors/AtmarkTechno/Armadillo-460/etc/init.d/ に入れてみましたが、状況は変わりません。
> (romfs/etc/init.d/ 内の xfbdev は変更されていました)
"romfs/etc/init.d/"内にファイルを置いただけでは、起動時に自動実行されません。例えば、"romfs/etc/rc.d/S80xfbdev"のようにシンボリックリンクを作成してください。
実行されたかどうかの確認は、起動後に"ps axu"コマンド等で、xfbdevが起動しているかどうかを確認してみてください。
> 10分すると、LCDの表示が消えてしまうのも何か関係していますでしょうか?
> LCDはずっと表示するようにしたいです。
以下のFAQを参考にしてみてください。
tomi_vhi
渡邊です。
romfs/etc/rc.d/S80xfbdev (S80xfbdev は etc/init.d/xfbdev のシンボリックリンク) を入れてみました。
"ps axu"コマンドで見ましたが、xfbdev が起動しているように思えません。
添付は"ps axu"コマンドを実行してみた結果です。
この後はどのようにしたらよいでしょうか?
よろしくお願いいたします。
ファイル | ファイルの説明 |
---|---|
TeraTerm.jpg |
at_mizo
tomi_vhi
渡邊です。
>romfs/etc/init.d/xfbdev
>に実行権限は付与していますか?
緑色になっているので、付与されているということでしょうか? (添付ファイル参照)
よろしくお願いいたします。
ファイル | ファイルの説明 |
---|---|
xfbdev.jpg |
at_mizo
tomi_vhi
渡邊です。
添付は、それぞれのコマンドの結果です。
xfbdev~ がありますが、これはPCの romfs/etc/init.d/ には存在しません。何か影響しますでしょうか?
xfbdev は Armadilo-440 からコピー(ファイルの日付は 2019.12.26)しただけなので、チルダなしのものが正しいと思います。
よろしくお願いいたします。
ファイル | ファイルの説明 |
---|---|
xfbdev.jpg |
at_mizo
溝渕です。
> xfbdev~ がありますが、これはPCの romfs/etc/init.d/ には存在しません。何か影響しますでしょうか?
> xfbdev は Armadilo-440 からコピー(ファイルの日付は 2019.12.26)しただけなので、チルダなしのものが正しいと思います。
チルダありの方はバックアップファイルだと思います。動作には影響しないと思います。
手動で"/etc/init.d/xfbdev"を実行すると、Xfbdevが起動できているように見えます。"ps axu"コマンドでプロセスが存在するか確認してみてください。
tomi_vhi
渡邊です。
./xfbdev で Starting Xfbdev: done となりますが、"ps axu"コマンドでプロセスが存在しないように見えます。
(添付ファイル参照)
ファイル | ファイルの説明 |
---|---|
console.jpg |
at_mizo
tomi_vhi
渡邊です。
下記のように表示されます。
/usr/bin/ のディレクトリに Xfbdev が入っていないのですが、それが影響しますでしょうか?
(Xfbdev は /etc/init.d/ のディレクトリに入っていて、そのシンボリックリンクが /etc/rc.d/ に S80xfbdev の名前で入っている状態)
[root@armadillo460-0 (ttymxc1) /usr/bin]# /usr/bin/Xfbdev -retro -s 0 -mouse tslib,,device=/dev/input/event1 -keybd evdev,,device=/dev/input/event0 -ash: /usr/bin/Xfbdev: not found
at_mizo
溝渕です。
> /usr/bin/ のディレクトリに Xfbdev が入っていないのですが、それが影響しますでしょうか?
そうですね。これが原因です。
ユーザーランドのコンフィギュレーション(Customize Vendor/User Settings)で、以下を有効化してください。
CONFIG_USER_XSERVER_KDRIVE
CONFIG_USER_XSERVER_1_4_2
> (Xfbdev は /etc/init.d/ のディレクトリに入っていて、そのシンボリックリンクが /etc/rc.d/ に S80xfbdev の名前で入っている状態)
"/usr/bin/Xfbdev"は、KDriveのバイナリです。
"/etc/init.d/xfbdev"は、"/usr/bin/Xfbdev"のラッパースクリプトです。
"/etc/rc.d/S80xfbdev"は、"/etc/init.d/xfbdev"を起動時に自動実行する為のシンボリックリンクです。
tomi_vhi
渡邊です。
添付のこの部分の設定のことでしょうか?
これを設定したところ /usr/bin/ のディレクトリに Xfbdev が入りました。
ファイル | ファイルの説明 |
---|---|
KDrive.jpg |
at_mizo
tomi_vhi
渡邊です。
Armadillo-460に書き込みが完了し、/usr/bin/ ディレクトリに Xfbdev が入っていることを確認しました。
ps axu コマンドをしてみましたが、まだ、プロセスには表示されていないように思えます。
下記を実行すると、添付のような Fatal server error: が出ます。
[root@armadillo460-0 (ttymxc1) ~]# /usr/bin/Xfbdev -retro -s 0 -mouse tslib,,device=/dev/input/event1 -keybd evdev,,device=/dev/input/event0
ファイル | ファイルの説明 |
---|---|
console.jpg |
at_mizo
tomi_vhi
渡邊です。
Armadillo-440 の Xfbdev を使っていたので、元々 Armadillo-460 にあった Xfbdev にもどして、
sh -x /etc/init.d/xfbdev を実行させると、中央にバツ印の画面が出るようになりました。(添付ファイル)
この状態で ps axu をすると、プロセスに出てきますが、スタートアップした状態?では起動していないようです。
[root@armadillo460-0 (ttymxc1) ~]# ps axu PID Uid VmSize Stat Command 1 root 680 S init ・・・ 1311 root 824 S -ash 1335 root 1840 S /usr/bin/Xfbdev -s 0 -mouse tslib,,device=/dev/input/ 1350 root 752 R ps axu
スタートアップした状態で起動しない原因は、何が考えられるでしょうか?
ファイル | ファイルの説明 |
---|---|
lcd.jpg |
at_mizo
tomi_vhi
tomi_vhi
渡邊です
無事 png_display (480x272) の画面を出すことができました。
(LCDは 800x600 の解像度なので、左上に 480x272 の画像が表示)
ありがとうございました。
ファイル | ファイルの説明 |
---|---|
png_display.jpg |
at_mizo
at_mizo
2023年6月28日 15時05分
溝渕です。
> 結果は下記の通り。
> [root@armadillo460-0 (ttymxc1) ~]# DISPLAY=:0 ./png_display
> ./png_display: error while loading shared libraries: libgtk-x11-2.0.so.0: cannot open shared object file: No such file or directory
>
> GTK のライブラリの問題のように思えますが、どのようにすればよいでしょうか。(何らかの設定変更が必要?)
該当記事[2]は、Armadillo-440の標準イメージを対象としたものです。Armadillo-460のイメージにはXアプリケーション(functester)が含まれておらず、付随するライブラリもインストールされません。
以下、png_displayの動作環境を構築する手順を説明します。
まずは、ソフトウェアマニュアル[1]を参照して出荷イメージと同じイメージを作成してください。
次に、該当記事で紹介されているアプリケーション(png_display)をビルドしてください。
最後に、アプリケーションをビルドしたatmark-dist-[version]/romfs/usr/bin/にコピーして、"make romfs"コマンドを実行します。実際の手順は、こちら[3]が参考になるかと思います。これで、アプリケーションが依存するライブラリを含んだユーザーランドイメージができあがります。
このユーザーランドイメージをArmadillo-640に書き込むとアプリケーションが実行できるようになっていると思います。
[1]: https://manual.atmark-techno.com/armadillo-4x0/armadillo-400_series_sof…
[2]: https://armadillo.atmark-techno.com/blog/615/1748
[3]: https://armadillo.atmark-techno.com/blog/615/996