ubuntuusers.de

USB-Tastatur schaltet sich im Boot-Vorgang aus

Status: Gelöst | Ubuntu-Version: Ubuntu 20.04 (Focal Fossa)
Antworten |

skotsche

Anmeldungsdatum:
10. Januar 2006

Beiträge: 179

Hallo,

ich habe mir letztens eine Sharkoon Purewriter zugelegt. Mein Problem ist, dass die Tastatur sich während des Bootvorgangs abschaltet, so dass ich vorm Login erstmal den USB-Stecker ziehen und wieder einstöpseln muss. Dann funktioniert die Tastatur auch einwandfrei.

Schalte ich den Rechner ein, ist die Tastatur definitiv aktiv, während das BIOS/EFI lädt. Das kann ich mit Sicherheit sagen, da die Beleuchtung an ist. Und sie schaltet sich erst später aus, während Ubuntu startet.

Ich habe versucht, das PRoblem nach der Anleitung in der letzten Antwort zu beheben: https://unix.stackexchange.com/questions/280564/usb-submit-urbctrl-failed-1-corsair-k65-rgb-keyboard/280574#280574

$ lsusb
[...]
Bus 001 Device 007: ID 04d9:a232 Holtek Semiconductor, Inc. Pure Writer RGB
[...]

Dabei bekomme ich aber folgenden Fehler:

$ sudo modprobe usbhid.quirks=0x04d9:0xa232:0x20000408
modprobe: FATAL: Module usbhid.quirks=0x04d9:0xa232:0x20000408 not found in directory /lib/modules/5.4.0-139-generic

Und damit bin ich mit meinem Latein am Ende. Wie kriege ich denn heraus, welche Module verfügbar sind und welche Quirks ich für diese Tastatur verwenden sollte?

Für jeden Hinweis wäre ich sehr dankbar.

skotsche

dingsbums

Anmeldungsdatum:
13. November 2010

Beiträge: 3762

Ich habe versucht, das PRoblem nach der Anleitung in der letzten Antwort zu beheben

Benutze

usbhid.quirks=0x1B1C:0x1B17:0x20000408

als temporäre Bootoption. Wenn du einen funktionierenden Wert gefunden hast, kannst du ihn wie im Wiki-Artikel weiter unten beschrieben dauerhaft machen.

skotsche

(Themenstarter)

Anmeldungsdatum:
10. Januar 2006

Beiträge: 179

Gut, es ist natürlich sinnvoll, das über die temporäre Bootoption auszuprobieren, wenn es mit modprobe nicht funtkioniert. Ich habe also usbhid.quirks=0x04d9:0xa232:0x20000408 über grub angegeben, aber die Option funktioniert leider nicht. Wie kann ich denn herausfinden, welche Werte ich nach dem zweiten Doppelpunkt ausprobieren sollte?

ChickenLipsRfun2eat Team-Icon

Anmeldungsdatum:
6. Dezember 2009

Beiträge: 12067

Hallo!

Bei Tastaturen kommt es sehr darauf an, welcher Tastaturcontroller verwendet wird und welche Software da läuft, da diese in den meisten Fällen nicht austauschbar ist. Was die quirks angeht, schau mal unter device-quirks wie man das debuggen kann.

Ich vermute aber mal, das du irgend ein Modul bereits im initramfs brauchst, daher schau mal, welche Module für deine Tastatur geladen werden, damit sie funktioniert → Kernelmodule

Falls du noch weitere Infos brauchst, schmeiß ich dir einfach mal meine Info hier rein:

Angeschlossene Tastaturen ermitteln:

grep -A4 -B8 120013 /proc/bus/input/devices

Sysfspath:
sysfspath=$(grep -A4 -B8 120013 /proc/bus/input/devices | awk -F= '/S: Sysfs/ {print $2}')

udev:
udevadm info /sys/$sysfspath
udevadm info /sys/${sysfspath/input*/}

udev Test (beinhalten auch die Ausgabe der hwdb/quirks):
SYSTEMD_LOG_LEVEL=debug udevadm test /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.0/0003:046D:C328.0002

hwdb:
systemd-hwdb query gibt bei mir keine Ergebnisse. Muss diverse Dinge testen, bis ich da was rausbekomme. Mit Fakeeintrag bekomme ich ein Ergebnis: Erstellen: /etc/udev/hwdb.d/61-hacking.hwdb, Inhalt:

1
2
3
# test für Logitech K280e
hid:b0003g0001v0000046Dp0000C328
  KEYBOARD_KEY_1d=!leftctrl

Anwenden mit: systemd-hwdb update; systemd-hwdb query hid:b0003g0001v0000046Dp0000C328

quirks:
https://wayland.freedesktop.org/libinput/doc/latest/device-quirks.html#device-quirks
Anzeigen: libinput quirks list /dev/input/event0

skotsche

(Themenstarter)

Anmeldungsdatum:
10. Januar 2006

Beiträge: 179

Wow, danke! Ich bräuchte hier noch etwas Unterstützung. Hier erstmal, was ich ausgeführt habe:

$ grep -A4 -B8 120013 /proc/bus/input/devices
[...]

I: Bus=0003 Vendor=04d9 Product=a232 Version=0111
N: Name="Sharkoon Pure Writer RGB"
P: Phys=usb-0000:03:00.0-8/input0
S: Sysfs=/devices/pci0000:00/0000:00:01.3/0000:03:00.0/usb1/1-8/1-8:1.0/0003:04D9:A232.0005/input/input18
U: Uniq=
H: Handlers=sysrq kbd event18 leds 
B: PROP=0
B: EV=120013
B: KEY=1000000000007 ff9f207ac14057ff febeffdfffefffff fffffffffffffffe
B: MSC=10
B: LED=7

Mit dem sysfspath kann ich dann udevadm aufrufen:

$ udevadm info /sys/devices/pci0000:00/0000:00:01.3/0000:03:00.0/usb1/1-8/1-8:1.0/0003:04D9:A232.0005/input/input18
P: /devices/pci0000:00/0000:00:01.3/0000:03:00.0/usb1/1-8/1-8:1.0/0003:04D9:A232.0005/input/input18
L: 0
E: DEVPATH=/devices/pci0000:00/0000:00:01.3/0000:03:00.0/usb1/1-8/1-8:1.0/0003:04D9:A232.0005/input/input18
E: PRODUCT=3/4d9/a232/111
E: NAME="Sharkoon Pure Writer RGB"
E: PHYS="usb-0000:03:00.0-8/input0"
E: UNIQ=""
E: PROP=0
E: EV=120013
E: KEY=1000000000007 ff9f207ac14057ff febeffdfffefffff fffffffffffffffe
E: MSC=10
E: LED=7
E: MODALIAS=input:b0003v04D9pA232e0111-e0,1,4,11,14,k71,72,73,74,75,77,79,7A,7B,7C,7D,7E,7F,80,81,82,83,84,85,86,87,88,89,8A,8C,8E,96,98,9E,9F,A1,A3,A4,A5,A6,AD,B0,B1,B2,B3,B4,B7,B8,B9,BA,BB,BC,BD,BE,BF,C0,C1,C2,F0,ram4,l0,1,2,sfw
E: SUBSYSTEM=input
E: USEC_INITIALIZED=1130330317
E: ID_INPUT=1
E: ID_INPUT_KEY=1
E: ID_INPUT_KEYBOARD=1
E: ID_VENDOR=Sharkoon
E: ID_VENDOR_ENC=Sharkoon
E: ID_VENDOR_ID=04d9
E: ID_MODEL=Pure_Writer_RGB
E: ID_MODEL_ENC=Pure\x20Writer\x20RGB
E: ID_MODEL_ID=a232
E: ID_REVISION=0207
E: ID_SERIAL=Sharkoon_Pure_Writer_RGB
E: ID_TYPE=hid
E: ID_BUS=usb
E: ID_USB_INTERFACES=:030101:030000:
E: ID_USB_INTERFACE_NUM=00
E: ID_USB_DRIVER=usbhid
E: ID_PATH=pci-0000:03:00.0-usb-0:8:1.0
E: ID_PATH_TAG=pci-0000_03_00_0-usb-0_8_1_0
E: ID_FOR_SEAT=input-pci-0000_03_00_0-usb-0_8_1_0
E: TAGS=:seat:

