Nintendo Switch Online N64 Controller doesn't work with linux kernel 6.8
OS: ubuntu 24.04 with kernel 6.8.0-31
$ bluetoothctl
Agent registeredct to bluetoothd...[bluetooth]# N64 Controller [N64 Controller]# info Device ... (public) Name: N64 Controller Alias: N64 Controller Class: 0x00002508 (9480) Icon: input-gaming Paired: yes Bonded: yes Trusted: no Blocked: no Connected: yes WakeAllowed: yes LegacyPairing: no UUID: Service Discovery Serve.. (00001000-0000-1000-8000-00805f9b34fb) UUID: Human Interface Device... (00001124-0000-1000-8000-00805f9b34fb) UUID: PnP Information (00001200-0000-1000-8000-00805f9b34fb) Modalias: usb:v057Ep2019d0001
$ modinfo hid-nintendo
filename: /lib/modules/6.8.0-31-generic/kernel/drivers/hid/hid-nintendo.ko.zst description: Driver for Nintendo Switch Controllers author: Daniel J. Ogorchock [email protected] author: Emily Strickland [email protected] author: Ryan McClelland [email protected] license: GPL srcversion: 68AFB8BC216FA1ECC2AA9B7 alias: hid:b0005gv0000057Ep00002019 alias: hid:b0005gv0000057Ep0000201E alias: hid:b0005gv0000057Ep00002017 alias: hid:b0005gv0000057Ep00002007 alias: hid:b0005gv0000057Ep00002006 alias: hid:b0003gv0000057Ep0000200E alias: hid:b0005gv0000057Ep00002009 alias: hid:b0003gv0000057Ep00002019 alias: hid:b0003gv0000057Ep0000201E alias: hid:b0003gv0000057Ep00002017 alias: hid:b0003g*v0000057Ep00002009 depends: ff-memless,hid retpoline: Y intree: Y name: hid_nintendo vermagic: 6.8.0-31-generic SMP preempt mod_unload modversions sig_id: PKCS#7 signer: Build time autogenerated kernel key sig_key: ... sig_hashalgo: sha512 signature: ...
$ lsmod |grep nintendo
hid_nintendo 53248 0 ff_memless 24576 1 hid_nintendo hid 184320 7 hid_nintendo,i2c_hid,hidp,usbhid,hid_multitouch,hid_generic,uhid
$ cat /usr/lib/udev/rules.d/89-joycond.rules
Keep steam from accessing hidraw for pro controller
Nintendo Switch Pro Controller over USB hidraw
KERNEL=="hidraw*", ATTRS{idVendor}=="057e", ATTRS{idProduct}=="2009", MODE="0600", TAG-="uaccess", RUN+="/bin/setfacl -b /dev/%k"
Nintendo Switch Pro Controller over bluetooth hidraw
KERNEL=="hidraw*", KERNELS=="057E:2009", MODE="0600", TAG-="uaccess", RUN+="/bin/setfacl -b /dev/%k"
ACTION!="add", GOTO="joycond_end" SUBSYSTEM!="input", GOTO="joycond_end" KERNEL!="event*", GOTO="joycond_end" ATTRS{id/vendor}=="057e", ATTRS{id/product}=="2009", ATTRS{name}!="Combined", ATTRS{name}!="Virtual", ATTRS{name}!="IMU", TAG+="joycond", MODE="0600" ATTRS{id/vendor}=="057e", ATTRS{id/product}=="2006", ATTRS{name}!="Combined", ATTRS{name}!="Virtual", ATTRS{name}!="IMU", TAG+="joycond", MODE="0600" ATTRS{id/vendor}=="057e", ATTRS{id/product}=="2007", ATTRS{name}!="Combined", ATTRS{name}!="Virtual", ATTRS{name}!="IMU", TAG+="joycond", MODE="0600" ATTRS{id/vendor}=="057e", ATTRS{id/product}=="200e", ATTRS{name}!="Combined", ATTRS{name}!="Virtual", ATTRS{name}!="IMU", TAG+="joycond", MODE="0600" ATTRS{id/vendor}=="057e", ATTRS{id/product}=="2017", ATTRS{name}!="Combined", ATTRS{name}!="Virtual", ATTRS{name}!="IMU", TAG+="joycond", MODE="0600" ATTRS{id/vendor}=="057e", ATTRS{id/product}=="2019", ATTRS{name}!="Combined", ATTRS{name}!="Virtual", ATTRS{name}!="IMU", TAG+="joycond", MODE="0600"
LABEL="joycond_end"
evtest doesn't show the event of the controller and jstest shows nothing.
$ jstest-gtk