How to enable Bluetooth on Arch with a RT3290 chip
WARNING: the rtbth-dkms module BREAKS all RT3290 functionality, including wireless LAN when used with linux kernel version 4.16 (and probably later ones).
The RT3290 chip provides both WLAN and Bluetooth connectivity, but while on Arch WLAN connectivity works out of the box by using the kernel modules for RT2x00 chips, getting Bluetooth connectivity to work is a little bit more complicated. In this post I will describe how I got my bluetooth headset to work on my laptop.
In the first place, as recommended in the Bluetooth page in the Arch wiki we need to install the recommended bluez
and bluez-utils
packages:
$ sudo pacman -S bluez bluez-utils
Once these are installed, we will need a driver module to provide the functionality. In the ArchLinux User Repository there are three packages which should be capable of providing it:
- rt3290sta-dkms: I was completely unable to get this working. As soon as I built and installed the package, I even lost WLAN connectivity (it blacklists rt2800 and rt2x00 modules), and had to remove the package to be able to recover it, because I was unable to get it working.
- rtbth-dkms: This package was removed in favor of the next one (see comments in AUR).
- rtbth-dkms-git: This is the good one. It says it is version 3.9.4.4, but it actually pulls the last version on the repository. Be advised.
All the three options use dkms
, so we should install it too, together with the headers for your kernel:
$ sudo pacman -S dkms linux-headers
Now we are ready to install the module. I personally like yaourt to install packages from AUR:
$ sudo yaourt -S dkms rtbth-dkms-git
Once it is built and installed, there are a couple more of things to do. The first thing is to enable the bluetooth service:
$ sudo sudo systemctl enable bluetooth.service
And the second one, to tell systemd
to reload the module at boot, and thus avoiding the “reload problem” mentioned in the comments of the rtbth-dkms-git
package. We can do this by adding a /etc/modules-load.d/rtbth.conf
file, containing a single line:
/etc/modules-load.d/rtbth.conf
--------------------------------------------------------------
rtbth
After rebooting, everything should be working, and we should be able to interact with bluetooth
devices using bluetoothctl
. In my case I followed the instructions in the Bluetooth Headset Wiki page to get my headset working.
Leave a comment