Und dann der test:

$ SYSTEMD_LOG_LEVEL=debug udevadm test /devices/pci0000:00/0000:00:01.3/0000:03:00.0/usb1/1-8/1-8:1.0/0003:04D9:A232.0005
[...]
0003:04D9:A232.0005: /lib/udev/rules.d/50-udev-default.rules:14 Importing properties from results of builtin command 'hwdb --subsystem=hid'
0003:04D9:A232.0005: No entry found from hwdb.
0003:04D9:A232.0005: /lib/udev/rules.d/50-udev-default.rules:14 Failed to run builtin 'hwdb --subsystem=hid': No data available
0003:04D9:A232.0005: /lib/udev/rules.d/80-drivers.rules:5 RUN 'kmod load $env{MODALIAS}'
DEVPATH=/devices/pci0000:00/0000:00:01.3/0000:03:00.0/usb1/1-8/1-8:1.0/0003:04D9:A232.0005
DRIVER=hid-generic
HID_ID=0003:000004D9:0000A232
HID_NAME=Sharkoon Pure Writer RGB
HID_PHYS=usb-0000:03:00.0-8/input0
HID_UNIQ=
MODALIAS=hid:b0003g0001v000004D9p0000A232
ACTION=add
SUBSYSTEM=hid
USEC_INITIALIZED=16450934837
run: 'kmod load hid:b0003g0001v000004D9p0000A232'
[...]

Wenn ich das richtig verstehe, gibt mir system-hwdb auch kein Ergebnis. Deshalb habe ich auch in der Datei /etc/udev/hwdb.d/61-hacking.hwdb einen Fake-Eintrag erzeugt und die system-hwdb aktualisiert:

$ cat /etc/udev/hwdb.d/61-hacking.hwdb 
hid:b0003g0001v000004D9p0000A232
  KEYBOARD_KEY_1d=!leftctrl
$ sudo systemd-hwdb update
$ systemd-hwdb query hid:b0003g0001v000004D9p0000A232
KEYBOARD_KEY_1d=!leftctrl

Wenn ich nun den Test wiederhole bekomme ich folgendes:

$ sudo SYSTEMD_LOG_LEVEL=debug udevadm test /devices/pci0000:00/0000:00:01.3/0000:03:00.0/usb1/1-8/1-8:1.0/0003:04D9:A232.0005
[...]
0003:04D9:A232.0005: /lib/udev/rules.d/50-udev-default.rules:14 Importing properties from results of builtin command 'hwdb --subsystem=hid'
0003:04D9:A232.0005: /lib/udev/rules.d/80-drivers.rules:5 RUN 'kmod load $env{MODALIAS}'
0003:04D9:A232.0005: sd-device: Created db file '/run/udev/data/+hid:0003:04D9:A232.0005' for '/devices/pci0000:00/0000:00:01.3/0000:03:00.0/usb1/1-8/1-8:1.0/0003:04D9:A232.0005'
DEVPATH=/devices/pci0000:00/0000:00:01.3/0000:03:00.0/usb1/1-8/1-8:1.0/0003:04D9:A232.0005
DRIVER=hid-generic
HID_ID=0003:000004D9:0000A232
HID_NAME=Sharkoon Pure Writer RGB
HID_PHYS=usb-0000:03:00.0-8/input0
HID_UNIQ=
MODALIAS=hid:b0003g0001v000004D9p0000A232
ACTION=add
SUBSYSTEM=hid
KEYBOARD_KEY_1d=!leftctrl
USEC_INITIALIZED=17512608116
run: 'kmod load hid:b0003g0001v000004D9p0000A232'
[...]

