Summary
On a fresh CachyOS install of this exact B9406CAA (BIOS 312, Linux 7.2.3-1-cachyos, linux-firmware 20260810) there is no iio als device at all. check-hardware.sh reports no iio 'als' device — keyboard-backlight-auto has nothing to read, and installing keyboard-backlight-auto gives a daemon with no sensor. The only iio device is the webcam's proximity sensor (prox, USB 3277:0098).
The keyboard-backlight-auto README describes iio:device1 = als as a given, but nothing in the repo explains how that device comes to exist. On my machine it needs a step the repo does not have.
Evidence
The sensor is a HID sensor behind the Intel Integrated Sensor Hub (00:12.0, 8086:e445). The ISH only runs once the kernel uploads a firmware image into it, and this board rejects the generic one:
$ journalctl -k -b | grep 'ISH loader'
intel_ish_ipc 0000:00:12.0: ISH loader: load firmware: intel/ish/ish_ptl.bin
intel_ish_ipc 0000:00:12.0: ISH loader: cmd 2 failed 10
intel_ish_ipc 0000:00:12.0: ISH loader: cmd 2 failed 10
intel_ish_ipc 0000:00:12.0: ISH loader: cmd 2 failed 10
$ ls /sys/bus/ishtp/devices/ # empty
Before that fallback the loader asks for a per-OEM file named intel/ish/ish_<platform>_<crc32(sys_vendor)>_<crc32(product_family)>.bin. The rule is not written down anywhere I could find, but it reproduces linux-firmware's own entries exactly:
| DMI string |
CRC-32 |
linux-firmware file |
LENOVO |
53c4ffad |
ish_ptl_53c4ffad_75d6ebe2.bin |
ThinkPad X1 Carbon Gen 14 |
75d6ebe2 |
↑ |
Dell Inc. |
39ceeaf8 |
ish_ptl_39ceeaf8.bin |
ASUS |
59b8d9f2 |
none |
ASUS EXPERTBOOK |
84881981 |
none |
linux-firmware 20260810 carries Panther Lake ISH images from Lenovo, Dell and HP only (each under that vendor's own licence file). There is no ASUS image, so the kernel ends up with the generic ish_ptl.bin, which the ISH's security engine refuses.
ASUS ships the matching signed image in its Windows Intel Sensor Hub V5.8.62.0 driver package (5 MB, SensorHub_CC_Intel_Z_V5.8.62.0_48695.exe) as IshHeciExtensionTemplate/x64/FWImage/0004/AsusSign_ishS_SI_B9406CAA_5.8.1.7783.bin — same $CPD/ISHM container as ish_ptl.bin, one build newer than the generic 5.8.1.7778, same build as Dell's 581.7783.0.
Installing that file as /lib/firmware/intel/ish/ish_ptl_59b8d9f2_84881981.bin and reloading intel_ish_ipc:
intel_ish_ipc 0000:00:12.0: ISH loader: load firmware: intel/ish/ish_ptl_59b8d9f2_84881981.bin
intel_ish_ipc 0000:00:12.0: ISH loader: firmware loaded. size:420352
intel_ish_ipc 0000:00:12.0: ISH loader: FW base version: 5.8.1.7783
ish-hid {33AECD58-B679-4E54-9BD9-A04D34F0C226}: [hid-ish]: enum_devices_done OK, num_hid_devices=1
hid-sensor-hub 001F:8087:0AC2.0009: hidraw8: SENSOR HUB HID v2.00 Device [hid-ishtp 8087:0AC2]
$ cat /sys/bus/iio/devices/iio:device*/name
prox
als
After that keyboard-backlight-auto works as documented (24.8 lux | bucket 3 (12-32 lux, 70%) | level 2/3). It survives reboots; the image is uploaded to ISH RAM each boot, nothing is flashed.
Proposal
A small ish-firmware module built exactly like camera-firmware (fixed ASUS URL, pinned SHA-256 of the EXE and of the extracted image, carve the 7z resource, never run the Windows program, never redistribute the file), plus an ISH line in check-hardware.sh and a prerequisite note in the keyboard-backlight-auto README. I have it working and tested on this machine and will link the PR here.
Long term the right home is linux-firmware, but only ASUS can grant that redistribution licence the way Lenovo/Dell/HP did — which is also why the module downloads from ASUS instead of bundling the file.
Question for you: does your reference machine get its als device this way too, or is there another path I'm missing?
Summary
On a fresh CachyOS install of this exact B9406CAA (BIOS 312, Linux 7.2.3-1-cachyos, linux-firmware 20260810) there is no iio
alsdevice at all.check-hardware.shreportsno iio 'als' device — keyboard-backlight-auto has nothing to read, and installingkeyboard-backlight-autogives a daemon with no sensor. The only iio device is the webcam's proximity sensor (prox, USB3277:0098).The
keyboard-backlight-autoREADME describesiio:device1=alsas a given, but nothing in the repo explains how that device comes to exist. On my machine it needs a step the repo does not have.Evidence
The sensor is a HID sensor behind the Intel Integrated Sensor Hub (
00:12.0,8086:e445). The ISH only runs once the kernel uploads a firmware image into it, and this board rejects the generic one:Before that fallback the loader asks for a per-OEM file named
intel/ish/ish_<platform>_<crc32(sys_vendor)>_<crc32(product_family)>.bin. The rule is not written down anywhere I could find, but it reproduces linux-firmware's own entries exactly:LENOVO53c4ffadish_ptl_53c4ffad_75d6ebe2.binThinkPad X1 Carbon Gen 1475d6ebe2Dell Inc.39ceeaf8ish_ptl_39ceeaf8.binASUS59b8d9f2ASUS EXPERTBOOK84881981linux-firmware 20260810 carries Panther Lake ISH images from Lenovo, Dell and HP only (each under that vendor's own licence file). There is no ASUS image, so the kernel ends up with the generic
ish_ptl.bin, which the ISH's security engine refuses.ASUS ships the matching signed image in its Windows Intel Sensor Hub V5.8.62.0 driver package (5 MB,
SensorHub_CC_Intel_Z_V5.8.62.0_48695.exe) asIshHeciExtensionTemplate/x64/FWImage/0004/AsusSign_ishS_SI_B9406CAA_5.8.1.7783.bin— same$CPD/ISHMcontainer asish_ptl.bin, one build newer than the generic 5.8.1.7778, same build as Dell's581.7783.0.Installing that file as
/lib/firmware/intel/ish/ish_ptl_59b8d9f2_84881981.binand reloadingintel_ish_ipc:After that
keyboard-backlight-autoworks as documented (24.8 lux | bucket 3 (12-32 lux, 70%) | level 2/3). It survives reboots; the image is uploaded to ISH RAM each boot, nothing is flashed.Proposal
A small
ish-firmwaremodule built exactly likecamera-firmware(fixed ASUS URL, pinned SHA-256 of the EXE and of the extracted image, carve the 7z resource, never run the Windows program, never redistribute the file), plus an ISH line incheck-hardware.shand a prerequisite note in thekeyboard-backlight-autoREADME. I have it working and tested on this machine and will link the PR here.Long term the right home is linux-firmware, but only ASUS can grant that redistribution licence the way Lenovo/Dell/HP did — which is also why the module downloads from ASUS instead of bundling the file.
Question for you: does your reference machine get its
alsdevice this way too, or is there another path I'm missing?