Το Touchpad περιστασιακά δουλεύει

Καλησπέρα, έχω ένα κινέζικο λάπτοπ με fedora και το touchpad τις περισσότερες φορές δεν δουλεύει. Σε windows δουλεύει πάντα χωρίς προβλήματα. Το πρόβλημα που αντιμετωπίζω το έχουν και άλλοι με παρόμοια λάπτοπ που έχουν για touchpad το HTIX 5288, ανεξάρτητα της διανομής.

Το σύστημα τις περισσότερες φορές δεν το αναγνωρίζει, είναι δηλαδή σαν να μην υπάρχει. Μετά από αρκετές επαννεκινήσεις μπορεί να το διαβάσει και τότε δουλεύει μια χαρά, για παράδειγμα για να μπω στο forum χρειάστηκε να κάνω 9 restart. Κάποιοι λένε ότι κατά το boot εάν πατήσεις κάποιο πλήκτρο του touchpad μπορεί να λύσει το πρόβλημα, εγώ δεν είδα διαφορά. Φυσικά μπορώ να χρησιμποποιήσω και ασύρματο ποντίκι.

Έχω βάλει παρακάτω ένα απόσπασμα που πιστεύω ότι σχετίζεται με το touchpad, από την εντολή:

less /proc/bus/input/devices
I: Bus=0018 Vendor=0911 Product=5288 Version=0100
N: Name="HTIX5288:00 0911:5288 Mouse"
P: Phys=i2c-HTIX5288:00
S: Sysfs=/devices/pci0000:00/0000:00:17.3/i2c_designware.7/i2c-7/i2c-HTIX5288:00/0018:0911:5288.0001/input/input6
U: Uniq=
H: Handlers=mouse0 event3 
B: PROP=0
B: EV=17
B: KEY=30000 0 0 0 0
B: REL=3
B: MSC=10

I: Bus=0018 Vendor=0911 Product=5288 Version=0100
N: Name="HTIX5288:00 0911:5288 Touchpad"
P: Phys=i2c-HTIX5288:00
S: Sysfs=/devices/pci0000:00/0000:00:17.3/i2c_designware.7/i2c-7/i2c-HTIX5288:00/0018:0911:5288.0001/input/input7
U: Uniq=
H: Handlers=mouse1 event4 
B: PROP=5
B: EV=10001b
B: KEY=e420 10000 0 0 0 0
B: ABS=2e0800000000003
B: MSC=20

I: Bus=0018 Vendor=0911 Product=5288 Version=0100
N: Name="HTIX5288:00 0911:5288 UNKNOWN"
P: Phys=i2c-HTIX5288:00
S: Sysfs=/devices/pci0000:00/0000:00:17.3/i2c_designware.7/i2c-7/i2c-HTIX5288:00/0018:0911:5288.0001/input/input8
U: Uniq=
H: Handlers=event5 
B: PROP=0
B: EV=100001

Το παραπάνω το έτρεξα όταν δούλευε. Όταν δεν δουλεύει απλώς δεν υπάρχουν οι παραπάνω γραμμές στο output.

Πληροφοριακά ενημερώνω ότι στο bios υπάρχει μια επιλογή στο chipset για
“ALPS0001 touchpad [disabled]”

Αν το κάνω enabled δεν λύνει το πρόβλημα. Δεν ξέρω αν θα αλλάξει κάτι στο output της παραπάνω εντολής, σε περίπτωση που θα δουλέψει το touchpad.

Edit:
Έχω επισυνάψει την έξοδο της εντολής:

dmesg|grep i2c

Το πρώτο screenshot είναι όταν δούλευε, ενώ το δεύτερο όταν δεν δούλευε.


Ποιον πυρήνα τρέχεις?
Επίσης δώσε το αποτέλεσμα της εντολής :

ls /sys/bus/i2c/devices/ | grep i2c
1 «Μου αρέσει»

Kernel: x86_64 Linux 5.11.13-200.fc33.x86_64

