我已经在 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 触摸屏可能没有这个问题,但由于我花了几天时间搜索所有论坛,所以我允许自己在这里发布完整的解决方案。