Hello everyone!
I bought two Nintendo Switch Pro Controllers a while back with the intention to use them on Steam. At that time I was running 5.15.16-1-MANJARO (I think) and I got everything working somehow with Joycond and hid-nintendo. I got a bit psyched when I just a few weeks later read about Kernel 5.16 will add support for the Nintendo Pro Switch Controller. As soon as the release for 5.16 was available (Earlier today) I upgraded with the hopes of working Controllers without any extra drivers or services.
Both controllers work but they are behaving somewhat wierd:
- I can pair both controllers, but only one at the time. I can’t pair both of them. Before pairing the other controller I have to remove the pairing of the first controller.
- I can never reconnect the controllers after disconnecting. I.e. I have to re-pair every time I want to use them.
When I try to set both controller via the KDE Settings for Bluetooth, the first one pairs within 1-2 seconds. When I try to pair the second one, it takes substantially longer and I always end up with a “The setup of Pro Controller has failed”. If I try to use bluetoothctl from the commandline and I run the command connect
without anything else paired everything looks good:
connect 80:D2:E5:9A:AE:CA
Attempting to connect to 80:D2:E5:9A:AE:CA
[CHG] Device 80:D2:E5:9A:AE:CA Connected: yes
[CHG] Device 80:D2:E5:9A:AE:CA Modalias: usb:v057Ep2009d0001
[CHG] Device 80:D2:E5:9A:AE:CA UUIDs: 00001000-0000-1000-8000-00805f9b34fb
[CHG] Device 80:D2:E5:9A:AE:CA UUIDs: 00001124-0000-1000-8000-00805f9b34fb
[CHG] Device 80:D2:E5:9A:AE:CA UUIDs: 00001200-0000-1000-8000-00805f9b34fb
[CHG] Device 80:D2:E5:9A:AE:CA ServicesResolved: yes
[CHG] Device 80:D2:E5:9A:AE:CA WakeAllowed: yes
[CHG] Device 80:D2:E5:9A:AE:CA Paired: yes
Connection successful
But if I try to connect when I have the other controller paired I get something like this:
connect 80:D2:E5:9A:AE:CA
Attempting to connect to 80:D2:E5:9A:AE:CA
[CHG] Device 80:D2:E5:9A:AE:CA Connected: yes
[CHG] Device 80:D2:E5:9A:AE:CA Modalias: usb:v057Ep2009d0001
[CHG] Device 80:D2:E5:9A:AE:CA UUIDs: 00001000-0000-1000-8000-00805f9b34fb
[CHG] Device 80:D2:E5:9A:AE:CA UUIDs: 00001124-0000-1000-8000-00805f9b34fb
[CHG] Device 80:D2:E5:9A:AE:CA UUIDs: 00001200-0000-1000-8000-00805f9b34fb
[CHG] Device 80:D2:E5:9A:AE:CA ServicesResolved: yes
[CHG] Device 80:D2:E5:9A:AE:CA WakeAllowed: yes
[CHG] Device 80:D2:E5:9A:AE:CA Paired: yes
Failed to connect: org.bluez.Error.Failed br-connection-create-socket
[CHG] Device 80:D2:E5:9A:AE:CA ServicesResolved: no
[CHG] Device 80:D2:E5:9A:AE:CA Paired: no
[CHG] Device 80:D2:E5:9A:AE:CA Connected: no
[CHG] Device 80:D2:E5:9A:AE:CA RSSI: -76
[CHG] Device 80:D2:E5:9A:AE:CA RSSI: -66
[CHG] Device 80:D2:E5:9A:AE:CA RSSI: -74
Regarding the second issue, it might be related, because it seems to be a connection issue. Whenever I try reconnect, the following is visible in bluetoothctl and occurs within less than 1 second in between:
[CHG] Device 80:D2:E5:9A:AE:CA Connected: yes
[CHG] Device 80:D2:E5:9A:AE:CA Connected: no
Can anyone here help out with figuring this out or point me in the right direction?
Is this a known limitation I have missed (Nintendo wierdness due to reverse engineered driver)? Is it a problem with Bluez or my Bluetooth module? I’m not a beginner with Linux, but still not traversed enough to trouble-shoot this. Any help is very appreciated.
$ bluetoothctl --version
bluetoothctl: 5.63
System:
Kernel: 5.16.2-1-MANJARO x86_64 bits: 64 compiler: gcc v: 11.1.0
parameters: BOOT_IMAGE=/boot/vmlinuz-5.16-x86_64
root=UUID=34939eed-ad71-4161-853b-e6ba05c1cf92 rw quiet apparmor=1
security=apparmor udev.log_priority=3
Console: pty pts/1 wm: kwin_x11 DM: SDDM Distro: Manjaro Linux
base: Arch Linux
Machine:
Type: Desktop System: ASUS product: N/A v: N/A serial: N/A
Mobo: ASUSTeK model: ROG STRIX X470-I GAMING v: Rev 1.xx serial: <filter>
UEFI: American Megatrends v: 4301 date: 03/04/2021
Battery:
Device-1: hidpp_battery_0 model: Logitech Wireless Keyboard ERGO K860
serial: <filter> charge: 55% (should be ignored) rechargeable: yes
status: Discharging
CPU:
Info: model: AMD Ryzen 7 3700X socket: AM4 bits: 64 type: MT MCP arch: Zen 2
family: 0x17 (23) model-id: 0x71 (113) stepping: 0 microcode: 0x8701021
Topology: cpus: 1x cores: 8 tpc: 2 threads: 16 smt: enabled cache:
L1: 512 KiB desc: d-8x32 KiB; i-8x32 KiB L2: 4 MiB desc: 8x512 KiB
L3: 32 MiB desc: 2x16 MiB
Speed (MHz): avg: 2375 high: 3600 min/max: 2200/4426 boost: enabled
base/boost: 3600/4400 scaling: driver: acpi-cpufreq governor: schedutil
volts: 1.1 V ext-clock: 100 MHz cores: 1: 2200 2: 2200 3: 2200 4: 2200
5: 3600 6: 2200 7: 2200 8: 2200 9: 2200 10: 2200 11: 2200 12: 2200
13: 2200 14: 2200 15: 2200 16: 3600 bogomips: 115027
Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm
Vulnerabilities:
Type: itlb_multihit status: Not affected
Type: l1tf status: Not affected
Type: mds status: Not affected
Type: meltdown status: Not affected
Type: spec_store_bypass
mitigation: Speculative Store Bypass disabled via prctl
Type: spectre_v1
mitigation: usercopy/swapgs barriers and __user pointer sanitization
Type: spectre_v2 mitigation: Full AMD retpoline, IBPB: conditional, STIBP:
conditional, RSB filling
Type: srbds status: Not affected
Type: tsx_async_abort status: Not affected
Graphics:
Device-1: AMD Navi 10 [Radeon RX 5600 OEM/5600 XT / 5700/5700 XT]
driver: amdgpu v: kernel bus-ID: 0b:00.0 chip-ID: 1002:731f class-ID: 0300
Device-2: Trust USB Camera type: USB driver: snd-usb-audio,uvcvideo
bus-ID: 1-1:2 chip-ID: 145f:0203 class-ID: 0102 serial: <filter>
Display: server: X.Org 1.21.1.3 compositor: kwin_x11 driver:
loaded: amdgpu,ati unloaded: modesetting,radeon alternate: fbdev,vesa
display-ID: :0 screens: 1
Screen-1: 0 s-res: 2560x1440 s-dpi: 96 s-size: 677x381mm (26.7x15.0")
s-diag: 777mm (30.6")
Monitor-1: DisplayPort-0 res: 2560x1440 hz: 60 dpi: 93
size: 697x392mm (27.4x15.4") diag: 800mm (31.5")
Message: Unable to show advanced data. Required tool glxinfo missing.
Audio:
Device-1: AMD Navi 10 HDMI Audio driver: snd_hda_intel v: kernel
bus-ID: 0b:00.1 chip-ID: 1002:ab38 class-ID: 0403
Device-2: AMD Starship/Matisse HD Audio vendor: ASUSTeK
driver: snd_hda_intel v: kernel bus-ID: 0d:00.4 chip-ID: 1022:1487
class-ID: 0403
Device-3: Trust USB Camera type: USB driver: snd-usb-audio,uvcvideo
bus-ID: 1-1:2 chip-ID: 145f:0203 class-ID: 0102 serial: <filter>
Device-4: SteelSeries ApS SteelSeries Arctis 7 type: USB
driver: hid-generic,snd-usb-audio,usbhid bus-ID: 3-4:4 chip-ID: 1038:12ad
class-ID: 0300
Sound Server-1: ALSA v: k5.16.2-1-MANJARO running: yes
Sound Server-2: JACK v: 1.9.20 running: no
Sound Server-3: PulseAudio v: 15.0 running: yes
Sound Server-4: PipeWire v: 0.3.43 running: yes
Network:
Device-1: Intel I211 Gigabit Network vendor: ASUSTeK driver: igb v: kernel
port: d000 bus-ID: 04:00.0 chip-ID: 8086:1539 class-ID: 0200
IF: enp4s0 state: up speed: 100 Mbps duplex: full mac: <filter>
Device-2: Realtek RTL8822BE 802.11a/b/g/n/ac WiFi adapter vendor: ASUSTeK
driver: rtw_8822be v: N/A modules: rtw88_8822be port: c000 bus-ID: 05:00.0
chip-ID: 10ec:b822 class-ID: 0280
IF: wlp5s0 state: down mac: <filter>
Bluetooth:
Device-1: ASUSTek Bluetooth Radio type: USB driver: btusb v: 0.8
bus-ID: 1-12:4 chip-ID: 0b05:185c class-ID: e001 serial: <filter>
Report: rfkill ID: hci0 rfk-id: 1 state: up address: see --recommends
Drives:
Local Storage: total: 2.52 TiB used: 247.21 GiB (9.6%)
ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Samsung model: SSD 970 PRO 512GB
size: 476.94 GiB block-size: physical: 512 B logical: 512 B speed: 31.6 Gb/s
lanes: 4 type: SSD serial: <filter> rev: 1B2QEXP7 temp: 41.9 C scheme: GPT
SMART: yes health: PASSED on: 291d 1h cycles: 2,393
read-units: 38,896,377 [19.9 TB] written-units: 53,291,823 [27.2 TB]
ID-2: /dev/sda maj-min: 8:0 vendor: Samsung model: SSD 850 PRO 256GB
family: based SSDs size: 238.47 GiB block-size: physical: 512 B
logical: 512 B sata: 3.1 speed: 6.0 Gb/s type: SSD serial: <filter>
rev: 4B6Q temp: 34 C scheme: MBR
SMART: yes state: enabled health: PASSED on: 2y 2d 3h cycles: 1780
written: 17.35 TiB
ID-3: /dev/sdb maj-min: 8:16 vendor: Seagate model: ST2000DX001-1CM164
family: Desktop SSHD size: 1.82 TiB block-size: physical: 4096 B
logical: 512 B sata: 3.1 speed: 6.0 Gb/s type: HDD rpm: 7200
serial: <filter> rev: CC43 temp: 38 C scheme: MBR
SMART: yes state: enabled health: PASSED on: 1y 265d 7h cycles: 1242
read: 46.38 TiB written: 4.94 TiB Pre-Fail: attribute: Spin_Retry_Count
value: 100 worst: 100 threshold: 97
Partition:
ID-1: / raw-size: 49.12 GiB size: 48.05 GiB (97.82%) used: 32.53 GiB (67.7%)
fs: ext4 block-size: 4096 B dev: /dev/nvme0n1p8 maj-min: 259:7
ID-2: /boot/efi raw-size: 100 MiB size: 96 MiB (96.00%)
used: 31.6 MiB (32.9%) fs: vfat block-size: 512 B dev: /dev/nvme0n1p1
maj-min: 259:1
ID-3: /home raw-size: 200.75 GiB size: 196.6 GiB (97.93%)
used: 65.12 GiB (33.1%) fs: ext4 block-size: 4096 B dev: /dev/nvme0n1p6
maj-min: 259:5
Swap:
Kernel: swappiness: 60 (default) cache-pressure: 100 (default)
ID-1: swap-1 type: partition size: 3.81 GiB used: 13.2 MiB (0.3%)
priority: -2 dev: /dev/nvme0n1p7 maj-min: 259:6
Sensors:
System Temperatures: cpu: N/A mobo: N/A gpu: amdgpu temp: 35.0 C mem: 40.0 C
Fan Speeds (RPM): N/A gpu: amdgpu fan: 65535
Info:
Processes: 382 Uptime: 37m wakeups: 2 Memory: 15.59 GiB
used: 3.68 GiB (23.6%) Init: systemd v: 250 tool: systemctl Compilers:
gcc: 11.1.0 clang: 13.0.0 Packages: 1640 pacman: 1618 lib: 469 flatpak: 22
Shell: Zsh (sudo) v: 5.8 default: Bash v: 5.1.16 running-in: yakuake
inxi: 3.3.12