触摸屏校准不适用于 Egalax 驱动程序

触摸屏校准不适用于 Egalax 驱动程序

我已经在 Ubuntu 机器 (14.04 LTS) 上安装了 egalax 驱动程序。触摸工作正常。但校准不起作用。

当我按下Ctrl+时C,它会选择 eGalaxTouch 虚拟设备进行单一校准,并且校准屏幕会打开,但无法成功执行校准。

Xorg 日志显示除以零错误

该机器检测到三个(多个)eGalax 设备。

当检测到多个设备时,有什么想法可以解决此问题吗?

xinput -list showing as below



root@50:~# xinput -list
⎡ Virtual core pointer                        id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              id=4    [slave  pointer  (2)]
⎜   ↳ eGalaxTouch Virtual Device for Single   id=13    [slave  pointer  (2)]
    ↳ eGalax Inc. USB TouchController         id=9     [slave  pointer  (2)]
|   ↳ eGalax Inc. USB TouchController Pen     id=8     [slave  pointer  (2)]|      
⎣ Virtual core keyboard                        id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard              id=5    [slave  keyboard (3)]
    ↳ CHICONY USB Keyboard                     id=8    [slave  keyboard (3)]
    ↳ Power Button                             id=7    [slave  keyboard (3)]
    ↳ Power Button                             id=6    [slave  keyboard (3)]



root@50:~# xinput -list-props 13
Device 'eGalaxTouch Virtual Device for Single':
        Device Enabled (114):   0

root@50:~# xinput -list-props 9
Device 'eGalax Inc. USB TouchController':
        Device Enabled (114):   0

root@50:~# xinput -list-props 8
Device 'eGalax Inc. USB TouchController Pen':
        Device Enabled (114):   0

答案1

我花了几天时间才找到问题所在,我想很多其他人也遇到了同样的问题。

我找到了解决方案以及 Libreelec + Kodi + eGalax 触摸屏无法校准的根本原因(轴被交换,Kodi 中的触摸屏校准工具(5 点校准)不起作用)。原因是ts_env.sh-sample并且ts_env.sh由此得出的命令有错误:它尝试匹配设备标识符,但至少在我的情况下,命令 evtest 显示两个相同的 eGalax 设备,只有一个设备后面有“pen”字样:

eGalax Inc. USB TouchController Pen
eGalax Inc. USB TouchController

脚本检测在完全匹配时停止,不幸的是,完全匹配后面带有“Pen”的脚本总是列在最前面。这就是为什么 Kodi 中的“触摸屏”应用程序无法工作,并且光标 x 轴和 y 轴对于 eGalax 触摸屏是反转的,无法校准。

解决方案:在行ts_env.sh-sample

TSLIB_TSDEVICE=$(echo 999 | evtest 2>&1 >/dev/null | awk -F':' -v TS_NAME="$TOUCHSCREEN_NAME" '$0 ~ TS_NAME {print $1; exit}')

需要通过在$后面添加-符号来进行修改TOUCHSCREEN_NAME,如下所示:

TSLIB_TSDEVICE=$(echo 999 | evtest 2>&1 >/dev/null | awk -F':' -v TS_NAME="$TOUCHSCREEN_NAME$" '$0 ~ TS_NAME {print $1; exit}')

现在脚本只会触发完全匹配(并且不触发后面的任何内容,例如“Pen”)。

对于那些遇到同样问题并发现此问题描述的人,我也会在这里指导您找到完整的解决方案,因为互联网上似乎没有人提供参考。

要通过 ssh 进入你的 libreelec/Kodi 设置:从同一网络上的计算机打开 Linux 控制台并输入

ssh root@YOURIP

将会询问密码,请将其libreelec 替换YOURIP为 libreelec 机器的实际 IP 地址,您可以登录 FRITZ!Box 或路由器来找到它

确保在 Kodi 设置中启用了 ssh,同时确保未(!!)选中“禁用 ssh 密码”。

一旦您通过 ssh 登录:

文件位置:/storage/.kodi/userdata/addon_data/service.touchscreen/ts_env.sh-sample

您可以使用 nano 编辑该文件:

nano /storage/.kodi/userdata/addon_data/service.touchscreen/ts_env.sh-sample

这里你需要添加上面描述的 $ 符号,然后按 ctrl-o 并回车保存,再按 ctrl-x 退出 nano

然后按照这些说明 https://forum.libreelec.tv/thread/15466-touchscreen-intel-x64-problem/#codeLine_41_com_woltlab_wbb_post_117185_8cecd7 一切都很顺利。

基本上,链接描述的是将示例文件复制到正确的路径并重命名它们(在使用$我上面描述的添加的-sign 进行修改后执行此操作):

cp /storage/.kodi/userdata/addon_data/service.touchscreen/ts_env.sh-sample /storage/.kodi/userdata/addon_data/service.touchscreen/ts_env.sh
cp /storage/.kodi/userdata/addon_data/service.touchscreen/ts.conf-generic /storage/.kodi/userdata/addon_data/service.touchscreen/ts.conf
cp /storage/.kodi/userdata/addon_data/service.touchscreen/ts.conf-generic /storage/.kodi/addons/service.touchscreen/ts.conf
cp /storage/.kodi/userdata/addon_data/service.touchscreen/ts_env.sh /storage/.kodi/addons/service.touchscreen/ts_env.sh

现在你打电话

ts_env.sh

(没有任何路径)

ts_env.sh-sample这基本上是修改后的文件的副本

然后你输入

reboot

重启后,Kodi 中的触摸屏应用程序将能够进行 5 点校准,因为它现在使用正确的设备。

一些 eGalax 触摸屏可能没有这个问题,但由于我花了几天时间搜索所有论坛,所以我允许自己在这里发布完整的解决方案。

相关内容