Nintendo switch controllers connected, but not detected by any programs (linux mint)

h1dd3

New Member
Joined
Jun 3, 2024
Messages
2
Reaction score
2
Credits
26
When I connect my nintendo switch joycons to my pc, it says they're connected, but when I open programs like steam, yuzu, ryujinx or jstest-gtk, the controller doesn't show up anywhere, as if it's not connected. Same issue with my procontroller.
I have been looking everywhere for a solution and tried a lot of things but the controllers just won't show up, despite blueman saying they're connected.
I'm using linux mint 21 (cinnamon)
kernel version 5.15.0-107 (I have also tried installing kernel 6.5, same problem)
bluez 5.64
blueman 2.3.5
 


Hi h1dd3,

It sounds like you've done quite a bit of troubleshooting already! Here are a few more steps you can try to get your Nintendo Switch controllers recognized:

1. Install joycond: This is a daemon for pairing and managing Nintendo Switch controllers.
Code:
   sudo apt update
   sudo apt install joycond

2. Verify udev Rules: Ensure that the udev rules are correctly set up to recognize your controllers.
Code:
   sudo nano /etc/udev/rules.d/99-joycond.rules
Add the following lines:
Code:
   SUBSYSTEM=="input", GROUP="input", MODE="0660"
   KERNEL=="uinput", GROUP="input", MODE="0660"
   KERNEL=="js[0-9]*", MODE="0666"

3. Update BlueZ: Sometimes, the latest version of BlueZ from the official repositories might have better support for Bluetooth devices.
Code:
   sudo add-apt-repository ppa:bluetooth/bluez
   sudo apt update
   sudo apt upgrade

4. Use evtest: This tool can help you see if the input events from the controllers are being detected.
Code:
   sudo apt install evtest
   sudo evtest

5. Check dmesg Logs: Look at the kernel logs for any clues about what might be going wrong.
Code:
   dmesg | grep -i bluetooth
   dmesg | grep -i joycon

6. Try Different USB Ports or Bluetooth Adapters: Sometimes, using a different port or adapter can help resolve connectivity issues.

7. Ensure Proper Bluetooth Setup: Make sure that your Bluetooth is properly set up and that the controllers are properly paired. Sometimes unpairing and repairing can resolve issues.

If these steps don't work, you might want to consider posting the outputs of these commands here for further assistance. Good luck!

---
 
Hi h1dd3,

It sounds like you've done quite a bit of troubleshooting already! Here are a few more steps you can try to get your Nintendo Switch controllers recognized:

1. Install joycond: This is a daemon for pairing and managing Nintendo Switch controllers.
Code:
   sudo apt update
   sudo apt install joycond

2. Verify udev Rules: Ensure that the udev rules are correctly set up to recognize your controllers.
Code:
   sudo nano /etc/udev/rules.d/99-joycond.rules
Add the following lines:
Code:
   SUBSYSTEM=="input", GROUP="input", MODE="0660"
   KERNEL=="uinput", GROUP="input", MODE="0660"
   KERNEL=="js[0-9]*", MODE="0666"

3. Update BlueZ: Sometimes, the latest version of BlueZ from the official repositories might have better support for Bluetooth devices.
Code:
   sudo add-apt-repository ppa:bluetooth/bluez
   sudo apt update
   sudo apt upgrade

4. Use evtest: This tool can help you see if the input events from the controllers are being detected.
Code:
   sudo apt install evtest
   sudo evtest

5. Check dmesg Logs: Look at the kernel logs for any clues about what might be going wrong.
Code:
   dmesg | grep -i bluetooth
   dmesg | grep -i joycon

6. Try Different USB Ports or Bluetooth Adapters: Sometimes, using a different port or adapter can help resolve connectivity issues.

7. Ensure Proper Bluetooth Setup: Make sure that your Bluetooth is properly set up and that the controllers are properly paired. Sometimes unpairing and repairing can resolve issues.

If these steps don't work, you might want to consider posting the outputs of these commands here for further assistance. Good luck!

---
Hi, I fixed it! Thanks for helping. For anyone having the same problem, I fixed this by updating bluez from version 5.64 to 5.66 (latest version from bluez.org) (using this video
). I also used the program bluetuith instead of blueman to connect the controllers (otherwise it doesn't work for me) and I've also added the udev rules that you suggested.

EDIT: for some reason, after restarting the problem reoccurs. It can be fixed again by reinstalling bluez (so using these commands from the video linked above)
sudo make install
sudo nano /lib/systemd/system/bluetooth.service (adding --experimental at the end of the ExecStart line)
sudo systemctl daemon-reload
sudo systemctl
unmask bluetooth.service
sudo systemctl restart bluetooth

This is really weird. Does anyone know what's going on here?
 
Last edited:
Hi h1dd3,

It sounds like there's a persistent issue with the Bluetooth stack that gets resolved temporarily by reinstalling BlueZ. Here are a few additional steps and explanations that might help address the root cause of this problem:

1. Check for Conflicting Services: Sometimes, other services might interfere with BlueZ. Ensure that no other Bluetooth management services (like blueman) are causing conflicts.
Code:
   sudo systemctl stop blueman-mechanism
   sudo systemctl disable blueman-mechanism

2. Persistent Configuration Changes: Ensure that the changes you make to the Bluetooth configuration are persistent across reboots.
Code:
   sudo cp /lib/systemd/system/bluetooth.service /etc/systemd/system/bluetooth.service
   sudo nano /etc/systemd/system/bluetooth.service
Make sure --experimental is added to the ExecStart line here as well.

3. Update Initramfs: Sometimes, kernel modules or firmware updates don't persist correctly across reboots. Updating initramfs can help with this.
Code:
   sudo update-initramfs -u

4. Check for Kernel Module Issues: Ensure that the kernel modules for Bluetooth are properly loaded.
Code:
   lsmod | grep bluetooth

5. Check System Logs: Look at the system logs for any recurring errors related to Bluetooth.
Code:
   sudo journalctl -xe | grep bluetooth
   sudo journalctl -u bluetooth

6. Reinstall BlueZ from Official Repositories: Instead of building BlueZ from source, try reinstalling it from the official repositories to ensure all dependencies and configurations are correct.
Code:
   sudo apt remove --purge bluez
   sudo apt install bluez

7. Automate Fix on Boot: As a workaround, you can create a script to run your fix automatically at startup. Create a script file, for example fix-bluetooth.sh, and add your commands:
Code:
   sudo nano /usr/local/bin/fix-bluetooth.sh
Add the following content:
Code:
   #!/bin/bash
   sudo make install -C /path/to/bluez/source
   sudo sed -i 's|ExecStart=/usr/lib/bluetooth/bluetoothd|ExecStart=/usr/lib/bluetooth/bluetoothd --experimental|' /lib/systemd/system/bluetooth.service
   sudo systemctl daemon-reload
   sudo systemctl unmask bluetooth.service
   sudo systemctl restart bluetooth
Make the script executable:
Code:
   sudo chmod +x /usr/local/bin/fix-bluetooth.sh
Add it to the startup applications:
Code:
   sudo crontab -e
Add the line:
Code:
   @reboot /usr/local/bin/fix-bluetooth.sh

If the problem persists, it might be worth checking if there are any hardware-specific issues or firmware updates for your Bluetooth adapter.

Hope this helps!
 

Members online


Top