12th gen not sending XF86MonBrightnessUp / Down

Just got my new 12th gen framework, swapped drives, added a skin, realized I was sent an AZERTY keyboard, and booted up.

Loaded in to sway exactly as configured on my 11th gen, but the brightness keys don’t work.

System Info:

  • linux518
  • i5-1240P
  • BIOS ver 03.04
  • AZERTY physical layout with QWERTY config

Tried on both fresh debian liveUSB and on my arch setup.

  • wev in sway doesn’t register brightness.
  • xev in i3 doesn’t register brightness.
  • fn + brightness register F7 and F8 properly
  • Volume and media keys register

I submitted a ticket to get the US English keyboard I ordered, but I want to see if anyone else has this issue.

3 Likes

Same problem here. Seems like EC problem.
sudo evtest /dev/input/event2 does confirm that the keyboard is "AT Translated Set 2 keyboard". However, it does not detect brightness keys at all.

I’m waiting for more information from framework team…

Edit: Confirmed from the source code, F7 and F8 do something with the HID, so thay does not emit XF86MonBrightnessUp / Down key event.

The EC HID device should show up as another input device, under the “consumer control” category. On my machine it’s like, input13 or something. That one should definitely emit the brightness events.

I can’t find anything like this… I see on another thread, someone managed to solve this by reinstalling his/her OS. It will be very complicated for me if I have to do the same.

/dev/input/event0:	Lid Switch
/dev/input/event1:	Power Button
/dev/input/event2:	AT Translated Set 2 keyboard
/dev/input/event3:	Logitech K400 Plus
/dev/input/event4:	Logitech M585/M590
/dev/input/event5:	Laptop Camera: Laptop Camera
/dev/input/event6:	PC Speaker
/dev/input/event7:	ImExPS/2 Generic Explorer Mouse
/dev/input/event8:	PIXA3854:00 093A:0274 Mouse
/dev/input/event9:	PIXA3854:00 093A:0274 Touchpad
/dev/input/event10:	Video Bus
/dev/input/event11:	HDA Intel PCH Mic
/dev/input/event12:	HDA Intel PCH Headphone
/dev/input/event13:	HDA Intel PCH HDMI/DP,pcm=3
/dev/input/event14:	HDA Intel PCH HDMI/DP,pcm=7
/dev/input/event15:	HDA Intel PCH HDMI/DP,pcm=8
/dev/input/event16:	HDA Intel PCH HDMI/DP,pcm=9
/dev/input/event17:	HDA Intel PCH HDMI/DP,pcm=10
/dev/input/event18:	HDA Intel PCH HDMI/DP,pcm=11
/dev/input/event19:	HDA Intel PCH HDMI/DP,pcm=12
/dev/input/event20:	HDA Intel PCH HDMI/DP,pcm=13
/dev/input/event21:	HDA Intel PCH HDMI/DP,pcm=14
/dev/input/event22:	HDA Intel PCH HDMI/DP,pcm=15
/dev/input/event23:	HDA Intel PCH HDMI/DP,pcm=16
/dev/input/event24:	HDA Intel PCH HDMI/DP,pcm=17
/dev/input/event25:	input-remapper keyboard
/dev/input/event26:	input-remapper Logitech M585/M590 forwarded
/dev/input/event27:	input-remapper AT Translated Set 2 keyboard forwarded
/dev/input/event28:	DP-4
/dev/input/event29:	SHANWAN PS3/PC Gamepad
/dev/input/event30:	GeneralPlus USB Audio Device
/dev/input/event31:	Keyboard K380 Keyboard

It may be worth checking your kernel config to verify that you have support for the I2C controller the EC is connected to compiled in.

Then again, given that you do have a working touchpad (which is present in the list above) this seems somewhat unlikely.

The config seems to be fine. However, CONFIG_I2C_HID_ACPI is configured as a module, so I’m not sure if it’s the cause.

I tried modprobe i2c_hid_acpi but nothing changes.

