יום שבת, נובמבר 10, 2018

Workaround for ETPS/2 Elantech Touchpad

הTouchpad שלי החליט שהוא לא עובד בקרנל 4.18 .

פלט ה dmesg שלי מכיל את השגיאות הבאות  :

[   10.559725] iTCO_vendor_support: vendor-support=0
[   10.559763] elan_i2c 0-0015: 0-0015 supply vcc not found, using dummy regulator
[   10.578999] elan_i2c 0-0015: failed to get resolution: -71
[   10.579027] elan_i2c: probe of 0-0015 failed with error -71


ניסיתי לעלות עם הארגומנט למודל psmouse  :

cat /etc/modprobe.d/psmouse.conf 
options psmouse elantech_smbus=0 

ניסיתי גם לעלות עם i8042.reset quiet כארגומנט לgrub רק שזה גם לא עבד.

חפירה די ארוכה נתנה לי את התשובה המתאימה, להעביר את הפרוטוקול הנכון ל psmouse.

מה שpsmouse תומך זה :

enum psmouse_type {
 PSMOUSE_NONE,
 PSMOUSE_PS2,
 PSMOUSE_PS2PP,
 PSMOUSE_THINKPS,
 PSMOUSE_GENPS,
 PSMOUSE_IMPS,
 PSMOUSE_IMEX,
 PSMOUSE_SYNAPTICS,
 PSMOUSE_ALPS,
 PSMOUSE_LIFEBOOK,
 PSMOUSE_TRACKPOINT,
 PSMOUSE_TOUCHKIT_PS2,
 PSMOUSE_CORTRON,
 PSMOUSE_HGPK,
 PSMOUSE_ELANTECH,
 PSMOUSE_FSP,
 PSMOUSE_SYNAPTICS_RELATIVE,
 PSMOUSE_CYPRESS,
 PSMOUSE_FOCALTECH,
 PSMOUSE_VMMOUSE,
 PSMOUSE_BYD,
 PSMOUSE_SYNAPTICS_SMBUS,
 PSMOUSE_ELANTECH_SMBUS,
 PSMOUSE_AUTO  /* This one should always be last */
};
המימוש מכיל את האפשרויות (הטקסט מהדוייק שצריך לשלוח):

#ifdef CONFIG_MOUSE_PS2_ELANTECH
 {
  .type  = PSMOUSE_ELANTECH,
  .name  = "ETPS/2",
  .alias  = "elantech",
  .detect  = elantech_detect,
  .init  = elantech_init_ps2,
 },
#endif

ולפי זה שולחים את האפשרות שנבחרה לקובץ המתאים דרך ובא לציון גואל:


[Unit]
Description=Touchpad hack

[Service]
Type=oneshot
ExecStart=sh -c 'echo -n "elantech" > /sys/bus/serio/devices/serio1/protocol'

[Install]
WantedBy=multi-user.target

אין תגובות:

הוסף רשומת תגובה