I’ve been running kernel 6.6 lately, as the last “good” 6.12 kernel for me was 6.12.4… 6.12.10 (or was it 12) gave me some grief which I resolved by reverting to 6.6 ever since.
Seeing as 6.12 is all the way up to 6.12.34, I figured it’d be a good idea to see if the newest LTS would now prove to be grief free for me.
A few hours in I thought to launch a game via steam… Dark Souls PTDE… and everything was fine except for it no longer recognizing my controller. every other game I launched had a working controller… very odd
Long story short, seems that my Framework Laptop’s keyboard and numpad “modules” are now being detected as controllers… they were listed inside steam’s controller settings page… and seconded by KDE’s System Settings => Game Controller device list.
That coupled with a known issue in many From Software games that “thou shall have only 1 HID controller connected”… I was left with a choice:
- go back to kernel 6.6 without attempting troubleshooting, or
- see if I could find a solution for the 6.12+ kernel’s
… and I found my answer at https://www.reddit.com/r/linux_gaming/comments/1iym0ew/steam_detects_keyboard_as_controller_any_way_to/
Following the article I created a new UDEV rule file @
/etc/udev/rules.d/99-framework-keyboards-are-not-controllers.rules
SUBSYSTEM=="input", ATTRS{idVendor}=="32ac", ATTRS{idProduct}=="0012", ENV{ID_INPUT_JOYSTICK}=""
SUBSYSTEM=="input", ATTRS{idVendor}=="32ac", ATTRS{idProduct}=="0014", ENV{ID_INPUT_JOYSTICK}=""
ran sudo udevadm control --reload-rules && sudo udevadm trigger, rechecked KDE System Settings to confirm only my PS5 controller was listed, and relaunched Dark Souls PTDE with my controller working once again!
How did I get my Vendor & Product ID's?
short answer… via lsusb
The output of lsusb looks something like this…
Bus ### Device ### ID VVVV:PPPP Name
VVVV = Vendor
PPPP = Product
lsusb | grep Framework
Bus 001 Device 002: ID 32ac:0003 Framework DisplayPort Expansion Card
Bus 001 Device 007: ID 32ac:0014 Framework Laptop 16 Numpad Module
Bus 001 Device 011: ID 32ac:0012 Framework Laptop 16 Keyboard Module - ANSI
And that’s how I got the required ID’s for creating my two-lined UDEV rule file for Vendor 32ac, Products 0012 and 0014