sankyo_fukuzawa
2024年1月30日 10時14分
お世話になります、福澤と申します。
現在、Armadillo-IoT G4でQtを使用し、タッチパネルで操作するアプリケーションを作成していますが、タッチパネル操作が反応していません。
使用しているタッチパネルは、Hsintek社 10.1インチタッチパネル「CH-L101-2HDVSB-T」、接続形式はHDMIとUSBとなります。
HDMIを通してタッチパネルへのアプリ画面表示はできております。
USBにてArmadilloとタッチパネルを接続すると、/dev/input/に「event2」、「event3」、「event4」が追加されます。
以下のフォーラムを参考にして、USB Touchscreen Driverをカーネルに適用しましたが、タッチパネル操作はできませんでした。
https://armadillo.atmark-techno.com/forum/armadillo/15679
また、上記フォーラム適用後、evtestコマンドによるパネル操作のイベントログを確認したところ、
「event3」は以下のような座標イベントとTOUCHイベントが出力されましたが、
「event2」と「event4」は、パネル操作によるログが出力されませんでした。
root@37a842e04f2e:/# evtest /dev/input/event3 Input driver version is 1.0.1 Input device ID: bus 0x3 vendor 0xeef product 0x1 version 0x210 Input device name: "eGalax Inc. USB TouchController Stylus" Supported events: Event type 0 (EV_SYN) Event type 1 (EV_KEY) Event code 320 (BTN_TOOL_PEN) Event code 330 (BTN_TOUCH) Event code 331 (BTN_STYLUS) Event type 3 (EV_ABS) Event code 0 (ABS_X) Value 0 Min 0 Max 4095 Event code 1 (ABS_Y) Value 0 Min 0 Max 4095 Event type 4 (EV_MSC) Event code 4 (MSC_SCAN) Properties: Testing ... (interrupt to exit) Event: time 110.461848, type 4 (EV_MSC), code 4 (MSC_SCAN), value d0042 Event: time 110.461848, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1 Event: time 110.461848, type 1 (EV_KEY), code 320 (BTN_TOOL_PEN), value 1 Event: time 110.461848, type 3 (EV_ABS), code 0 (ABS_X), value 1978 Event: time 110.461848, type 3 (EV_ABS), code 1 (ABS_Y), value 2158 Event: time 110.461848, -------------- SYN_REPORT ------------ Event: time 110.473848, type 3 (EV_ABS), code 1 (ABS_Y), value 2156 Event: time 110.473848, -------------- SYN_REPORT ------------ Event: time 110.477846, type 3 (EV_ABS), code 1 (ABS_Y), value 2154 Event: time 110.477846, -------------- SYN_REPORT ------------ Event: time 110.489845, type 3 (EV_ABS), code 0 (ABS_X), value 1976 Event: time 110.489845, -------------- SYN_REPORT ------------ Event: time 110.493842, type 3 (EV_ABS), code 1 (ABS_Y), value 2156 Event: time 110.493842, -------------- SYN_REPORT ------------ Event: time 110.549813, type 4 (EV_MSC), code 4 (MSC_SCAN), value d0042 Event: time 110.549813, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0 Event: time 110.549813, -------------- SYN_REPORT ------------
タッチパネルを有効とするために、他にどのような設定が必要となりますか。
以上、よろしくお願いいたします。
コメント
sankyo_fukuzawa
お世話になっております、福澤です。
> 佐藤です。
>
> 確認させていただきたいことがあります。
> 以下を実行すると、指で絵を描けるアプリが起動すると思います。こちらのアプリはタッチに反応しますでしょうか。
>
> root@37a842e04f2e:/# apt install -y qtbase5-examples > root@37a842e04f2e:/# /usr/lib/aarch64-linux-gnu/qt5/examples/widgets/touch/fingerpaint/fingerpaint >
上記コマンドを実行したところ、タッチパネルにfingerpaintの画面が表示されましたが、画面タッチによる描画はできませんでした。
以上、よろしくお願いいたします。
at_makoto.sato
sankyo_fukuzawa
お世話になっております、福澤です。
> 佐藤です。
>
> 確認ありがとうございます。
> コンテナ起動用のコンフィグファイルに "add_hotplugs input" の記載はありますでしょうか?
現在、手動でコンテナを立ち上げて操作しています。起動コマンドは以下の通りです。
また、コンテナ起動時はArmadilloとタッチパネルをUSB接続した状態で立ち上げています。
podman run -itd \ --name=at_debian_container \ --cap-add=NET_ADMIN \ --volume=/dev:/dev \ --volume=/sys:/sys \ --privileged \ -p 22:22 \ --cap-add=SYS_RAWIO \ --cap-add=SYS_ADMIN \ --cap-add=NET_RAW \ --cap-add=SYS_TIME \ localhost/at_debian_image:v0.0.7 /bin/bash
コンテナ起動後、Qtによる画面表示を行うために以下コマンドを実行してから画面表示のアプリケーションを起動していますが、タッチパネル操作ができていない状態です。
export QT_QPA_FB_NO_LIBINPUT=1 export QT_QPA_PLATFORM=linuxfb
以上、よろしくお願いいたします。
sankyo_fukuzawa
お世話になっております、福澤です。
コンテナをconfigファイルによる自動起動で立ち上げた場合の動作も確認しましたが、タッチパネル操作ができていません。
以下、configファイル内容です。
image="localhost/at_debian_image:v0.0.7" set_autostart yes add_ports 22:22 add_volumes /sys:/sys /dev:/dev add_hotplugs fb input rtc sd add_args --cap-add=NET_RAW --cap-add=SYS_ADMIN --cap-add=SYS_TIME --cap-add=SYS_RAWIO --privileged set_command /root/start.sh
コンテナ起動後、start.shにより画面表示アプリケーションが起動するようになっています。
start.shの内容は以下の通りです。
#!/bin/sh export QT_QPA_FB_NO_LIBINPUT=1 export QT_QPA_PLATFORM=linuxfb cd /tmp exec python3 main.py
以上、よろしくお願いいたします。
at_makoto.sato
sankyo_fukuzawa
お世話になっております、福澤です。
> 佐藤です。
>
> configファイルによるコンテナ起動で、
> fingerpaint を実行した場合はどうでしょうか。
コンテナ起動後のアプリケーション起動.shファイルを以下のように変更し、自動起動でfingerpaintを起動しました。
#!/bin/sh export QT_QPA_FB_NO_LIBINPUT=1 export QT_QPA_PLATFORM=linuxfb exec /usr/lib/aarch64-linux-gnu/qt5/examples/widgets/touch/fingerpaint/fingerpaint
この結果、タッチパネルにfingerpaintの画面が表示されましたが、タッチパネルによる操作はできませんでした。
以上、よろしくお願いいたします。
at_makoto.sato
sankyo_fukuzawa
お世話になっております、福澤です。
> 佐藤です。
>
> QT_QPA_FB_NO_LIBINPUT を設定しないようにしても結果は同じでしょうか。
> 加えて podman logs を実行したらなにか表示されますでしょうか。
>
> armadillo:~# podman logs <コンテナ名> >
コンテナ起動時のQT_QPA_FB_NO_LIBINPUT設定を無効にしたところ、タッチパネル操作が可能となりました。
QT_QPA_FB_NO_LIBINPUT設定を外すことによって、どのような変更が行われているのでしょうか。
また、podman logは何も出力されませんでした。
今回タッチパネルを使用するにあたって上記以外に、以下2点の変更を行いましたが、これらは今回のタッチパネル操作に必要な変更だったのでしょうか。
不要なら設定を以前の状態に戻したいと考えております。
・kernelのmenuconfigにて「TOUCHSCREEN_USB_COMPOSITE」を有効
・以下内容のルール「/etc/udev/rules.d/91-libinput-egalax-local.rules」を追加
ACTION=="add|change", KERNEL=="event[0-9]*", ENV{ID_VENDOR_ID}=="0eef", \ ENV{ID_MODEL_ID}=="0001", ENV{ID_INPUT_TABLET}="", ENV{ID_INPUT_TOUCHSCREEN}="1"
(参考:https://armadillo.atmark-techno.com/forum/armadillo/15679)
以上、よろしくお願いいたします。
at_makoto.sato
佐藤です。
> コンテナ起動時のQT_QPA_FB_NO_LIBINPUT設定を無効にしたところ、タッチパネル操作が可能となりました。
動いたようでこちらも安心しました。
> QT_QPA_FB_NO_LIBINPUT設定を外すことによって、どのような変更が行われているのでしょうか。
udevルールによってlibinputが使われるようになったのに、NO_LIBINPUTがそれを邪魔していたのではないかと思います。
> 今回タッチパネルを使用するにあたって上記以外に、以下2点の変更を行いましたが、これらは今回のタッチパネル操作に必要な変更だったのでしょうか。
> 不要なら設定を以前の状態に戻したいと考えております。
> ・kernelのmenuconfigにて「TOUCHSCREEN_USB_COMPOSITE」を有効
> ・以下内容のルール「/etc/udev/rules.d/91-libinput-egalax-local.rules」を追加
もしかしたら、外しても動くかもしれませんが、あったほうが無難かと思います。
sankyo_fukuzawa
お世話になっております、福澤です。
> > QT_QPA_FB_NO_LIBINPUT設定を外すことによって、どのような変更が行われているのでしょうか。
> udevルールによってlibinputが使われるようになったのに、NO_LIBINPUTがそれを邪魔していたのではないかと思います。
ご回答ありがとうございます、QT_QPA_FB_NO_LIBINPUT理解いたしました。
> > 今回タッチパネルを使用するにあたって上記以外に、以下2点の変更を行いましたが、これらは今回のタッチパネル操作に必要な変更だったのでしょうか。
> > 不要なら設定を以前の状態に戻したいと考えております。
> > ・kernelのmenuconfigにて「TOUCHSCREEN_USB_COMPOSITE」を有効
> > ・以下内容のルール「/etc/udev/rules.d/91-libinput-egalax-local.rules」を追加
> もしかしたら、外しても動くかもしれませんが、あったほうが無難かと思います。
承知いたしました、上記設定は残しておきます。
これで一通りタッチパネル操作が確認できました。お世話になりました、ありがとうございます。
at_makoto.sato
2024年1月30日 16時03分
佐藤です。
確認させていただきたいことがあります。
以下を実行すると、指で絵を描けるアプリが起動すると思います。こちらのアプリはタッチに反応しますでしょうか。