CONFIG_I2C=y
...
CONFIG_I2C_VIAPRO=m
CONFIG_I2C_SCMI=m
# CONFIG_I2C_CBUS_GPIO is not set
CONFIG_I2C_DESIGNWARE_CORE=y
CONFIG_I2C_DESIGNWARE_SLAVE=y
CONFIG_I2C_DESIGNWARE_PLATFORM=y
CONFIG_I2C_DESIGNWARE_AMDPSP=y
CONFIG_I2C_DESIGNWARE_BAYTRAIL=y
CONFIG_I2C_DESIGNWARE_PCI=y
# CONFIG_I2C_EMEV2 is not set
...
# CONFIG_I2C_SI4713 is not set
CONFIG_I2C_HID_ACPI=m
CONFIG_I2C_HID_CORE=m

I think I have the same issue here on Debian sid on a 12th gen Intel Framework, where the brightness keys and the airplane mode key are not showing up in any /dev/input/event*. Touchpad and other keys are all working normally.

Interestingly, there is a “Consumer Control” entry in dmesg next to “Wireless Radio Control”.

That is interesting! Can you share some of the context around it?

Yup, here’s an excerpt from dmesg around the input info and then also what /proc/bus/input/devices contains (if that’s useful)

dmesg excerpt
[    1.602517] i8042: PNP: PS/2 Controller [PNP0303:PS2K,PNP0f03:PS2M] at 0x60,0x64 irq 1,12
[    1.604593] i8042: Warning: Keylock active
[    1.609391] serio: i8042 KBD port at 0x60,0x64 irq 1
[    1.609393] serio: i8042 AUX port at 0x60,0x64 irq 12
[    1.609530] mousedev: PS/2 mouse device common for all mice
[    1.609672] rtc_cmos 00:01: RTC can wake from S4
[    1.612270] rtc_cmos 00:01: registered as rtc0
[    1.612856] rtc_cmos 00:01: setting system clock to 2022-07-30T23:30:32 UTC (1659223832)
[    1.612863] rtc_cmos 00:01: alarms up to one month, y3k, 242 bytes nvram
[    1.614396] intel_pstate: Intel P-state driver initializing
[    1.616521] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input0
[    1.616776] intel_pstate: HWP enabled
[    1.617615] ledtrig-cpu: registered to indicate activity on CPUs
[    1.617720] efifb: probing for efifb
[    1.617737] efifb: framebuffer at 0x4000000000, using 13312k, total 13312k
[    1.617738] efifb: mode is 2256x1504x32, linelength=9024, pages=1
[    1.617739] efifb: scrolling: redraw
[    1.617739] efifb: Truecolor: size=8:8:8:8, shift=24:16:8:0
[    1.617845] Console: switching to colour frame buffer device 141x47
[    1.620362] fb0: EFI VGA frame buffer device
[    1.626818] NET: Registered PF_INET6 protocol family
[    1.630031] Segment Routing with IPv6
[    1.630033] In-situ OAM (IOAM) with IPv6
[    1.630041] mip6: Mobile IPv6
[    1.630042] NET: Registered PF_PACKET protocol family
[    1.630258] mpls_gso: MPLS GSO support
[    1.632218] microcode: sig=0x906a3, pf=0x80, revision=0x41d
[    1.633160] microcode: Microcode Update Driver: v2.2.
[    1.633165] IPI shorthand broadcast: enabled
[    1.633171] sched_clock: Marking stable (1612155931, 20043321)->(1649241394, -17042142)
[    1.633767] registered taskstats version 1
[    1.633769] Loading compiled-in X.509 certificates
[    1.659276] Loaded X.509 cert 'Debian Secure Boot CA: 6ccece7e4c6c0d1f6149f3dd27dfcc5cbb419ea1'
[    1.659284] Loaded X.509 cert 'Debian Secure Boot Signer 2021 - linux: 4b6ef5abca669825178e052c84667ccbc0531f8c'
[    1.660951] zswap: loaded using pool lzo/zbud
[    1.661745] Key type ._fscrypt registered
[    1.661746] Key type .fscrypt registered
[    1.661747] Key type fscrypt-provisioning registered
[    1.664772] Key type encrypted registered
[    1.664776] AppArmor: AppArmor sha1 policy hashing enabled
[    1.667008] integrity: Loading X.509 certificate: UEFI:db
[    1.667044] integrity: Loaded X.509 cert 'Microsoft Windows Production PCA 2011: a92902398e16c49778cd90f99e4f9ae17c55af53'
[    1.667044] integrity: Loading X.509 certificate: UEFI:db
[    1.667052] integrity: Loaded X.509 cert 'Microsoft Corporation UEFI CA 2011: 13adbf4309bd82709c8cd54f316ed522988a1bd4'
[    1.667052] integrity: Loading X.509 certificate: UEFI:db
[    1.667056] integrity: Loaded X.509 cert 'frame.work-LaptopADLDB: 02'
[    1.668501] ima: Allocated hash algorithm: sha256
[    1.704392] ima: No architecture policies found
[    1.704405] evm: Initialising EVM extended attributes:
[    1.704406] evm: security.selinux
[    1.704407] evm: security.SMACK64 (disabled)
[    1.704407] evm: security.SMACK64EXEC (disabled)
[    1.704408] evm: security.SMACK64TRANSMUTE (disabled)
[    1.704408] evm: security.SMACK64MMAP (disabled)
[    1.704408] evm: security.apparmor
[    1.704409] evm: security.ima
[    1.704409] evm: security.capability
[    1.704410] evm: HMAC attrs: 0x1
[    1.754268] Freeing unused decrypted memory: 2036K
[    1.754845] Freeing unused kernel image (initmem) memory: 2704K
[    1.777760] Write protecting the kernel read-only data: 24576k
[    1.778628] Freeing unused kernel image (text/rodata gap) memory: 2040K
[    1.779161] Freeing unused kernel image (rodata/data gap) memory: 1664K
[    1.787971] x86/mm: Checked W+X mappings: passed, no W+X pages found.
[    1.788077] Run /init as init process
[    1.788091]   with arguments:
[    1.788097]     /init
[    1.788099]   with environment:
[    1.788100]     HOME=/
[    1.788100]     TERM=linux
[    1.788100]     BOOT_IMAGE=/boot/vmlinuz-5.18.0-3-amd64
[    1.853451] input: Lid Switch as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:1e/PNP0C09:00/PNP0C0D:00/input/input2
[    1.854362] ACPI: button: Lid Switch [LID0]
[    1.854564] ACPI: battery: Slot [BAT1] (battery present)
[    1.856137] hid: raw HID events driver (C) Jiri Kosina
[    1.857212] input: Power Button as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0C:00/input/input3
[    1.860051] acpi PNP0C14:01: duplicate WMI GUID 05901221-D566-11D1-B2F0-00A0C9062910 (first instance was on PNP0C14:00)
[    1.863636] i801_smbus 0000:00:1f.4: SPD Write Disable is set
[    1.863812] i801_smbus 0000:00:1f.4: SMBus using PCI interrupt
[    1.868797] ACPI: bus type thunderbolt registered
[    1.869825] i2c i2c-0: 2/2 memory slots populated (from DMI)
[    1.870616] ACPI: bus type USB registered
[    1.871080] usbcore: registered new interface driver usbfs
[    1.871476] usbcore: registered new interface driver hub
[    1.871569] i2c i2c-0: Successfully instantiated SPD at 0x50
[    1.871831] usbcore: registered new device driver usb
[    1.873855] ACPI: button: Power Button [PWRB]
[    1.874244] ACPI: bus type drm_connector registered
[    1.881526] intel-lpss 0000:00:15.0: enabling device (0004 -> 0006)
[    1.881966] idma64 idma64.0: Found Intel integrated DMA 64-bit
[    1.883270] xhci_hcd 0000:00:14.0: xHCI Host Controller
[    1.883276] xhci_hcd 0000:00:14.0: new USB bus registered, assigned bus number 1
[    1.884507] xhci_hcd 0000:00:14.0: hcc params 0x20007fc1 hci version 0x120 quirks 0x0000000200009810
[    1.884810] xhci_hcd 0000:00:14.0: xHCI Host Controller
[    1.884811] xhci_hcd 0000:00:14.0: new USB bus registered, assigned bus number 2
[    1.884812] xhci_hcd 0000:00:14.0: Host supports USB 3.1 Enhanced SuperSpeed
[    1.884860] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.18
[    1.884861] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.884862] usb usb1: Product: xHCI Host Controller
[    1.884863] usb usb1: Manufacturer: Linux 5.18.0-3-amd64 xhci-hcd
[    1.884864] usb usb1: SerialNumber: 0000:00:14.0
[    1.885030] hub 1-0:1.0: USB hub found
[    1.885066] hub 1-0:1.0: 12 ports detected
[    1.888251] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 5.18
[    1.888254] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.888255] usb usb2: Product: xHCI Host Controller
[    1.888256] usb usb2: Manufacturer: Linux 5.18.0-3-amd64 xhci-hcd
[    1.888257] usb usb2: SerialNumber: 0000:00:14.0
[    1.888321] hub 2-0:1.0: USB hub found
[    1.888353] hub 2-0:1.0: 4 ports detected
[    1.888744] usb: port power management may be unreliable
[    1.890537] nvme 0000:01:00.0: platform quirk: setting simple suspend
[    1.890571] nvme nvme0: pci function 0000:01:00.0
[    1.913862] intel-lpss 0000:00:15.1: enabling device (0004 -> 0006)
[    1.914284] idma64 idma64.1: Found Intel integrated DMA 64-bit
[    1.921149] nvme nvme0: 20/0/0 default/read/poll queues
[    1.926085]  nvme0n1: p1 p2 p3
[    1.937663] intel-lpss 0000:00:15.3: enabling device (0004 -> 0006)
[    1.938278] idma64 idma64.2: Found Intel integrated DMA 64-bit
[    2.109340] input: FRMW0001:00 32AC:0006 Wireless Radio Control as /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-2/i2c-FRMW0001:00/0018:32AC:0006.0001/input/input5
[    2.109380] input: FRMW0001:00 32AC:0006 Consumer Control as /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-2/i2c-FRMW0001:00/0018:32AC:0006.0001/input/input6
[    2.109393] input: FRMW0001:00 32AC:0006 as /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-2/i2c-FRMW0001:00/0018:32AC:0006.0001/input/input7
[    2.109419] hid-generic 0018:32AC:0006.0001: input,hidraw0: I2C HID v1.00 Device [FRMW0001:00 32AC:0006] on i2c-FRMW0001:00
[    2.109716] input: PIXA3854:00 093A:0274 Mouse as /devices/pci0000:00/0000:00:15.3/i2c_designware.2/i2c-3/i2c-PIXA3854:00/0018:093A:0274.0002/input/input8
[    2.109765] input: PIXA3854:00 093A:0274 Touchpad as /devices/pci0000:00/0000:00:15.3/i2c_designware.2/i2c-3/i2c-PIXA3854:00/0018:093A:0274.0002/input/input9
[    2.110022] hid-generic 0018:093A:0274.0002: input,hidraw1: I2C HID v1.00 Mouse [PIXA3854:00 093A:0274] on i2c-PIXA3854:00
[    2.174326] i915 0000:00:02.0: [drm] VT-d active for gfx access
[    2.174401] Console: switching to colour dummy device 80x25
[    2.174427] i915 0000:00:02.0: vgaarb: deactivate vga console
[    2.174459] i915 0000:00:02.0: [drm] Transparent Hugepage mode 'huge=within_size'
[    2.175217] i915 0000:00:02.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=io+mem:owns=io+mem
[    2.175286] i915 0000:00:02.0: firmware: direct-loading firmware i915/adlp_dmc_ver2_14.bin
[    2.177191] i915 0000:00:02.0: [drm] Finished loading DMC firmware i915/adlp_dmc_ver2_14.bin (v2.14)
[    2.183778] xhci_hcd 0000:00:0d.0: xHCI Host Controller
[    2.183785] xhci_hcd 0000:00:0d.0: new USB bus registered, assigned bus number 3
[    2.184958] xhci_hcd 0000:00:0d.0: hcc params 0x20007fc1 hci version 0x120 quirks 0x0000000200009810
[    2.185145] xhci_hcd 0000:00:0d.0: xHCI Host Controller
[    2.185148] xhci_hcd 0000:00:0d.0: new USB bus registered, assigned bus number 4
[    2.185151] xhci_hcd 0000:00:0d.0: Host supports USB 3.2 Enhanced SuperSpeed
[    2.185215] usb usb3: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.18
[    2.185218] usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    2.185220] usb usb3: Product: xHCI Host Controller
[    2.185221] usb usb3: Manufacturer: Linux 5.18.0-3-amd64 xhci-hcd
[    2.185221] usb usb3: SerialNumber: 0000:00:0d.0
[    2.185310] hub 3-0:1.0: USB hub found
[    2.185317] hub 3-0:1.0: 1 port detected
[    2.185485] usb usb4: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 5.18
[    2.185491] usb usb4: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    2.185492] usb usb4: Product: xHCI Host Controller
[    2.185493] usb usb4: Manufacturer: Linux 5.18.0-3-amd64 xhci-hcd
[    2.185494] usb usb4: SerialNumber: 0000:00:0d.0
[    2.185577] hub 4-0:1.0: USB hub found
[    2.185595] hub 4-0:1.0: 4 ports detected
cat /proc/bus/input/devices
I: Bus=0011 Vendor=0001 Product=0001 Version=ab83
N: Name="AT Translated Set 2 keyboard"
P: Phys=isa0060/serio0/input0
S: Sysfs=/devices/platform/i8042/serio0/input/input0
U: Uniq=
H: Handlers=sysrq kbd leds event0 
B: PROP=0
B: EV=120013
B: KEY=402000000 3803078f800d001 feffffdfffefffff fffffffffffffffe
B: MSC=10
B: LED=7

I: Bus=0019 Vendor=0000 Product=0005 Version=0000
N: Name="Lid Switch"
P: Phys=PNP0C0D/button/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:1e/PNP0C09:00/PNP0C0D:00/input/input2
U: Uniq=
H: Handlers=event1 
B: PROP=0
B: EV=21
B: SW=1

I: Bus=0019 Vendor=0000 Product=0001 Version=0000
N: Name="Power Button"
P: Phys=PNP0C0C/button/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0C:00/input/input3
U: Uniq=
H: Handlers=kbd event2 
B: PROP=0
B: EV=3
B: KEY=10000000000000 0

I: Bus=0011 Vendor=0002 Product=0006 Version=0000
N: Name="ImExPS/2 Generic Explorer Mouse"
P: Phys=isa0060/serio1/input0
S: Sysfs=/devices/platform/i8042/serio1/input/input4
U: Uniq=
H: Handlers=mouse2 event5 
B: PROP=1
B: EV=7
B: KEY=1f0000 0 0 0 0
B: REL=143

I: Bus=0019 Vendor=0000 Product=0006 Version=0000
N: Name="Video Bus"
P: Phys=LNXVIDEO/video/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:00/input/input10
U: Uniq=
H: Handlers=kbd event6 
B: PROP=0
B: EV=3
B: KEY=3e000b00000000 0 0 0

