Как отличить два USB-устройства с сенсорным экраном с одинаковым pid/vid в Linux

Как отличить два USB-устройства с сенсорным экраном с одинаковым pid/vid в Linux У меня есть два одинаковых USB-устройства с сенсорным экраном. Я хочу использовать их без ошибок при запуске компьютера. Поэтому мне нужно использовать «xinput map-to-output», чтобы различать их. Тем не менее, они почти одинаковы. У них один и тот же PID/VID, один и тот же производитель, один и тот же производитель и одни и те же имена.

Сопоставление Xinput-to-output .XID иногда меняется, и оболочка не всегда может быть полезной. Я не знаю, как это решить при обмене XID. Любые предложения о том, как решить эту проблему, приветствуются.


person C.Roy    schedule 01.06.2017    source источник


Ответы (1)


Извините за краткий ответ. Я постараюсь найти время, чтобы обновить его с некоторыми комментариями о том, что я на самом деле делаю.

У меня была именно эта проблема сегодня (наткнулся на ваш вопрос при поиске информации).

Вот как я тестировал одно решение.

#!/bin/sh

TOUCH_XINPUT_NAME=ET2494
export DISPLAY=:0

FIRST_ID=$(xinput | grep $TOUCH_XINPUT_NAME | sed -n '1s/.*id=\([0-9]*\).*/\1 /p')
SECOND_ID=$(xinput | grep $TOUCH_XINPUT_NAME | sed -n '2s/.*id=\([0-9]*\).*/\1 /p')

echo First id >> touch-sysfs-node.log
echo $FIRST_ID >> touch-sysfs-node.log
udevadm info -q property -n $(xinput --list-props $FIRST_ID | grep 260 | 
awk '{print substr($4, 2, length($4) - 2);}') | grep ID_PATH= | sed -n 's/ID_PATH=\(.*\)/\1/ ; p' >> touch-sysfs-node.log

echo Second id >> touch-sysfs-node.log
echo $SECOND_ID >> touch-sysfs-node.log
udevadm info -q property -n $(xinput --list-props $SECOND_ID | grep 260 | 
awk '{print substr($4, 2, length($4) - 2);}') | grep ID_PATH= | sed -n 's/ID_PATH=\(.*\)/\1/ ; p' >> touch-sysfs-node.log

echo ----------------------- >> touch-sysfs-node.log
person Jonas Godin    schedule 01.06.2017
comment
благодарю вас. Ваша оболочка помогает мне закончить мою задачу. Теперь я очень счастлив. - person C.Roy; 05.06.2017