Die Datei /run/udev/data/+hid:0003:04D9:A232.0005 wurde angelegt und hat folgenden Inhalt:

$ cat /run/udev/data/+hid:0003:04D9:A232.0005
I:17512608116
E:KEYBOARD_KEY_1d=!leftctrl

Aber was mache ich nun mit diesem Ergebnis? libinput quirks list /dev/input/event0 liefert nichts zurück.

ChickenLipsRfun2eat Team-Icon

Anmeldungsdatum:
6. Dezember 2009

Beiträge: 12067

Damit könntest du eigene „quirks“ reinwurschteln.hwdb sind „libinput-quirks unter udev“. Allerdings solltest du diese nicht brauchen, da die Tastatur im geladenen OS offenbar funktioniert. Als Treiber ist der Standardtreiber geladen, da gibt es also auch (zunächst) nichts zu beachten. Ich hatte vermutet, das deine Tastatur irgendwelche speziellen Kernelmodule nachlädt. libinput quirks list /dev/input/event0 liefert natürlich nur was zurück, wenn es einen quirk für das Gerät hinter event0 gibt. Die Tastatur war in deiner Ausgabe sowieso event18, nicht 0.
Ich hatte diese Infos auch einfach reingekippt, um dir Ansatzpunkte zu geben, wie du an spezielle Informationen kommen kannst oder Manipulationen vornimmst. Das war keine Anleitung zum Abtippen 😉 Hätte vielleicht dazu schreiben sollen, das man sich vorher Basiswissen über das input-System aneigenen müsste 😉

Du sagst die Tastatur schaltet sich ab. Bedeutet, sie ist beim Anschalten des Rechners aktiv und schaltet dann ab, sobald GRUB geladen wird? Oder bereits nach dem das UEFI geladen wurde, sprich vor GRUB? Das eine würde UEFI-Einstellungen anpassen bedeuten, speziell die für USB-Controller[1], das andere würde bedeuten, das die Tastatur im „boot mode“ nicht funktioniert und da gäbe es eventuell eine Möglichkeit die Tastatur fest einzustellen. Tastaturen haben mehrere Modi (raw,usb,…), in denen sie laufen können, das ließ sich früher mit kbd_mode einstellen, allerdings sollte das heutzutage nicht mehr nötig/möglich sein. Falls also die UEFI-Einstellungen nicht helfen, müssten wir mal vorsichtig weitergucken.

  • 1: EHCI handoff und sowas — falls einstellbar. Manual vom UEFI durchgucken, macht jeder anders und „auto“ ist nicht immer automatisch passend

skotsche

(Themenstarter)

Anmeldungsdatum:
10. Januar 2006

Beiträge: 179

Beim Einschalten des Rechners ist die Tastatur aktiv. Auch in GRUB kann ich die Tastatur verwenden. Erst wenn Ubuntu bootet, gehen die Lichter aus. Für den Login ziehe ich kurz den Stecker aus der Tastatur und kann sie dann wieder ganz normal verwenden und habe keinerlei Problem damit. Ich glaube auch, dass bei einem Neustart die Tastatur auf über den Bootvorgang von Ubuntu eingeschaltet geblieben ist. Das müsste ich aber nochmal probieren, um sicher zu sein.

Ich werde auch später nochmal ins BIOS/UEFI schauen, welche Einstellungen ich zur Tastatur finden kann. Vielen Dank so weit für deine Hilfe!

ChickenLipsRfun2eat Team-Icon

Anmeldungsdatum:
6. Dezember 2009

Beiträge: 12067

Starte mal mit der Bootoption systemd.unit=multi-user.target. Das endet dann vor GDM. Funktioniert da deine Tastatur?

skotsche