I: Bus=0003 Vendor=0bda Product=5634 Version=0021
N: Name="Laptop Camera: Laptop Camera"
P: Phys=usb-0000:00:14.0-7/button
S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.0/input/input11
U: Uniq=
H: Handlers=kbd event3 
B: PROP=0
B: EV=3
B: KEY=100000 0 0 0

I: Bus=0018 Vendor=093a Product=0274 Version=0100
N: Name="PIXA3854:00 093A:0274 Mouse"
P: Phys=i2c-PIXA3854:00
S: Sysfs=/devices/pci0000:00/0000:00:15.3/i2c_designware.2/i2c-3/i2c-PIXA3854:00/0018:093A:0274.0002/input/input12
U: Uniq=
H: Handlers=mouse0 event4 
B: PROP=2
B: EV=17
B: KEY=1 30000 0 0 0 0
B: REL=3
B: MSC=10

I: Bus=0018 Vendor=093a Product=0274 Version=0100
N: Name="PIXA3854:00 093A:0274 Touchpad"
P: Phys=i2c-PIXA3854:00
S: Sysfs=/devices/pci0000:00/0000:00:15.3/i2c_designware.2/i2c-3/i2c-PIXA3854:00/0018:093A:0274.0002/input/input13
U: Uniq=
H: Handlers=mouse1 event7 
B: PROP=5
B: EV=1b
B: KEY=e520 30000 0 0 0 0
B: ABS=2e0800000000003
B: MSC=20

