diff --git a/CorsairDriverBugfix/Material/Hut1_12v2.pdf b/CorsairDriverBugfix/Material/Hut1_12v2.pdf new file mode 100644 index 0000000000000000000000000000000000000000..d3fffdf6b8f8576e69f0beded3462933ddf4e043 Binary files /dev/null and b/CorsairDriverBugfix/Material/Hut1_12v2.pdf differ diff --git a/CorsairDriverBugfix/Material/InputSubsystem.gif b/CorsairDriverBugfix/Material/InputSubsystem.gif new file mode 100644 index 0000000000000000000000000000000000000000..37435dd5a2aa5dedc7729f475468ab647411547d Binary files /dev/null and b/CorsairDriverBugfix/Material/InputSubsystem.gif differ diff --git a/CorsairDriverBugfix/Material/InputSubsystemQuelle.txt b/CorsairDriverBugfix/Material/InputSubsystemQuelle.txt new file mode 100644 index 0000000000000000000000000000000000000000..e8485afd3e33fd5f9116c50d50e6a45c5f8b8399 --- /dev/null +++ b/CorsairDriverBugfix/Material/InputSubsystemQuelle.txt @@ -0,0 +1 @@ +http://www.embeddedlinux.org.cn/essentiallinuxdevicedrivers/final/ch07lev1sec1.html diff --git a/CorsairDriverBugfix/doc/notes.txt b/CorsairDriverBugfix/doc/notes.txt new file mode 100644 index 0000000000000000000000000000000000000000..b2b7c9982d2448646312e13492abbbe1d41815f6 --- /dev/null +++ b/CorsairDriverBugfix/doc/notes.txt @@ -0,0 +1,63 @@ +|=== : Trennzeichen + +# sysfsutils beinhaltet systool -- Anzeige, welche Parameter akzeptiert werden. +systool -vm usbhid + +|=== + +lsmod # Listen der geladenen Module evtl. einmal ohne dongle und mit dongle in Datei schreiben und mittels diff analysieren, welche Treiber geladen werden. +Links mit Dongle; Rechts ohne: + diff lsmodWithDongle.txt lsmodWithoutDongle.txt + 3c3 + < snd_usb_audio 176128 2 + --- + > snd_usb_audio 176128 0 + 52c52 + < snd 81920 27 snd_usb_audio,snd_hwdep,snd_timer,snd_hda_codec_hdmi,snd_pcm,snd_seq,snd_rawmidi,snd_hda_codec_generic,snd_usbmidi_lib,snd_hda_codec,snd_hda_intel,snd_seq_device,snd_hda_codec_analog + --- + > snd 81920 23 snd_usb_audio,snd_hwdep,snd_timer,snd_hda_codec_hdmi,snd_pcm,snd_seq,snd_rawmidi,snd_hda_codec_generic,snd_usbmidi_lib,snd_hda_codec,snd_hda_intel,snd_seq_device,snd_hda_codec_analog + +|=== + +dmesg # Beinhaltet auch Informationen, welche Treiber geladen werden. + [ 2560.047464] perf interrupt took too long (2521 > 2500), lowering kernel.perf_event_max_sample_rate to 50000 + [ 3052.284075] usb 3-1: USB disconnect, device number 2 + [ 3085.016021] usb 3-1: new full-speed USB device number 3 using uhci_hcd + [ 3085.278039] usb 3-1: New USB device found, idVendor=1b1c, idProduct=1b27 + [ 3085.278045] usb 3-1: New USB device strings: Mfr=3, Product=4, SerialNumber=0 + [ 3085.278049] usb 3-1: Product: Corsair VOID Wireless Gaming Dongle + [ 3085.278052] usb 3-1: Manufacturer: Corsair + [ 3085.565157] input: Corsair Corsair VOID Wireless Gaming Dongle as /devices/pci0000:00/0000:00:1a.0/usb3/3-1/3-1:1.3/0003:1B1C:1B27.0008/input/input18 + [ 3085.620234] hid-generic 0003:1B1C:1B27.0008: input,hiddev0,hidraw4: USB HID v1.11 Device [Corsair Corsair VOID Wireless Gaming Dongle] on usb-0000:00:1a.0-1/input3 + +|=== + +Treiber einem Gerät zuweisen oder Gerät von Treiber trennen: +cd /sys/bus/usb/drivers/hiddev +ls +#B-P:C.I ist die Form von Interface Dateinamen +B = Bus Nummer, P String der Portnummer, C Konfigurationswert, I Interfacenummer +# Treiber entladen: + echo -n interface-filename > unbind +# Treiber laden: + echo -n interface-filename > bind + +|=== + +lsusb liefert die USB Adresse, an der der USB-Dongle zu erreichen ist: +lsusb + Bus 003 Device 003: ID 1b1c:1b27 Corsair + +ls /sys/bus/usb/drivers/hiddev + lrwxrwxrwx 1 root root 0 Mai 14 18:26 3-1:1.3 -> ../../../../devices/pci0000:00/0000:00:1a.0/usb3/3-1/3-1:1.3 + +|=== + +lsusb -vvv | more # Hochdetailierte Informationen über alle USB Geräte +Interessant hier: Der Report Descriptor liefert Auskunft über alle Telegramme, die das Gerät als Human Interface Device senden kann und bietet damit die Möglichkeit das Gerät zu betreiben ohne einen speziellen Treiber für dieses spezifische Gerät schreiben zu müssen. Falls der Descriptor nicht zu den in der Realität vorhandenen Daten passt, kann es zu Problemen kommen. + +Eine Vermutung von mir: In den HID-Treiben werden Mutexe verwendet. Ich könnte mir vorstellen, dass falls im Descriptor ein Telegramm fälschlicherweise zu lang angemeldet wird, dass ein Mutex für den Lesevorgang blockiert wird und nicht wieder auftaut, da ein zu kurzes Telegramm angekommen ist. (Würde erklären, weshalb Funktionen teilweise noch funktionieren, aber Tasten fälschlicherweise als gedrückt empfunden werden z.B. Eventuell passt die Kommunikation auch nicht mehr, wenn das falsche Telegramm kommt und durch STRG+ALT+F1 und anschließendes zurückwechseln in den xserver werden die Puffer neu initialisiert. + + + + diff --git a/CorsairDriverBugfix/lsmodWithDongle.txt b/CorsairDriverBugfix/lsmodWithDongle.txt new file mode 100644 index 0000000000000000000000000000000000000000..b351e009b76b7b339df047325f1c2970306e65ec --- /dev/null +++ b/CorsairDriverBugfix/lsmodWithDongle.txt @@ -0,0 +1,87 @@ +Module Size Used by +joydev 20480 0 +snd_usb_audio 176128 2 +snd_usbmidi_lib 36864 1 snd_usb_audio +xt_CHECKSUM 16384 1 +iptable_mangle 16384 1 +ipt_MASQUERADE 16384 3 +nf_nat_masquerade_ipv4 16384 1 ipt_MASQUERADE +iptable_nat 16384 1 +nf_nat_ipv4 16384 1 iptable_nat +nf_nat 24576 2 nf_nat_ipv4,nf_nat_masquerade_ipv4 +nf_conntrack_ipv4 16384 2 +nf_defrag_ipv4 16384 1 nf_conntrack_ipv4 +xt_conntrack 16384 1 +nf_conntrack 106496 5 nf_nat,nf_nat_ipv4,xt_conntrack,nf_nat_masquerade_ipv4,nf_conntrack_ipv4 +ipt_REJECT 16384 2 +nf_reject_ipv4 16384 1 ipt_REJECT +xt_tcpudp 16384 6 +bridge 126976 0 +stp 16384 1 bridge +llc 16384 2 stp,bridge +ebtable_filter 16384 0 +ebtables 36864 1 ebtable_filter +ip6table_filter 16384 0 +ip6_tables 28672 1 ip6table_filter +iptable_filter 16384 1 +ip_tables 28672 3 iptable_filter,iptable_mangle,iptable_nat +x_tables 36864 11 ip6table_filter,xt_CHECKSUM,ip_tables,xt_tcpudp,ipt_MASQUERADE,xt_conntrack,iptable_filter,ebtables,ipt_REJECT,iptable_mangle,ip6_tables +vboxpci 24576 0 +vboxnetadp 28672 0 +vboxnetflt 28672 0 +vboxdrv 454656 3 vboxnetadp,vboxnetflt,vboxpci +snd_hda_codec_analog 16384 1 +snd_hda_codec_generic 77824 1 snd_hda_codec_analog +snd_hda_codec_hdmi 53248 1 +nvidia_uvm 36864 0 +nvidia 10567680 31 nvidia_uvm +input_leds 16384 0 +snd_hda_intel 36864 5 +snd_hda_codec 135168 4 snd_hda_codec_hdmi,snd_hda_codec_generic,snd_hda_intel,snd_hda_codec_analog +snd_hda_core 73728 5 snd_hda_codec_hdmi,snd_hda_codec_generic,snd_hda_codec,snd_hda_intel,snd_hda_codec_analog +snd_hwdep 16384 2 snd_usb_audio,snd_hda_codec +snd_pcm 106496 5 snd_usb_audio,snd_hda_codec_hdmi,snd_hda_codec,snd_hda_intel,snd_hda_core +coretemp 16384 0 +snd_seq_midi 16384 0 +snd_seq_midi_event 16384 1 snd_seq_midi +serio_raw 16384 0 +snd_rawmidi 32768 2 snd_usbmidi_lib,snd_seq_midi +snd_seq 69632 2 snd_seq_midi_event,snd_seq_midi +snd_seq_device 16384 3 snd_seq,snd_rawmidi,snd_seq_midi +snd_timer 32768 2 snd_pcm,snd_seq +snd 81920 27 snd_usb_audio,snd_hwdep,snd_timer,snd_hda_codec_hdmi,snd_pcm,snd_seq,snd_rawmidi,snd_hda_codec_generic,snd_usbmidi_lib,snd_hda_codec,snd_hda_intel,snd_seq_device,snd_hda_codec_analog +drm 360448 4 nvidia +lpc_ich 24576 0 +soundcore 16384 1 snd +asus_atk0110 20480 0 +x38_edac 16384 0 +mac_hid 16384 0 +shpchp 36864 0 +edac_core 53248 1 x38_edac +binfmt_misc 20480 1 +kvm_intel 172032 0 +kvm 536576 1 kvm_intel +vfio_pci 40960 0 +vfio_virqfd 16384 1 vfio_pci +irqbypass 16384 2 kvm,vfio_pci +vfio_iommu_type1 20480 0 +vfio 28672 2 vfio_iommu_type1,vfio_pci +pci_stub 16384 1 +vhba 20480 1 +parport_pc 32768 0 +ppdev 20480 0 +lp 20480 0 +parport 49152 3 lp,ppdev,parport_pc +autofs4 40960 2 +hid_logitech_hidpp 20480 0 +hid_generic 16384 0 +hid_logitech_dj 20480 0 +usbhid 49152 0 +hid 118784 5 hid_generic,usbhid,hid_logitech_dj,hid_logitech_hidpp +firewire_ohci 40960 0 +firewire_core 65536 1 firewire_ohci +crc_itu_t 16384 1 firewire_core +pata_acpi 16384 0 +sky2 61440 0 +pata_jmicron 16384 0 +fjes 28672 0 diff --git a/CorsairDriverBugfix/lsmodWithDongleAfterSwitch.txt b/CorsairDriverBugfix/lsmodWithDongleAfterSwitch.txt new file mode 100644 index 0000000000000000000000000000000000000000..b351e009b76b7b339df047325f1c2970306e65ec --- /dev/null +++ b/CorsairDriverBugfix/lsmodWithDongleAfterSwitch.txt @@ -0,0 +1,87 @@ +Module Size Used by +joydev 20480 0 +snd_usb_audio 176128 2 +snd_usbmidi_lib 36864 1 snd_usb_audio +xt_CHECKSUM 16384 1 +iptable_mangle 16384 1 +ipt_MASQUERADE 16384 3 +nf_nat_masquerade_ipv4 16384 1 ipt_MASQUERADE +iptable_nat 16384 1 +nf_nat_ipv4 16384 1 iptable_nat +nf_nat 24576 2 nf_nat_ipv4,nf_nat_masquerade_ipv4 +nf_conntrack_ipv4 16384 2 +nf_defrag_ipv4 16384 1 nf_conntrack_ipv4 +xt_conntrack 16384 1 +nf_conntrack 106496 5 nf_nat,nf_nat_ipv4,xt_conntrack,nf_nat_masquerade_ipv4,nf_conntrack_ipv4 +ipt_REJECT 16384 2 +nf_reject_ipv4 16384 1 ipt_REJECT +xt_tcpudp 16384 6 +bridge 126976 0 +stp 16384 1 bridge +llc 16384 2 stp,bridge +ebtable_filter 16384 0 +ebtables 36864 1 ebtable_filter +ip6table_filter 16384 0 +ip6_tables 28672 1 ip6table_filter +iptable_filter 16384 1 +ip_tables 28672 3 iptable_filter,iptable_mangle,iptable_nat +x_tables 36864 11 ip6table_filter,xt_CHECKSUM,ip_tables,xt_tcpudp,ipt_MASQUERADE,xt_conntrack,iptable_filter,ebtables,ipt_REJECT,iptable_mangle,ip6_tables +vboxpci 24576 0 +vboxnetadp 28672 0 +vboxnetflt 28672 0 +vboxdrv 454656 3 vboxnetadp,vboxnetflt,vboxpci +snd_hda_codec_analog 16384 1 +snd_hda_codec_generic 77824 1 snd_hda_codec_analog +snd_hda_codec_hdmi 53248 1 +nvidia_uvm 36864 0 +nvidia 10567680 31 nvidia_uvm +input_leds 16384 0 +snd_hda_intel 36864 5 +snd_hda_codec 135168 4 snd_hda_codec_hdmi,snd_hda_codec_generic,snd_hda_intel,snd_hda_codec_analog +snd_hda_core 73728 5 snd_hda_codec_hdmi,snd_hda_codec_generic,snd_hda_codec,snd_hda_intel,snd_hda_codec_analog +snd_hwdep 16384 2 snd_usb_audio,snd_hda_codec +snd_pcm 106496 5 snd_usb_audio,snd_hda_codec_hdmi,snd_hda_codec,snd_hda_intel,snd_hda_core +coretemp 16384 0 +snd_seq_midi 16384 0 +snd_seq_midi_event 16384 1 snd_seq_midi +serio_raw 16384 0 +snd_rawmidi 32768 2 snd_usbmidi_lib,snd_seq_midi +snd_seq 69632 2 snd_seq_midi_event,snd_seq_midi +snd_seq_device 16384 3 snd_seq,snd_rawmidi,snd_seq_midi +snd_timer 32768 2 snd_pcm,snd_seq +snd 81920 27 snd_usb_audio,snd_hwdep,snd_timer,snd_hda_codec_hdmi,snd_pcm,snd_seq,snd_rawmidi,snd_hda_codec_generic,snd_usbmidi_lib,snd_hda_codec,snd_hda_intel,snd_seq_device,snd_hda_codec_analog +drm 360448 4 nvidia +lpc_ich 24576 0 +soundcore 16384 1 snd +asus_atk0110 20480 0 +x38_edac 16384 0 +mac_hid 16384 0 +shpchp 36864 0 +edac_core 53248 1 x38_edac +binfmt_misc 20480 1 +kvm_intel 172032 0 +kvm 536576 1 kvm_intel +vfio_pci 40960 0 +vfio_virqfd 16384 1 vfio_pci +irqbypass 16384 2 kvm,vfio_pci +vfio_iommu_type1 20480 0 +vfio 28672 2 vfio_iommu_type1,vfio_pci +pci_stub 16384 1 +vhba 20480 1 +parport_pc 32768 0 +ppdev 20480 0 +lp 20480 0 +parport 49152 3 lp,ppdev,parport_pc +autofs4 40960 2 +hid_logitech_hidpp 20480 0 +hid_generic 16384 0 +hid_logitech_dj 20480 0 +usbhid 49152 0 +hid 118784 5 hid_generic,usbhid,hid_logitech_dj,hid_logitech_hidpp +firewire_ohci 40960 0 +firewire_core 65536 1 firewire_ohci +crc_itu_t 16384 1 firewire_core +pata_acpi 16384 0 +sky2 61440 0 +pata_jmicron 16384 0 +fjes 28672 0 diff --git a/CorsairDriverBugfix/lsmodWithoutDongle.txt b/CorsairDriverBugfix/lsmodWithoutDongle.txt new file mode 100644 index 0000000000000000000000000000000000000000..6bb0c5327d56a55514d6c8c33d893c62e6cabb5e --- /dev/null +++ b/CorsairDriverBugfix/lsmodWithoutDongle.txt @@ -0,0 +1,87 @@ +Module Size Used by +joydev 20480 0 +snd_usb_audio 176128 0 +snd_usbmidi_lib 36864 1 snd_usb_audio +xt_CHECKSUM 16384 1 +iptable_mangle 16384 1 +ipt_MASQUERADE 16384 3 +nf_nat_masquerade_ipv4 16384 1 ipt_MASQUERADE +iptable_nat 16384 1 +nf_nat_ipv4 16384 1 iptable_nat +nf_nat 24576 2 nf_nat_ipv4,nf_nat_masquerade_ipv4 +nf_conntrack_ipv4 16384 2 +nf_defrag_ipv4 16384 1 nf_conntrack_ipv4 +xt_conntrack 16384 1 +nf_conntrack 106496 5 nf_nat,nf_nat_ipv4,xt_conntrack,nf_nat_masquerade_ipv4,nf_conntrack_ipv4 +ipt_REJECT 16384 2 +nf_reject_ipv4 16384 1 ipt_REJECT +xt_tcpudp 16384 6 +bridge 126976 0 +stp 16384 1 bridge +llc 16384 2 stp,bridge +ebtable_filter 16384 0 +ebtables 36864 1 ebtable_filter +ip6table_filter 16384 0 +ip6_tables 28672 1 ip6table_filter +iptable_filter 16384 1 +ip_tables 28672 3 iptable_filter,iptable_mangle,iptable_nat +x_tables 36864 11 ip6table_filter,xt_CHECKSUM,ip_tables,xt_tcpudp,ipt_MASQUERADE,xt_conntrack,iptable_filter,ebtables,ipt_REJECT,iptable_mangle,ip6_tables +vboxpci 24576 0 +vboxnetadp 28672 0 +vboxnetflt 28672 0 +vboxdrv 454656 3 vboxnetadp,vboxnetflt,vboxpci +snd_hda_codec_analog 16384 1 +snd_hda_codec_generic 77824 1 snd_hda_codec_analog +snd_hda_codec_hdmi 53248 1 +nvidia_uvm 36864 0 +nvidia 10567680 31 nvidia_uvm +input_leds 16384 0 +snd_hda_intel 36864 5 +snd_hda_codec 135168 4 snd_hda_codec_hdmi,snd_hda_codec_generic,snd_hda_intel,snd_hda_codec_analog +snd_hda_core 73728 5 snd_hda_codec_hdmi,snd_hda_codec_generic,snd_hda_codec,snd_hda_intel,snd_hda_codec_analog +snd_hwdep 16384 2 snd_usb_audio,snd_hda_codec +snd_pcm 106496 5 snd_usb_audio,snd_hda_codec_hdmi,snd_hda_codec,snd_hda_intel,snd_hda_core +coretemp 16384 0 +snd_seq_midi 16384 0 +snd_seq_midi_event 16384 1 snd_seq_midi +serio_raw 16384 0 +snd_rawmidi 32768 2 snd_usbmidi_lib,snd_seq_midi +snd_seq 69632 2 snd_seq_midi_event,snd_seq_midi +snd_seq_device 16384 3 snd_seq,snd_rawmidi,snd_seq_midi +snd_timer 32768 2 snd_pcm,snd_seq +snd 81920 23 snd_usb_audio,snd_hwdep,snd_timer,snd_hda_codec_hdmi,snd_pcm,snd_seq,snd_rawmidi,snd_hda_codec_generic,snd_usbmidi_lib,snd_hda_codec,snd_hda_intel,snd_seq_device,snd_hda_codec_analog +drm 360448 4 nvidia +lpc_ich 24576 0 +soundcore 16384 1 snd +asus_atk0110 20480 0 +x38_edac 16384 0 +mac_hid 16384 0 +shpchp 36864 0 +edac_core 53248 1 x38_edac +binfmt_misc 20480 1 +kvm_intel 172032 0 +kvm 536576 1 kvm_intel +vfio_pci 40960 0 +vfio_virqfd 16384 1 vfio_pci +irqbypass 16384 2 kvm,vfio_pci +vfio_iommu_type1 20480 0 +vfio 28672 2 vfio_iommu_type1,vfio_pci +pci_stub 16384 1 +vhba 20480 1 +parport_pc 32768 0 +ppdev 20480 0 +lp 20480 0 +parport 49152 3 lp,ppdev,parport_pc +autofs4 40960 2 +hid_logitech_hidpp 20480 0 +hid_generic 16384 0 +hid_logitech_dj 20480 0 +usbhid 49152 0 +hid 118784 5 hid_generic,usbhid,hid_logitech_dj,hid_logitech_hidpp +firewire_ohci 40960 0 +firewire_core 65536 1 firewire_ohci +crc_itu_t 16384 1 firewire_core +pata_acpi 16384 0 +sky2 61440 0 +pata_jmicron 16384 0 +fjes 28672 0