Model
- ASUS TUF Gaming A16 FA608WV_FA608WV (2024/2025)
- CPU: AMD Ryzen AI 9 HX (Radeon 880M iGPU)
- dGPU: NVIDIA RTX 4060 Laptop
- BIOS: FA608WV.309 (2025-10-01)
- Distro: Pop!_OS 24.04 LTS, kernel 7.0.11-76070011-generic
Problem (before fix)
Keyboard RGB backlight completely inert on Linux:
asusctl aura effect static -c ff0000 returns success but nothing happens
brightnessctl --device=asus::kbd_backlight set 3 writes value to sysfs, no physical change
rog-control-center shows the panel but color picker has no effect
Root cause
On this SKU the actual backlight controller is an ITE5570 chip on the I2C-HID bus (vendor 0B05, product 19B6), exposing the Microsoft HID LampArray standard (HID Usage Tables 1.5, Usage Page 0x59). The legacy asus::kbd_backlight sysfs node accepts writes but the EC ignores them on this hardware.
The current aura_manager::init_hid_devices filters HID devices by USB parent only, so any I2C-HID device is silently skipped and the LampArray controller is never probed.
$ ls /sys/bus/hid/devices/ | grep 0B05
0018:0B05:19B6.0002 # bus 0018 = I2C-HID
$ cat /sys/bus/hid/devices/0018:0B05:19B6.0002/uevent
DRIVER=hid-generic
HID_ID=0018:00000B05:000019B6
HID_NAME=ITE5570:00 0B05:19B6
HID_PHYS=i2c-ITE5570:00
$ sudo xxd /sys/bus/hid/devices/0018:0B05:19B6.0002/report_descriptor | grep "05 59"
→ LampArray Usage Page present
LampArrayAttributes on this SKU returns LampCount=1 (single-zone), Kind=Keyboard, bounding box ~310×144mm.
Fix
PR #147 implements the fix: #147
- Adds I2C-HID fallback discovery to
aura_manager::init_hid_devices (existing USB path untouched, walks udev parent chain for HID_ID)
- Adds
DeviceHandle::maybe_lamparray() factory in aura_types.rs
- Adds
is_lamparray: bool to Aura and a LampArray write path (HIDIOCSFEATURE [0x46, 0x00] disable autonomous + HIDIOCSFEATURE [0x45, 0x01, ..., R, G, B, I] range update) in Aura::write_effect_and_apply
- Adds
HidRaw::raw_info(), set_feature_report(), get_feature_report(), from_i2c_device() helpers in rog-platform
- Routes
set_led_mode, set_led_mode_data, set_brightness, set_aura_power zbus methods through the LampArray branch when is_lamparray=true
Net diff: +686 / -24 lines across 7 files. Zero behavior change on existing USB/asus-wmi/Slash/AniMe/Ally paths — every new code path is gated behind self.is_lamparray or the explicit I2C-HID discovery.
Test results (with PR #147 applied)
$ asusctl aura effect static -c ff0000 # keyboard turns red
$ asusctl aura effect static -c 00ff00 # green
$ asusctl aura effect static -c 0000ff # blue
[INFO asusd::aura_laptop] LampArray write_effect_and_apply: dev_type=LaptopKeyboard2021 mode=Static
[INFO asusd::aura_laptop] LampArray ready: LampCount=1 rgb=(ff,00,00) i=128
$ busctl tree xyz.ljones.Asusd
└─ /xyz/ljones/aura/lamparray_19b6
rog-control-center color picker now drives the hardware in real time.
Full write-up (userspace standalone driver + patched asusctl + screen brightness fix + hibernate setup)
https://dev.to/alessandrovezzoli/full-linux-support-for-asus-tuf-gaming-a16-fa608wv-keyboard-backlight-brightness-hibernate-18n2
Possibly related models
The same I2C-HID LampArray path is likely used on other 2024/2025 ASUS SKUs with ITE5570 controllers. If your model shows a device with vendor 0B05 on I2C-HID (bus code 0018 in HID_ID), it's a candidate. See #107 (A18), #110 (Zenbook Duo 2025), #119 (A18 FA808UM) — happy to extend the PID whitelist in a follow-up.
Model
Problem (before fix)
Keyboard RGB backlight completely inert on Linux:
asusctl aura effect static -c ff0000returns success but nothing happensbrightnessctl --device=asus::kbd_backlight set 3writes value to sysfs, no physical changerog-control-centershows the panel but color picker has no effectRoot cause
On this SKU the actual backlight controller is an ITE5570 chip on the I2C-HID bus (vendor
0B05, product19B6), exposing the Microsoft HID LampArray standard (HID Usage Tables 1.5, Usage Page0x59). The legacyasus::kbd_backlightsysfs node accepts writes but the EC ignores them on this hardware.The current
aura_manager::init_hid_devicesfilters HID devices by USB parent only, so any I2C-HID device is silently skipped and the LampArray controller is never probed.$ ls /sys/bus/hid/devices/ | grep 0B05
0018:0B05:19B6.0002 # bus 0018 = I2C-HID
$ cat /sys/bus/hid/devices/0018:0B05:19B6.0002/uevent
DRIVER=hid-generic
HID_ID=0018:00000B05:000019B6
HID_NAME=ITE5570:00 0B05:19B6
HID_PHYS=i2c-ITE5570:00
$ sudo xxd /sys/bus/hid/devices/0018:0B05:19B6.0002/report_descriptor | grep "05 59"
→ LampArray Usage Page present
LampArrayAttributeson this SKU returnsLampCount=1(single-zone),Kind=Keyboard, bounding box ~310×144mm.Fix
PR #147 implements the fix: #147
aura_manager::init_hid_devices(existing USB path untouched, walks udev parent chain forHID_ID)DeviceHandle::maybe_lamparray()factory inaura_types.rsis_lamparray: booltoAuraand a LampArray write path (HIDIOCSFEATURE [0x46, 0x00]disable autonomous +HIDIOCSFEATURE [0x45, 0x01, ..., R, G, B, I]range update) inAura::write_effect_and_applyHidRaw::raw_info(),set_feature_report(),get_feature_report(),from_i2c_device()helpers inrog-platformset_led_mode,set_led_mode_data,set_brightness,set_aura_powerzbus methods through the LampArray branch whenis_lamparray=trueNet diff: +686 / -24 lines across 7 files. Zero behavior change on existing USB/asus-wmi/Slash/AniMe/Ally paths — every new code path is gated behind
self.is_lamparrayor the explicit I2C-HID discovery.Test results (with PR #147 applied)
$ asusctl aura effect static -c ff0000 # keyboard turns red
$ asusctl aura effect static -c 00ff00 # green
$ asusctl aura effect static -c 0000ff # blue
[INFO asusd::aura_laptop] LampArray write_effect_and_apply: dev_type=LaptopKeyboard2021 mode=Static
[INFO asusd::aura_laptop] LampArray ready: LampCount=1 rgb=(ff,00,00) i=128
$ busctl tree xyz.ljones.Asusd
└─ /xyz/ljones/aura/lamparray_19b6
rog-control-centercolor picker now drives the hardware in real time.Full write-up (userspace standalone driver + patched asusctl + screen brightness fix + hibernate setup)
https://dev.to/alessandrovezzoli/full-linux-support-for-asus-tuf-gaming-a16-fa608wv-keyboard-backlight-brightness-hibernate-18n2
Possibly related models
The same I2C-HID LampArray path is likely used on other 2024/2025 ASUS SKUs with ITE5570 controllers. If your model shows a device with vendor
0B05on I2C-HID (bus code0018inHID_ID), it's a candidate. See #107 (A18), #110 (Zenbook Duo 2025), #119 (A18 FA808UM) — happy to extend the PID whitelist in a follow-up.