Skip to content

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

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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