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