(Themenstarter)

Anmeldungsdatum:
10. Januar 2006

Beiträge: 179

Nein, da geht die Tastatur auch nicht. Mir ist auch gerade aufgefallen, dass kurz nach Verlassen von grub bei Tastatur und Maus die Lichter ausgehen. Bei der Maus geht das List kurz darauf wieder an, aber die Tastatur bleibt dunkel.

ChickenLipsRfun2eat Team-Icon

Anmeldungsdatum:
6. Dezember 2009

Beiträge: 12067

Okay. Neuer Versuch mit Bootoption:

usbcore.quirks=04d9:a232:gik

Kernel Parameters → Suche nach 'usbcore.quirks'. Das fügt ein Delay hinzu, verhindert PowerManagement und requests zum „qualifier“. Sind nur geratene Optionen. Nach dem Startvorgang wäre ein aktuelles

journalctl -b -p warning

interessant.

skotsche

(Themenstarter)

Anmeldungsdatum:
10. Januar 2006

Beiträge: 179

Vielen Dank für deine Hilfe, darüber bin ich wirklich froh!

gik hat nicht geholfen. Hier mal ein Auszug aus dem journal. Ich habe den Eindruck, dass es ohne die quirks genauso aussah.

-- Logs begin at Mon 2022-06-27 19:56:19 CEST, end at Tue 2023-02-21 20:41:52 CET. --
Feb 21 20:40:39 xxx kernel: ACPI BIOS Warning (bug): Optional FADT field Pm2ControlBlock has valid Length but zero Address: 0x0000000000000000/0x1 (20190816/tbfadt-615)
Feb 21 20:40:39 xxx kernel: tsc: Unable to calibrate against PIT
Feb 21 20:40:39 xxx kernel: pmd_set_huge: Cannot satisfy [mem 0xf8000000-0xf8200000] with a huge-page mapping due to MTRR override.
Feb 21 20:40:39 xxx kernel: pci 0000:00:00.2: can't derive routing for PCI INT A
Feb 21 20:40:39 xxx kernel: pci 0000:00:00.2: PCI INT A: not connected
Feb 21 20:40:39 xxx kernel:  PPR NX GT IA GA PC GA_vAPIC
Feb 21 20:40:39 xxx kernel: iommu ivhd0: AMD-Vi: Event logged [INVALID_DEVICE_REQUEST device=00:00.0 pasid=0x00000 address=0xfffffffdf8000000 flags=0x0a00]
Feb 21 20:40:39 xxx kernel: platform eisa.0: EISA: Cannot allocate resource for mainboard
Feb 21 20:40:39 xxx kernel: platform eisa.0: Cannot allocate resource for EISA slot 1
Feb 21 20:40:39 xxx kernel: platform eisa.0: Cannot allocate resource for EISA slot 2
Feb 21 20:40:39 xxx kernel: platform eisa.0: Cannot allocate resource for EISA slot 3
Feb 21 20:40:39 xxx kernel: platform eisa.0: Cannot allocate resource for EISA slot 4
Feb 21 20:40:39 xxx kernel: platform eisa.0: Cannot allocate resource for EISA slot 5
Feb 21 20:40:39 xxx kernel: platform eisa.0: Cannot allocate resource for EISA slot 6
Feb 21 20:40:39 xxx kernel: platform eisa.0: Cannot allocate resource for EISA slot 7
Feb 21 20:40:39 xxx kernel: platform eisa.0: Cannot allocate resource for EISA slot 8
Feb 21 20:40:39 xxx kernel: usb 1-8: device descriptor read/64, error -71
Feb 21 20:40:39 xxx kernel: usb 1-8: device descriptor read/64, error -71
Feb 21 20:40:39 xxx kernel: ata1.00: NCQ Send/Recv Log not supported
Feb 21 20:40:39 xxx kernel: ata1.00: NCQ Send/Recv Log not supported
Feb 21 20:40:39 xxx kernel: usb 1-8: device descriptor read/64, error -71
Feb 21 20:40:39 xxx kernel: usb 1-8: device descriptor read/64, error -71
Feb 21 20:40:39 xxx kernel: usb 1-8: Device not responding to setup address.
Feb 21 20:40:39 xxx kernel: usb 1-8: Device not responding to setup address.
Feb 21 20:40:39 xxx kernel: usb 1-8: device not accepting address 4, error -71
Feb 21 20:40:39 xxx kernel: usb 1-8: Device not responding to setup address.
Feb 21 20:40:39 xxx kernel: usb 1-8: Device not responding to setup address.
Feb 21 20:40:39 xxx kernel: usb 1-8: device not accepting address 5, error -71
Feb 21 20:40:39 xxx kernel: usb usb1-port8: unable to enumerate USB device

Das ist mal ein Fortschritt! usb 1-8 bezieht sich auf die Tastatur, wie man hier sehen kann:

$ grep -A4 -B8 120013 /proc/bus/input/devices

[...]

I: Bus=0003 Vendor=04d9 Product=a232 Version=0111
N: Name="Sharkoon Pure Writer RGB"
P: Phys=usb-0000:03:00.0-8/input0
S: Sysfs=/devices/pci0000:00/0000:00:01.3/0000:03:00.0/usb1/1-8/1-8:1.0/0003:04D9:A232.0005/input/input18
U: Uniq=
H: Handlers=sysrq kbd event18 leds 
B: PROP=0
B: EV=120013
B: KEY=1000000000007 ff9f207ac14057ff febeffdfffefffff fffffffffffffffe
B: MSC=10
B: LED=7

Ich lese mal, welche Optionen es für die quirks noch gibt. Bin aber für weitere Vorschläge offen!

ChickenLipsRfun2eat Team-Icon

Anmeldungsdatum:
6. Dezember 2009

Beiträge: 12067

Häng mal das komplette journalctl -b in den PasteService. Vielleicht sieht man da einen Schluckauf.

Nachtrag: Natürlich ohne Bootoptionen.

skotsche

(Themenstarter)

Anmeldungsdatum:
10. Januar 2006

Beiträge: 179

Boot Pure Writer

Der Bootvorgang ist um 21:58 abgeschlossen und um 22:00 sieht man, dass ich den Stecker der Tastatur kurz gezogen habe, da wird die Tastatur erkannt. Aber vorher gibt es Probleme mit usb 1-8.

ChickenLipsRfun2eat Team-Icon

Anmeldungsdatum:
6. Dezember 2009

Beiträge: 12067

Es scheint ein UEFI-Update für dein Board zu geben. Das solltest du installieren.

Die Probleme mit usb 1-8 hatte ich vorher auch schon gesehen, dachte aber der meckert wegen der usbcore-Bootoption. Könnte sich durch das uefi-update erledigen, je nachdem was in den 5 Jahren gefixt wurde. Ansonsten mal mehrere Dinge ausprobieren:

  • Booten ohne (diese) Tastatur. Dann gucken ob die Fehler beim USB bleiben

  • Alle Geräte vom USB abziehen, nach und nach einstöpseln

  • Tastatur an einen anderen Port hängen, anderes Gerät an den ursprünglichen Port

Falls du einen zweiten Rechner hättest, wäre das praktisch, weil du dann per SSH live verfolgen könntest was passiert. Ansonsten bleibt natürlich das Journal lesen, nachdem eine funktionierende Tastatur angeschlossen wurde.

Ziel wäre herauszufinden ob der Port selbst Probleme macht oder die Tastatur — oder die Kombination mit dieser — diesen blockiert.

skotsche

(Themenstarter)

Anmeldungsdatum:
10. Januar 2006

Beiträge: 179

Ok danke. Da habe ich ja was zu tun. Ich melde mich, falls ich noch Fragen habe oder eine Lösung gefunden habe. Vielen Dank soweit!

Antworten |