I: Bus=0001 Vendor=111d Product=7695 Version=0001
N: Name="HDA Digital PCBeep"
P: Phys=card0/codec#0/beep0
S: Sysfs=/devices/pci0000:00/0000:00:1f.3/sound/card0/input14
U: Uniq=
H: Handlers=kbd event8 
B: PROP=0
B: EV=40001
B: SND=6

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel PCH Mic"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1f.3/sound/card0/input15
U: Uniq=
H: Handlers=event9 
B: PROP=0
B: EV=21
B: SW=10

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel PCH Headphone"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1f.3/sound/card0/input16
U: Uniq=
H: Handlers=event10 
B: PROP=0
B: EV=21
B: SW=4

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel PCH HDMI/DP,pcm=3"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1f.3/sound/card0/input17
U: Uniq=
H: Handlers=event11 
B: PROP=0
B: EV=21
B: SW=140

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel PCH HDMI/DP,pcm=7"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1f.3/sound/card0/input18
U: Uniq=
H: Handlers=event12 
B: PROP=0
B: EV=21
B: SW=140

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel PCH HDMI/DP,pcm=8"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1f.3/sound/card0/input19
U: Uniq=
H: Handlers=event13 
B: PROP=0
B: EV=21
B: SW=140

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel PCH HDMI/DP,pcm=9"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1f.3/sound/card0/input20
U: Uniq=
H: Handlers=event14 
B: PROP=0
B: EV=21
B: SW=140

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel PCH HDMI/DP,pcm=10"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1f.3/sound/card0/input21
U: Uniq=
H: Handlers=event15 
B: PROP=0
B: EV=21
B: SW=140

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel PCH HDMI/DP,pcm=11"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1f.3/sound/card0/input22
U: Uniq=
H: Handlers=event16 
B: PROP=0
B: EV=21
B: SW=140

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel PCH HDMI/DP,pcm=12"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1f.3/sound/card0/input23
U: Uniq=
H: Handlers=event17 
B: PROP=0
B: EV=21
B: SW=140

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel PCH HDMI/DP,pcm=13"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1f.3/sound/card0/input24
U: Uniq=
H: Handlers=event18 
B: PROP=0
B: EV=21
B: SW=140

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel PCH HDMI/DP,pcm=14"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1f.3/sound/card0/input25
U: Uniq=
H: Handlers=event19 
B: PROP=0
B: EV=21
B: SW=140

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel PCH HDMI/DP,pcm=15"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1f.3/sound/card0/input26
U: Uniq=
H: Handlers=event20 
B: PROP=0
B: EV=21
B: SW=140

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel PCH HDMI/DP,pcm=16"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1f.3/sound/card0/input27
U: Uniq=
H: Handlers=event21 
B: PROP=0
B: EV=21
B: SW=140

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel PCH HDMI/DP,pcm=17"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1f.3/sound/card0/input28
U: Uniq=
H: Handlers=event22 
B: PROP=0
B: EV=21
B: SW=140

