Can't use keyboard.frame.work after firware upgrade?

Haven’t messed with the keyboard website in a while, after going to it today, I cant seem to manage my keyboard or numpad?

Errors below:

22:21:31.713

* NotAllowedError: Failed to open the device.

* Device: Framework Laptop 16 Keyboard Module - ANSI
* Vid: 0x32AC
* Pid: 0x0012

22:21:31.740

* Received invalid protocol version from device

* Device: Framework Laptop 16 Keyboard Module - ANSI
* Vid: 0x32AC
* Pid: 0x0012

Any ideas?

2 Likes

I tried messing with the permissions of /dev/hidraw12 and that worked… once

I tried qmk udev rules, I tried the Framework udev rules, neither seems to work..

Downgraded the keyboard firmware - same issue.

Just a bump on this - can someone running Fedora, on the current firmware, confirm if they can access keyboard.frame.work?

I have no problems on Bazzite (very fancy Fedora Silverblue/Kinoite).

Framework Laptop 16"
Bazzite Linux 43 (GNOME) (whatever the latest minor version is, I have it)
UEFI/BIOS 4.0.2
ANSI Keyboard (1st gen) firmware 0.31
Numpad (1st gen) firmware 0.31

I assume you did the udev rules?

Can you give me the output of:

ls -l /dev/hidraw*

And:

ls -l /etc/udev/rules.d/

So I finalyl got this fixed.

I pulled the udev rules provided from the guides here - provided by @Matt_Hartley :

wget https://raw.githubusercontent.com/qmk/qmk_firmware/master/util/udev/50-qmk.rules && sudo cp 50-qmk.rules /etc/udev/rules.d/ && sudo udevadm control --reload-rules && sudo udevadm trigger

And, even after following the guide, it wouldn’t work (I did this guide like 15 times… just saying)

I am not sure whats going on, but I did notice a couple things:

1. VendorID 32ac is not in the above list
2. hidraw for me is all owned by "root:root" and I do not have a goup "plugdev"

So I finally decided to append the following to the udev rules:

SUBSYSTEMS=="usb", ATTRS{idVendor}=="32ac", ATTRS{idProduct}=="0014", TAG+="uaccess"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="32ac", ATTRS{idProduct}=="0012", TAG+="uaccess"

And it worked.. Not sure what changed, and why I had to add that manually now - but might be worth adding this to the official guide if the other one is going to be finicky.

2 Likes

I don’t understand what that means, so I think no.
The only time I touch terminal was to enable Bluetooth LE Audio and LC3 codec (edit: except fwupdmgr related commands). Even then I believe I did not execute commands, only edited config files.

crw-rw-rw-. 1 root root 241,  0 Nov 21 04:53 /dev/hidraw0
crw-rw-rw-+ 1 root root 241,  1 Nov 21 02:30 /dev/hidraw1
crw-rw-rw-+ 1 root root 241, 10 Nov 21 02:30 /dev/hidraw10
crw-rw-rw-+ 1 root root 241, 11 Nov 21 06:29 /dev/hidraw11
crw-rw-rw-+ 1 root root 241,  2 Nov 21 02:30 /dev/hidraw2
crw-rw-rw-+ 1 root root 241,  3 Nov 21 02:30 /dev/hidraw3
crw-rw-rw-+ 1 root root 241,  4 Nov 21 02:30 /dev/hidraw4
crw-rw-rw-+ 1 root root 241,  5 Nov 21 02:30 /dev/hidraw5
crw-rw-rw-+ 1 root root 241,  6 Nov 21 02:30 /dev/hidraw6
crw-rw-rw-+ 1 root root 241,  7 Nov 21 02:30 /dev/hidraw7
crw-rw-rw-+ 1 root root 241,  8 Nov 21 02:30 /dev/hidraw8
crw-rw-rw-+ 1 root root 241,  9 Nov 21 02:30 /dev/hidraw9

total 0

Any chance this is fixed in fwupd 2.0.17? They fiddled with Framework hardware in that version too. Or that is not tied to fwupd in any way?

Sorry, I had a brain fart and mixed forum threads in my head.

No worries!!

If you check above, I figured it out w/my udev rules.

I haven’t mess w/Bazzite much - but I wonder if your setup (Atomic) keeps you from needing the udev rules :person_shrugging:

Either way, a slight change to the udev rules fixed me up :slight_smile:

1 Like

This worked! Tysm

That covers the USA/ansi keyboard and the numpad.

All of the current FWL16 keyboards:

USB [VendorID]:[ProductID] “[Manufacturer][Product name]”
32ac:0012 “Framework Laptop 16 Keyboard Module - ANSI”
32ac:0013 “Framework Laptop 16 RGB Macropad”
32ac:0014 “Framework Laptop 16 Numpad Module”
32ac:0018 “Framework Laptop 16 Keyboard Module - ISO”
32ac:0019 “Framework Laptop 16 Keyboard Module - JIS”

So, to cover all:

SUBSYSTEMS=="usb", ATTRS{idVendor}=="32ac", ATTRS{idProduct}=="0012", TAG+="uaccess"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="32ac", ATTRS{idProduct}=="0013", TAG+="uaccess"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="32ac", ATTRS{idProduct}=="0014", TAG+="uaccess"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="32ac", ATTRS{idProduct}=="0018", TAG+="uaccess"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="32ac", ATTRS{idProduct}=="0019", TAG+="uaccess"
1 Like

@Destroya I was unable to find this documented anywhere - and the previous method Framework-provided was not sufficient with the new firmware

Can we get a new post thats pinned with these udev rules for linux users?

As more ppl are getting around to upgrading their firmware, this is likely to be asked more

1 Like

Looks like this may be a systemd bug issue, which has bitten many many people. And the best solution for qmk hasn’t been decided yet

TAG+="uaccess" does sound like the way to go though.

1 Like