Skip to content

Nintendo Switch Online N64 Controller doesn't work with linux kernel 6.8 #53

@duleell

Description

@duleell

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 djogorchock@gmail.com
author: Emily Strickland linux@emily.st
author: Ryan McClelland rymcclel@gmail.com
license: GPL
srcversion: 68AFB8BC216FA1ECC2AA9B7
alias: hid:b0005gv0000057Ep00002019
alias: hid:b0005g
v0000057Ep0000201E
alias: hid:b0005gv0000057Ep00002017
alias: hid:b0005g
v0000057Ep00002007
alias: hid:b0005gv0000057Ep00002006
alias: hid:b0003g
v0000057Ep0000200E
alias: hid:b0005gv0000057Ep00002009
alias: hid:b0003g
v0000057Ep00002019
alias: hid:b0003gv0000057Ep0000201E
alias: hid:b0003g
v0000057Ep00002017
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
Screenshot from 2024-04-22 17-51-06

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions