Προς το περιεχόμενο

No keyboard after suspend


chek2fire

Προτεινόμενες αναρτήσεις

Για πείτε καμιά ιδέα γιατί στην νέα εγκατάσταση στην τελευταία έκδοση kubuntu στο νέο pc που έχω φτιάξει μετά το suspend δεν δουλεύει το keyboard. Δλδ επειδή είναι μηχανικό είναι αναμένα κανονικά τα φώτα του αλλά δεν ανταποκρίνεται σε όποιο κουμπί και να πατήσεις. 

Δοκίμασα να το βγάλω από το usb και να το ξαναβάλω αλλά και εκεί είναι νεκρό ακόμα και σε άλλη θήρα usb. To mouse μετά το suspend δουλεύει πάντως μια χαρά.

Δοκίμασα το suspend στα windows και εκεί δουλεύει μια χαρά το keyboard

Δοκίμασα και επανεγκατάσταση του xserver αλλά δεν έγινε κάτι όπως και να προσθέσω στον grub αυτό εδώ

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash atkbd.reset"

Το keyboard δουλεύει κανονικά μόνο μετά από reboot. Driver έχω τους τελευταίους της nvidia για την διανομή.

 

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)

Έχω βρει αυτήν την λύση:
Δώσε μια lsusb και βρες το πληκτρολόγιό σου. Κάτι τύπου de32:az87

Δοκίμασε να αλλάξεις το GRUB_CMDLINE_LINUX_DEFAULT που έβαλες με αυτό:

usbhid.quirks=0xID_before_colon:0xID_after_colon:0x00000008

usbhid.quirks=0xde32:0xaz87:0x00000008

σώζεις το αρχείο και μετά ανανεώνεις τον grub με

sudo update-grub

κάνε επανεκκίνηση.

 

Προσοχή γιατί παίζεις με grub.

Επεξ/σία από stefanos90_K
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

τώρα για πες μου ποιο μπορεί να είναι το keyboard από την λίστα του lusb γιατί το είχα βάλει και εγώ αλλά δεν μπορούσα να βρω το keyboard. 

Bus 009 Device 003: ID 046d:0a78 Logitech, Inc.  
Bus 009 Device 002: ID 045e:028e Microsoft Corp. Xbox360 Controller
Bus 009 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 010 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 008 Device 002: ID 0424:5734 Standard Microsystems Corp.  
Bus 008 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 007 Device 003: ID 046d:c53a Logitech, Inc.  
Bus 007 Device 004: ID 0424:274a Standard Microsystems Corp.  
Bus 007 Device 002: ID 0424:2734 Standard Microsystems Corp.  
Bus 007 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 005 Device 002: ID 045e:02ea Microsoft Corp. Xbox One S Controller
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 002: ID 28da:1101   
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 8087:0025 Intel Corp.  
Bus 001 Device 007: ID 264a:1fa8   
Bus 001 Device 005: ID 0424:2512 Standard Microsystems Corp. USB 2.0 Hub
Bus 001 Device 006: ID 264a:1fb4   
Bus 001 Device 004: ID 0424:2512 Standard Microsystems Corp. USB 2.0 Hub
Bus 001 Device 003: ID 0b05:1872 ASUSTek Computer, Inc.  
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
 

για την ιστοριία το keyboard ειναι ένα της gskill

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)
2 ώρες πριν, chek2fire είπε

το σκέφτηκα και αυτό αλλά έλεγα μήπως ήταν ποιο εύκολο να βρεθεί με την μια αλλιώς :P

Αν δεν θέλεις να ψάξεις το dmesg και θέλεις να το κάνεις "προγραμματιστικά", μπορείς να το κάνεις με τα παρακάτω βήματα:

% xinput
⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ Kensington      Kensington Expert Mouse 	id=8	[slave  pointer  (2)]
⎜   ↳ CM Storm Trigger gaming Keyboard Mouse  	id=12	[slave  pointer  (2)]
⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
    ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
    ↳ Power Button                            	id=6	[slave  keyboard (3)]
    ↳ Power Button                            	id=7	[slave  keyboard (3)]
    ↳ CM Storm Trigger gaming Keyboard        	id=9	[slave  keyboard (3)]
    ↳ CM Storm Trigger gaming Keyboard System Control	id=10	[slave  keyboard (3)]
    ↳ CM Storm Trigger gaming Keyboard Consumer Control	id=11	[slave  keyboard (3)]

Με την xinput βλέπεις όλες τις input συσκευές από ποντίκια μέχρι webcameres, tv tuner, remote controls, κτλ.

Πολλά usb πληκτρολόγια εμφανίζονται ως 2 και 3 συσκευές είτε για N-key rollover είτε λόγω ειδικών multimedia πλήκτρων. Στη δική μου περίπτωση το πληκτρολόγιο είναι το cooler master trigger οπότε παίρνουμε ένα οποιοδήποτε id από αυτά πχ το 9

% xinput list-props 9                     
Device 'CM Storm Trigger gaming Keyboard':
	Device Enabled (145):	1
	Coordinate Transformation Matrix (147):	1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
	libinput Send Events Modes Available (267):	1, 0
	libinput Send Events Mode Enabled (268):	0, 0
	libinput Send Events Mode Enabled Default (269):	0, 0
	Device Node (270):	"/dev/input/event16"
	Device Product ID (271):	9494, 2

Βλέπουμε τις παραμέτρους που υποστηρίζει η συσκευή. Αυτή η διαδικασία γίνεται πχ για να αλλάξεις acceleration, να γυρίσεις το ποντίκι σε left-handed, να αλλάξεις polling rate, κτλ. Εσένα σε νοιάζει μόνο ποιο event είναι το πληκτρολόγιο οπότε σε νοιάζει το event16.

% udevadm info -n /dev/input/event16
blah
blah
E: ID_VENDOR=CM_Storm
E: ID_VENDOR_ENC=CM\x20Storm
E: ID_VENDOR_ID=2516
E: ID_MODEL=Trigger_gaming_Keyboard
E: ID_MODEL_ENC=Trigger\x20gaming\x20Keyboard
E: ID_MODEL_ID=0002
E: ID_REVISION=0038

% lsusb |grep 2516
Bus 003 Device 006: ID 2516:0002 Cooler Master Co., Ltd

Μέσα σε 100 άλλες ιστορίες, βλέπεις ότι η συσκευή έχει vid 2516 και pid 0002 το οποίο βλέπεις και στην lsusb. Ίσως σε εσένα τα VENDOR και MODEL να είναι κενά αν δεν τα επιστρέφει η συσκευή. Για το γεγονός ότι δεν φαίνονται στο lsusb, είτε η εταιρία δεν έχει δηλώσει τα ID στην usb database (συνήθως μικρές εταιρίες) ή έχεις παλιό αρχείο usb.ids για αυτό βγαίνουν κενά.

Edit: Παλαιότερα θυμάμαι ότι υπήρχε ένα scriptάκι update-usbids αλλά τώρα βλέπω ότι έχω μόνο update-pciids οπότε ίσως να καταργήθηκε πλέον ή να είναι θέμα διανομής.

Επεξ/σία από imitheos
  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)

thx έτσι το βρήκα αμέσως και το εμφάνισε το xinput

 

τζίφος. Αν και έκανα τα πάντα δυστηχώς δεν έγινε τίποτα. Το παράξενο είναι ότι σε προηγούμενη εγκατάσταση το ίδιο keyboard με τους ίδιους nvidia driver δούλευε μια χαρά στην επαναφορά. Τώρα αν και είναι αναμένα τα φώτα του ότι κουμπί και να πατήσεις απλά δεν γίνετε τίποτα. 

Επεξ/σία από chek2fire
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

πρέπει να είναι καθαρά θέμα μητρικής καθώς έβαλα ξανά το πληκτρολόγιο στο παλιό pc και εκεί για μια ακόμη φορά έπαιξε το suspend χωρίς κανένα πρόβλημα. Σε αυτήν εδώ ότι και να έχω δοκιμάσει απλά δεν έχει δουλέψει  και το suspend παραμένει νεκρό το πληκτρολόγιο. 

Κάτι άλλο παράξενο που κάνει μετά το suspend είναι ότι σε reboot κολάει σε οθόνη kubuntu ενώ σε κανονικές συνθήκες χωρίς δλδ suspend το reboot πάντα γίνετε χωρίς πρόβλημα. 

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)

Ίσως πω βλακεία αλλά μήπως κολλάει κάποιο layer πιο πάνω από το πληκτρολόγιο (πχ το usbhid) ; Όλες οι άλλες usb συσκευές παίζουν;

Επίσης γιατί χρησιμοποίησες αυτές τις παραμέτρους ; α) Το atkbd.reset λογικά (από το όνομά του, δεν το έψαξα) πρέπει να είναι για ps/2 (ή παλιά λάπτοπ) πληκτρολόγια.

β) usbhid.quirks=0xID_before_colon:0xID_after_colon:0x00000008 Τι είναι το 8άρι εδώ;

        usbcore.quirks=
                        [USB] A list of quirk entries to augment the built-in
                        usb core quirk list. List entries are separated by
                        commas. Each entry has the form
                        VendorID:ProductID:Flags. The IDs are 4-digit hex
                        numbers and Flags is a set of letters. Each letter
                        will change the built-in quirk; setting it if it is
                        clear and clearing it if it is set. The letters have
                        the following meanings:
				blah blah
                                b = USB_QUIRK_RESET_RESUME (device can't resume
                                        correctly so reset it instead);
				blah blah
                                m = USB_QUIRK_DISCONNECT_SUSPEND (Device needs
                                        to be disconnected before suspend to
                                        prevent spurious wakeup);
                                
                        Example: quirks=0781:5580:bk,0a5c:5834:gij

Σύμφωνα με το kernel-parameters.txt που έχω στο /usr/src/linux, η παράμετρος παίρνει τα ID χωρίς το 0x μπροστά και επίσης παίρνει αλφαριθμητική τιμή flags με αρχή το a και αυτές που μου φάνηκαν λογικές για την περίπτωσή σου είναι οι b, m. Αν θέλεις δοκίμασε με σημαία b αντί για 0x00008 (μετά με m και μετά με bm) μήπως έτσι παίξει.

Edit: Η δική μου παράμετρος βέβαια είναι usbcore και όχι usbhid αλλά δεν βρήκα πουθενά παράμετρο usbhid.quirks στο παραπάνω αρχείο.

Επεξ/σία από imitheos
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

όλα τα υπόλοιπα usb παίζουν μια χαρά ακόμα και το ποντίκι που κάνει και resume το pc από suspend. Και το πληκτρολόγιο παίζει θεωρητικά καθώς μετά το suspend ανάβουν κανονικά τα φώτα του το θέμα είναι ότι δεν ανταποκρίνονται τα κουμπιά του. 

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)
21 λεπτά πριν, chek2fire είπε

όλα τα υπόλοιπα usb παίζουν μια χαρά ακόμα και το ποντίκι που κάνει και resume το pc από suspend. Και το πληκτρολόγιο παίζει θεωρητικά καθώς μετά το suspend ανάβουν κανονικά τα φώτα του το θέμα είναι ότι δεν ανταποκρίνονται τα κουμπιά του. 

Βρήκα εν τέλει το usbhid.quirks. Όντως υπάρχει (απλά δεν είναι documented στο kernel-parameters.txt) και όντως παίρνει τα id με 0x σε αντίθεση με τα άλλα quirks αλλά από όσο μπόρεσα να καταλάβω, το 0x8 flag είναι το HID_QUIRK_NOGET το οποίο σταματάει το "polling for reports". Πολύ πιθανώς να κάνω λάθος αλλά πιστεύω πως είναι εντελώς άσχετο με για την περίπτωσή σου.

Δοκίμασε αν θέλεις αυτό που έγραψα πριν. Πέρασε στον grub σαν παράμετρο usbcore.quirks=vid:pid:b (με vid και pid σκέτα χωρίς το 0x μπροστά) και δες αν παίξει σωστά. Μετά δοκίμασε με m αντί για b.

Edit: Αν θέλεις δες και αυτό που έγραψα πριν για κάποιο layer πιο πάνω από το πληκτρολόγιο. Αν ήταν θέμα quirk του πληκτρολογίου, δεν θα έπρεπε να παίζει όταν το έβγαλες και το ξαναέβαλες σε άλλη θύρα ; Μήπως κολλάει κάποιο "hub" ή κάτι τέτοιο. Μήπως οι άλλες συσκευές που λειτουργούν (όπως το ποντίκι) είναι σε usb2 ελεγκτή και αυτό το πληκτρολόγιο είναι σε usb3 ελεγκτή; Μερικές φορές γίνονται τέτοια θέματα όπου ασχέτως compatibility μεταξύ των πρωτοκόλλων, κάποιες συσκευές δεν παίζουν σωστά σε usbX ελεγκτή αλλά παίζουν τέλεια σε usbY ελεγκτή.

Επεξ/σία από imitheos
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

καλά πάμε και νομίζω πρέπει να είμαι κοντά στην λύση. Τώρα έκανα κάτι δουλειές στο pc και ξαναέβαλα όλα τα usb φυσικά σε άλλες θέσεις από τι ήταν πριν. Πλέον μετά το suspend δεν δουλεύει ούτε το ποντίκι :P 

Εβαλα και το πληκτρολόγιο σε usb 2.0 αλλά και εκεί μάταια. Νομίζω ότι είναι θέμα μητρικής και συμβατότητας με τον kernel. 

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Και σε ανώτερα :)

Ίσως είναι άσχετο αλλά παίζει να έχεις τίποτα ρυθμίσεις που να πειράζουν τις παραμέτρους ενέργειας; Πχ τρέχεις powertop, TLP, κτλ;  Πολλές φορές οι ρυθμίσεις που κάνουν δημιουργούν τέτοια προβλήματα. Δεν μου έρχεται κάτι άλλο που να είναι διαφορετικό ανάμεσα στα PC (πέρα από USB1 εποχές που είχαμε uhci, ohci, κτλ, τα πρότυπα των USB έχουν σταθεροποιηθεί και δύσκολα να μην υλοποιηθεί σωστά η μητρική το πρωτόκολλο και να έχεις ασυμβατότητες)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...