ls /sys/bus/i2c/devices/ | grep i2c
i2c-0
i2c-1
i2c-10
i2c-11
i2c-12
i2c-13
i2c-2
i2c-3
i2c-4
i2c-5
i2c-6
i2c-7
i2c-8
i2c-9
i2c-HTIX5288:00

Ανακάλυψα ότι αν πατήσω κάποιο πλήκτρο του touchpad πριν το grub/systemd τότε θα το διαβάσει. Διαφρορετικά 90% δεν θα δουλέψει.

Αν βγάλεις το module και το ξανα-εισάγεις, δουλεύει? Δηλαδή αν τρέξεις τις 2 παρακάτω εντολές, την μία μετά την άλλη :

sudo rmmod i2c-hid
sudo modprobe i2c-hid
1 «Μου αρέσει»

Ναι 8/10 φορές που το δοκίμασα δούλεψε. Τις 2 φορες που δεν δούλεψε τις ξαναέτρεξα και δούλεψε.

Ωραία, τότε εφάρμοσε την λύση (4η απάντηση), στην σελίδα :
https://ask.fedoraproject.org/t/laptops-trackpad-not-always-recognized/9760/3
Στην ουσία θα δημιουργήσεις ένα script που θα τρέχει τις 2 παραπάνω εντολές, και θα το κάνεις systemd service για να φορτώνεται κατά την εκκίνηση.

1 «Μου αρέσει»

Έκανα αυτά που λέει και αυτός αλλά σε εμένα δεν δουλεύει διότι συνήθως χρειάζεται να τρέξω χειροκίνητα 2-3 φορές το script για να δει το touchpad

Βάλε μια καθυστέρηση χρόνου στο script μεταξύ των δύο εντολών.

1 «Μου αρέσει»

Δοκίμασα με καθυστερηση 2 δευτερολεπτων και 10 δευτ. χωρις επιτυχια.

Edit:
Στο gnome logs εβαλα φιλτρο “i2c” και βλέπω ότι οντως δουλεύει το service διότι αντηχεί στο τερματικό “Reloading i2c-hid module (touchpad fix)” . Σε περίπτωση που βοηθάει το πρώτο log είναι πριν τρέξω τις εντολές χειροκίνητα, ενώ το δεύτερο αφού τρέξω χειροκινητα τις εντολές.

15:59:00 kernel: i2c_hid i2c-HTIX5288:00: supply vddl not found, using dummy regulator
15:58:50 bash: Reloading i2c-hid module (touchpad fix)
15:58:46 kernel: i2c i2c-13: 4/4 memory slots populated (from DMI)
18:58:42 kernel: i2c_hid i2c-HTIX5288:00: Failed to fetch the HID Descriptor
18:58:41 kernel: Inserted module 'i2c_dev'
18:58:41 kernel: i2c /dev entries driver

16:02:27 kernel: hid-multitouch 0018:0911:5288.0003: input,hidraw0: I2C HID v1.00 Mouse [HTIX5288:00 0911:5288] on i2c-HTIX5288:00
16:02:27 kernel: input: HTIX5288:00 0911:5288 UNKNOWN as /devices/pci0000:00/0000:00:17.3/i2c_designware.7/i2c-7/i2c-HTIX5288:00/0018:0911:5288.0003/input/input17
16:02:26 kernel: i2c_hid i2c-HTIX5288:00: supply vddl not found, using dummy regulator
15:58:50 bash: Reloading i2c-hid module (touchpad fix)
15:58:46 kernel: i2c i2c-13: 4/4 memory slots populated (from DMI)
18:58:42 kernel: i2c_hid i2c-HTIX5288:00: Failed to fetch the HID Descriptor
18:58:41 kernel: Inserted module 'i2c_dev'
18:58:41 kernel: i2c /dev entries driver

To service ξεκιναει μετα τον network manager, μηπως να το βαλω πιο μετα ;