I: Bus=0010 Vendor=001f Product=0001 Version=0100
N: Name="PC Speaker"
P: Phys=isa0061/input0
S: Sysfs=/devices/platform/pcspkr/input/input29
U: Uniq=
H: Handlers=kbd event23 
B: PROP=0
B: EV=40001
B: SND=6

Yeah, it’s definitely there and getting assigned input5 through input7! I wonder if the missing Sensor profile for input7 is causing the entire device to be ignored…

A bit of backstory: The 12th Gen laptop exposes the ambient light sensor via HID the same way it exposes the RFKill and brightness keys–as a sensor usage page off of the I2C HID device with the ACPI name FRMW0001:00.

It’s interesting that it says this in your kernel log:

input: FRMW0001:00 32AC:0006 Wireless Radio Control as /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-2/i2c-FRMW0001:00/0018:32AC:0006.0001/input/input5
input: FRMW0001:00 32AC:0006 Consumer Control as /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-2/i2c-FRMW0001:00/0018:32AC:0006.0001/input/input6
input: FRMW0001:00 32AC:0006 as /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-2/i2c-FRMW0001:00/0018:32AC:0006.0001/input/input7
                            ^
Blank usage page name! ----/

@Kieran_Levin mentioned the following on Discord when we were talking about exposing the ALS over I2C:

Unfortunately it breaks some support on Linux due to the way the kernel loads libinput vs hid sensor class drivers. And fixing it properly would require a big kernel refactor.

I didn’t realize at the time, but this might be what he was talking about.
It may, for now, be a known issue. :slight_smile:

this is a linux kernel problem that is kind of tricky to solve. As the way the linux kernel is written devices can be either registered as a hid-sensor or libinput device, but we have a compound device that is both.
If you look at dmesg on boot you will see the ec hid endpoint is registered as a libinput device and then taken over by the hid-sensor-hub driver.

I have a thread with some of the linux hid subsystem maintainers, and the conclusion is the way the Linux Kernel is currently written, we should just write a framework driver to support both.

Right now on linux the hid-sensor-hub removes support for input device nodes, so you can only use the ALS or keyboard hotkeys.
By default the ALS will work but hotkeys do not.

You can enable the hotkey support by blacklisting the hid-sensor-hub driver:
vi /etc/modprobe.d/framework-als-blacklist.conf
Add the following:
blacklist hid-sensor-hub
And then restart.

5 Likes

basically what happens is in drivers/hid/hid-sensor-hub.c in sensor_hub_probe if any part of the descriptor matches a HID_SENSOR_* device, then the entire device will become a sensor_hub device. And all of the endpoints will be unbound from being an input device.

1 Like

So are we saying there’s an action item here:
Framework to update Linux guides for 12th gen boards?
Already there.

Are we also saying there’s an action item here too:
Framework to develop driver to support both modes?

I guess I’m asking: What’s the path forward, and what does it mean?

Oh I figured it out! It is the last step in this guide: Fedora 36 Installation on the Framework Laptop - Framework Guides

There is one known issue that is specific to systems with 12th Gen Intel Core. The ALS and the brightness up/down keys conflict on currently shipping kernels. You can disable the ALS to restore brightness up/down functionality with the following command (making sure you’ve first updated your packages to get the latest kernel available):

sudo grubby --update-kernel=ALL --args="module_blacklist=hid_sensor_hub"

After running the command, you need to restart the computer

Thank you for the background, the technical details are super interesting.

Since it sounds like either the hotkeys will work or the ambient light sensor will work at the moment and not both, I’m going to keep the ambient light sensor functionality since I can still adjust it manually if needed.

But thanks for the workaround if others would rather have the hotkeys, and looking forward to when they both work!

So basically we need a driver? Is Framework Computer interested in investing money, making the driver?
If not, can this be solved at the EC level by modifying what it sends (or it would be incompatible with windows)?

For me, I never liked the ALS functions too much, so I will stick with it disabled on my 12th gen batch 2 (if by that time, Framework Computer hasn’t made a driver for it)

I was able to reproduce this issue on both Fedora 36 and Windows 11.
I upgraded from the 11th gen i7-1165G7 to the 12th gen i7-1260P and found that the brightness buttons don’t work.
The problem was resolved in Windows 11 after installing the driver bundle. No fix in Fedora 36 however.

1 Like

@Kieran_Levin I guess you meant (note the _ instead of -):

blacklist hid_sensor_hub

Update: on Ubuntu 22.04, I also had to run update-initramfs -u before the reboot for the changes to take effect.

4 Likes

Unfortunately blacklisting the kernel module didn’t do the trick. It did get blacklisted, as evident by the output of lsmod, but the brightness keys aren’t detected by KDE Plasma and xinput on Arch Linux.

@ConfuSomu It’s working here on my Arch, did you forget to run mkinitcpio -p linux ?