The key thing I've noticed here is that if I grab the device via libusb
and capture data, then it's on  interface 0x83, and the bytes are a
little different to the keys that do work (like vol+).

For example Vol-Down gives:
[2, 234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0]
And vol-up:
[2, 233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0]

All volume control, and media control keys work fine, and have the first
byte as 0x02

while the ROG key gives:
[90, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0]

Fan:
[90, 174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0]

Backlight-off:
[90, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0]

Backlight-down:
[90, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0]

Backlight-up:
[90, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0]

Touchpad-toggle:
[90, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0]

Sleep:
[90, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0]

Airplane-toggle:
[90, 136, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0]

Keyboard backlight up:
[90, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0]

Keyboard backlight down:
[90, 197, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0]

Aura-prev:
[90, 178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0]

Aura-next:
[90, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0]


Bus 001 Device 003: ID 0b05:1866 ASUSTek Computer, Inc. N-KEY Device
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x0b05 ASUSTek Computer, Inc.
  idProduct          0x1866 
  bcdDevice            0.02
  iManufacturer           1 
  iProduct                2 
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x005b
    bNumInterfaces          3
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      1 Boot Interface Subclass
      bInterfaceProtocol      1 Keyboard
      iInterface              3 
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.10
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      67
         Report Descriptors: 
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      1 Boot Interface Subclass
      bInterfaceProtocol      1 Keyboard
      iInterface              1 
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.10
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      65
         Report Descriptors: 
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      1 Boot Interface Subclass
      bInterfaceProtocol      1 Keyboard
      iInterface              1 
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.10
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength     167
         Report Descriptors: 
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x04  EP 4 OUT
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1


If I grab interface 0x83 on this device then I can capture the interrupt 
packets for both the byte[0]=2 and byte[0]=90 packet examples I've given above.

I ended up making a small app https://github.com/flukejones/rog-core to
perform some of the required tasks. But this is far from optimal and
ideally those keys would be outputting to an evdev somewhere to be read.

I don't know C (I know Rust and others), so I can't contribute any
driver fixes, I wouldn't even know where to start - but if someone could
mentor me, I would get it done.

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1802652

Title:
  keyboard backlight not working on Asus GM501

Status in linux package in Ubuntu:
  Confirmed

Bug description:
  The keyboard lights and most of the F keys aren't working.
  Kernel = 4.15.0-20-generic
  System linux mint 19

  ls -hal /sys/class/leds/
  total 0
  drwxr-xr-x  2 root root 0 Nov 10 15:47 .
  drwxr-xr-x 72 root root 0 Nov 10 15:43 ..
  lrwxrwxrwx  1 root root 0 Nov 10 15:43 asus::lightbar -> 
../../devices/platform/asus-nb-wmi/leds/asus::lightbar
  lrwxrwxrwx  1 root root 0 Nov 10 15:47 asus-wireless::airplane -> 
../../devices/LNXSYSTM:00/LNXSYBUS:00/ATK4002:00/leds/asus-wireless::airplane
  lrwxrwxrwx  1 root root 0 Nov 10 15:47 input4::capslock -> 
../../devices/platform/i8042/serio0/input/input4/input4::capslock
  lrwxrwxrwx  1 root root 0 Nov 10 15:47 input4::numlock -> 
../../devices/platform/i8042/serio0/input/input4/input4::numlock
  lrwxrwxrwx  1 root root 0 Nov 10 15:47 input4::scrolllock -> 
../../devices/platform/i8042/serio0/input/input4/input4::scrolllock
  lrwxrwxrwx  1 root root 0 Nov 10 15:47 input7::capslock -> 
../../devices/pci0000:00/0000:00:14.0/usb1/1-10/1-10:1.0/0003:0B05:1866.0001/input/input7/input7::capslock
  lrwxrwxrwx  1 root root 0 Nov 10 15:47 input7::compose -> 
../../devices/pci0000:00/0000:00:14.0/usb1/1-10/1-10:1.0/0003:0B05:1866.0001/input/input7/input7::compose
  lrwxrwxrwx  1 root root 0 Nov 10 15:47 input7::kana -> 
../../devices/pci0000:00/0000:00:14.0/usb1/1-10/1-10:1.0/0003:0B05:1866.0001/input/input7/input7::kana
  lrwxrwxrwx  1 root root 0 Nov 10 15:47 input7::numlock -> 
../../devices/pci0000:00/0000:00:14.0/usb1/1-10/1-10:1.0/0003:0B05:1866.0001/input/input7/input7::numlock
  lrwxrwxrwx  1 root root 0 Nov 10 15:47 input7::scrolllock -> 
../../devices/pci0000:00/0000:00:14.0/usb1/1-10/1-10:1.0/0003:0B05:1866.0001/input/input7/input7::scrolllock
  lrwxrwxrwx  1 root root 0 Nov 10 15:47 input8::capslock -> 
../../devices/pci0000:00/0000:00:14.0/usb1/1-10/1-10:1.1/0003:0B05:1866.0002/input/input8/input8::capslock
  lrwxrwxrwx  1 root root 0 Nov 10 15:47 input8::compose -> 
../../devices/pci0000:00/0000:00:14.0/usb1/1-10/1-10:1.1/0003:0B05:1866.0002/input/input8/input8::compose
  lrwxrwxrwx  1 root root 0 Nov 10 15:47 input8::kana -> 
../../devices/pci0000:00/0000:00:14.0/usb1/1-10/1-10:1.1/0003:0B05:1866.0002/input/input8/input8::kana
  lrwxrwxrwx  1 root root 0 Nov 10 15:47 input8::numlock -> 
../../devices/pci0000:00/0000:00:14.0/usb1/1-10/1-10:1.1/0003:0B05:1866.0002/input/input8/input8::numlock
  lrwxrwxrwx  1 root root 0 Nov 10 15:47 input8::scrolllock -> 
../../devices/pci0000:00/0000:00:14.0/usb1/1-10/1-10:1.1/0003:0B05:1866.0002/input/input8/input8::scrolllock
  lrwxrwxrwx  1 root root 0 Nov 10 15:47 phy0-led -> 
../../devices/pci0000:00/0000:00:14.3/leds/phy0-led

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1802652/+subscriptions

-- 
Mailing list: https://launchpad.net/~kernel-packages
Post to     : kernel-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to