Ναι δοκίμασε να το βάλεις πιο μετά.

1 «Μου αρέσει»

Chuwi laptop??? Αν ναι κοίτα για κανένα firmware update. Δώσε αυτό το flag στον πυρήνα iommu=pt

2 «Μου αρέσει»

Ναι ειναι το chuwi lapbook pro. Έβαλα στο /etc/default/grub
GRUB_CMDLINE_LINUX="rhgb quiet iommu=pt"
και έκανα

sudo grub2-mkconfig --output=/boot/grub2/grub.cfg

Μετά από restart δεν είδα κάποια αλλαγή. Για firmware δν νομίζω ότι θα είμαι τυχερός να βρώ κάτι.

Για την ώρα όπως πρότεινε ο @Maras έχω κάνει ένα service :

[Unit]
Description=Restart Touchpad
After=basic.target suspend.target hibernate.target

[Service]
Type=oneshot
Environment=DISPLAY=:0
ExecStart=/usr/bin/bash -c 'sleep 6 && rmmod i2c_hid && modprobe i2c_hid'

[Install]
WantedBy=basic.target suspend.target hibernate.target

Μετά από 2 suspend συνήθως θα δουλέψει

για ριξε μια ματια και εδω https://unix.stackexchange.com/questions/512280/chuwi-lapbook-air-14-touchpad-recognized-but-not-fully-working

Δυστυχώς δεν με βοήθησε στο να λύσω το πρόβλημα μου.
Είχα ακριβώς το ίδιο λάπτοπ όταν βγήκε αγορασμένο από γερμανικό άμαζον (έκδοση 4/64) και όλα έπαιζαν τέλεια σε linux μέχρι που έπεσε νεράκι στο πληκτρολόγιο και σταμάτησε να δουλεύει. Οπότε πήρα ένα “ίδιο” (8/240).

Απ’οτι φαινεται θα αλλαξανε το hardware…

Αν βάλεις κανένα άλλο live iso κατά προτίμηση arch based λόγο πυρήνα σου κάνει το ίδιο. Αν και λογικά δεν είναι αυτό γιατί και το fedora δεν έχει διαφορες

Επανέρχομαι μετά από 10 μέρες αδράνειας στο θέμα. Το μόνο που άλλαξε είναι ενα update στο fedora 34 με πυρήνα 5.11.16. Το πρόβλημα παραμένει όμως σκέφτηκα μια λύση που δούλεψε.

  • Πηγαίνουμε στον φάκελο /opt
  • Δημιουργούμε ένα αρχείο touchpadfix.py :
import os

while os.system('cat /proc/bus/input/devices | grep -I "Touchpad"') != 0:
    os.system("rmmod i2c-hid")
    os.system("modprobe i2c-hid")
  • Στον ίδιο φάκελο φτιάχνουμε ένα script που θα καλεί το αρχείο της python, touchpadfix.sh :
#!/usr/bin/env bash
echo "Reloading i2c-hid module (touchpad fix)"
cd /opt
python touchpadfix.py
  • Κάνουμε εκτελέσιμο αρχείο το script-ακι
sudo chmod ugo+x /opt/touchpadfix.sh
  • Φτιάχνουμε στον ίδιο φάκελο ένα αρχείο service, touchpadfix.service :
[Unit]
Description=HTIX5288 driver workaround
After=basic.target

[Service]
ExecStart=/opt/touchpadfix.sh

[Install]
WantedBy=multi-user.target
  • Τέλος ενεργοποιούμε την υπηρεσία:
cd /etc/systemd/system && sudo ln -s /opt/touchpadfix.service .
sudo systemctl daemon-reload
sudo systemctl enable touchpadfix.service

Ευπρόσδεκτες παρατηρήσεις - διορθώσεις

2 «Μου αρέσει»

Αυτό το νήμα έκλεισε αυτόματα 2 ημέρες μετά την τελευταία απάντηση. Δεν επιτρέπονται πλέον νέες απαντήσεις.