15

I recently installed Ubuntu 14.04 and everything is working good except the Bluetooth.

I have Ralink 3290 Bluetooth. tried to install the driver using the method described here. The code is not compiling and giving 2 errors. Even the change in os/linux/pci_main_dev.c is not working.

Update: Now I followed this link and after modifying some file a little bit, I was successful in compiling and installing this driver. I am certain that Ubuntu finally found a Bluetooth Adapter, and now I am getting bluetooth in:

rfkill list all
0: phy0: Wireless LAN
     Soft blocked: yes
     Hard blocked: no
1: hci0: Bluetooth
    Soft blocked: yes
    Hard blocked: no

But now the Bluetooth is disabled error is showing and the output of

dmesg | grep Blue
[   17.378741] Bluetooth: Core ver 2.17
[   17.378778] Bluetooth: HCI device and connection manager initialized
[   17.378788] Bluetooth: HCI socket layer initialized
[   17.378792] Bluetooth: L2CAP socket layer initialized
[   17.378799] Bluetooth: SCO socket layer initialized
[   17.809313] Bluetooth: hci0 sending frame failed
[   20.507392] Bluetooth: RFCOMM TTY layer initialized
[   20.507420] Bluetooth: RFCOMM socket layer initialized
[   20.507440] Bluetooth: RFCOMM ver 1.11
[   20.669232] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[   20.669237] Bluetooth: BNEP filters: protocol multicast
[   20.669249] Bluetooth: BNEP socket layer initialized

is coming.

Adnan
  • 1,262

5 Answers5

10

I got the bluetooth to work!

  1. First download the Source code from here and extract it to Home.

  2. After that, open the rtbth_core_bluez.c file, and then go to line 86 and change it from:

    int rtbt_hci_dev_send(struct sk_buff *skb)
    {
        struct hci_dev *hdev = (struct hci_dev *)skb->dev;
    

    to:

    int rtbt_hci_dev_send(struct hci_dev *hdev, struct sk_buff *skb)
    {
        //struct hci_dev *hdev = (struct hci_dev *)skb->dev;
    
  3. Go to line 216 and change it from:

        status = hci_recv_frame(skb);
    

    to:

        status = hci_recv_frame(hdev,skb);
    
  4. Then go to line 406 and change it from:

    hdev->ioctl = rtbt_hci_dev_ioctl;
    

    to:

    //hdev->ioctl = rtbt_hci_dev_ioctl;
    
  5. Save, then open rtbth_hlpr_linux.c and go to line 575. Change it from:

    //daemonize((PSTRING)&pOSTask->taskName[0]);
    

    to

    (PSTRING)&pOSTask->taskName[0];
    
  6. Now you are ready to Compile. Compile it in Terminal by:

    cd rtbth-3.9.3
    make
    sudo make install
    
  7. Reboot. Additionally, you can follow the PDF file contained inside this ZIP in case bluetooth still does not work.
Adnan
  • 1,262
6

This is reported as bug on LP:

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1189721

As of now, there is no working driver. If you have LP account, I'd recommend you marking the bug as affecting you and subscribing for email notifications on comments.

int_ua
  • 8,892
6

According to shihiro's comment on the bug report there's a well maintained PPA available for the Bluetooth driver:

Use in terminal

sudo add-apt-repository ppa:blaze/rtbth-dkms
sudo apt-get update
sudo apt-get install rtbth-dkms

or load and install it from Launchpad. On the first link there is the source link to the GitHub page. In README.md you can read:

# Init
sudo modprobe rtbth
sudo rfkill unblock bluetooth
hcitool dev # check

I typed it in terminal and everything works.

On Ubuntu 17.10, and possibly earlier versions, the module might get blacklisted automatically. If that happens to you

  1. add rtbth to /etc/modules,
  2. open /etc/modprobe.d/dkms-rtbth.conf and comment out or delete the line that says blacklist rtbth,
  3. reboot the system.
David Foerster
  • 36,890
  • 56
  • 97
  • 151
3

Here is a easy way, I too was looking for solving this problem for 2 years now, and at most I was able to get all Bluetooth Devices listed and was unable to connect to any of them, but below solution I encountered today and It worked flawlessly for me.

It is very easy to install, files are located on github rtbth-dkms.

To Install,

sudo add-apt-repository ppa:blaze/rtbth-dkms
sudo apt-get update
sudo apt-get install rtbth-dkms

and then follow the Init commands below, your BlueTooth will work now, in case of any problem leave a comment, I will be happy to help you.

Usage

# Init
sudo modprobe rtbth
sudo rfkill unblock bluetooth
hcitool dev # check

# Switch off
sudo rfkill block bluetooth

# Switch on
sudo rfkill unblock bluetooth

# Shutdown
sudo pkill -2 rtbt
sudo rmmod rtbth
0

The DKMS and systemd solution that works on my HP ProBook 455 G1 Laptop with:
Network controller: Ralink corp. RT3290 Wireless 802.11n 1T/1R PCIe and it's hybrid.
Which has built-in Bluetooth: Ralink corp. RT3290 Bluetooth.

I am ask for check if this instruction work on Ubuntu.
Write an OS and Kernel Linux version for example:

TESTED ON:
OS: Fedora 27 with gnome shell.
Kernel Linux: 4.13.12-300.fc27.x86_64

Copy source from:
https://github.com/loimu/rtbth-dkms

DKMS Build Instruction:
http://xmodulo.com/build-kernel-module-dkms-linux.html

Copy files:

cp 49rtbt to /usr/lib64/pm-utils/sleep.d  
cp rtbt to one of this folder /bin or /usr/local/bin or /usr/bin

Makeing new file name bluetooth-setup.sh and copy :

#!/bin/bash
sudo mknod /dev/rtbth c 192 0
sudo rtbt

Making an automatic start by following this instruction.
Add script to systemd :

https://linuxconfig.org/how-to-automatically-execute-shell-script-at-startup-boot-on-systemd-linux