Symptom: on a Framework Laptop 16 (AMD Ryzen AI 300, Ubuntu 26.04), the keyboard and numpad disconnect together every 20–60 seconds, then come back a second later. If a key is down at the moment of the drop, the key-up is lost and the character repeats (aaaaaaa).

Cause: the embedded controller (EC) cuts power to the whole input deck when its “deck populated / chassis closed” detection flickers. It is not a kernel, USB, or driver problem.

Workaround: sudo framework_tool --inputdeck-mode on. Permanent fix in BIOS: Advanced → “Force Power for Input Modules”.

What it looks like from Linux

journalctl -k -f shows both USB devices leaving and returning at the same instant:

usb 3-3.2: USB disconnect, device number 48
usb 3-4.2: USB disconnect, device number 49
usb 3-3.2: new full-speed USB device number 50 using xhci_hcd
usb 3-4.2: new full-speed USB device number 51 using xhci_hcd

3-3.2 is the keyboard module (32ac:0012), 3-4.2 the numpad module (32ac:0014). They sit on different internal hub ports, so a single flaky connector can’t explain both dropping in the same millisecond. Something upstream is removing power from both.

Things that looked plausible and were not the cause:

  • USB autosuspend (/sys/module/usbcore/parameters/autosuspend): disabling it changed nothing.
  • Keyboard firmware (0.3.1) and BIOS (04.01) were current.
  • Kernel version: it happened on the Ubuntu 7.0 OEM kernel and is not a regression.

What it looks like from the EC

Framework’s EC is open source and ships a host tool, framework_tool. Its --console option reads the EC’s own log:

sudo framework_tool --console recent

Around every drop it prints an Input modules off followed by Input modules on. The EC has a detect switch for the input deck and powers the modules down when it reads “not populated”. On this unit the switch flickers, so the deck gets power-cycled.

framework_tool --versions shows the module positions the EC thinks are present:

Laptop 16 Keyboard Module - ANSI
  Firmware Version: 0.3.1
  Location: [X] [ ] [ ]       [ ] [ ]
Laptop 16 Numpad Module
  Firmware Version: 0.3.1
  Location: [ ] [ ] [ ]       [X] [ ]

Stopping it

The EC can be told to ignore the detect switch:

sudo framework_tool --inputdeck-mode on

The drops stop immediately. The setting resets to auto on every reboot, so either run it each boot (I keep it as a shell alias) or set it in the BIOS: Advanced → Force Power for Input Modules, which survives reboots.

Both treat the symptom. The underlying detect switch or module seating problem is still open; re-seating the modules (slide the input deck latch, lift, re-insert) is the first thing to try, and a Framework support ticket is the next.

If you want to check yours

  1. journalctl -k -f and wait for a paired disconnect of 32ac:0012 and 32ac:0014.
  2. sudo framework_tool --console recent and look for Input modules off/on.
  3. sudo framework_tool --inputdeck-mode on and confirm the drops stop.