ТачскринПервоначально погрепал journalctl -b | grep silead
Спойлер
дек 13 08:54:36 irbis-celeron-cpu kernel: silead_ts i2c-MSSL1680:00: Direct firmware load for silead/mssl1680.fw failed with error -2
дек 13 08:54:36 irbis-celeron-cpu kernel: silead_ts: probe of i2c-MSSL1680:00 failed with error -2
Увидел что требуется фирмварь mssl1680.fw
Скачал
драйвера виндовые на TW-100. Извлёк отуда каталог sileadtouch.inf_amd64
Там оказался файл SileadTouch.sys
Выкачал perl-скрипт
scanwindrvЗатем положил всё в один каталог и выполнил команду:
$ perl scanwindrv SileadTouch.sys
Found possible candidate at offset 0x00000255
Not a firmware, ignoring
Found possible candidate at offset 0x0000d860
Writing firmware to firmware_00.fw, size = 38544 bytes
Получил файл firmware_00.fw
Переименовал в mssl1680.fw и разместил в каталог /lib/firmware/silead
После перезагрузки тач заработал, но перемещался только в верхней левой четверти экрана.
Оказалось его надо калибровать.
Для этого измеряем размеры тачскрина в миллиметрах, у меня вышло 217x136.
Запускаем evtest из одноименного пакета и смотрим event у silead_ts:
Спойлер
# evtest
No device specified, trying to scan all of /dev/input/event*
Available devices:
/dev/input/event0: AT Translated Set 2 keyboard
/dev/input/event1: HID 1018:1006
/dev/input/event2: HID 1018:1006 Mouse
/dev/input/event3: HID 1018:1006 Consumer Control
/dev/input/event4: HID 1018:1006 System Control
/dev/input/event5: Lid Switch
/dev/input/event6: Power Button
/dev/input/event7: Intel HID events
/dev/input/event8: Intel HID 5 button array
/dev/input/event9: Video Bus
/dev/input/event10: USB 2.0 Camera: USB Camera
/dev/input/event11: USB 2.0 Camera: USB Camera
/dev/input/event12: PC Speaker
/dev/input/event13: silead_ts
/dev/input/event14: HDA Intel PCH Mic
/dev/input/event15: HDA Intel PCH Headphone
/dev/input/event16: HDA Intel PCH HDMI/DP,pcm=3
/dev/input/event17: HDA Intel PCH HDMI/DP,pcm=7
/dev/input/event18: HDA Intel PCH HDMI/DP,pcm=8
/dev/input/event19: HDA Intel PCH HDMI/DP,pcm=9
/dev/input/event20: HDA Intel PCH HDMI/DP,pcm=10
Выполняем команду:
# touchpad-edge-detector 217x135 /dev/input/event13
Получаем вывод (водим по экрану и выявляем крайние положения осей тачскрина, по окончанию я нажимал Ctrl+C, уж не знаю насколько это правильно):
Спойлер
# touchpad-edge-detector 217x135 /dev/input/event13
Touchpad silead_ts on /dev/input/event13
Move one finger around the touchpad to detect the actual edges
Kernel says: x [0..4095], y [0..4095]
Touchpad sends: x [3..1913], y [14..1270] /\
^C
Touchpad has no resolution, size unknown
User-specified touchpad size: 217x135mm
Calculated ranges: 1910/1256
Suggested udev rule:
# <Laptop model description goes here>
evdev:name:silead_ts:dmi:bvnAmericanMegatrendsInc.:bvrV3.0.3_P31S0M41L16T2P0F0G1C0_FixedBrdID8:bd08/13/2020:br0.3:efr1.0:svnIRBIS:pnTW100:pvrDefaultstring:rvnIRBIS:rnA8811_366B_V1.0:rvrDefaultstring:cvnIRBIS:ct32:cvrDefaultstring:*
EVDEV_ABS_00=3:1913:9
EVDEV_ABS_01=14:1270:9
EVDEV_ABS_35=3:1913:9
EVDEV_ABS_36=14:1270:9
Затем добавляем полученный от touchpad-edge-detector текст в файл /lib/udev/hwdb.d/60-evdev.hwdb сохраняя алфавитный порядок
#########################################
# Irbis
#########################################
# Irbis TW-100
evdev:name:silead_ts:dmi:bvnAmericanMegatrendsInc.:bvrV3.0.3_P31S0M41L16T2P0F0G1C0_FixedBrdID8:bd08/13/2020:br0.3:efr1.0:svnIRBIS:pnTW100:pvrDefaultstring:rvnIRBIS:rnA8811_366B_V1.0:rvrDefaultstring:cvnIRBIS:ct32:cvrDefaultstring:*
EVDEV_ABS_00=3:1913:9
EVDEV_ABS_01=14:1270:9
EVDEV_ABS_35=3:1913:9
EVDEV_ABS_36=14:1270:9
Выполняем команды:
systemd-hwdb update
udevadm control --reload-rules
udevadm trigger /dev/input/event13
После перезагрузки тач стал бегать как положено по всей области экрана.