Ubuntu – Ralink RT 3290 Bluetooth Problem on Ubuntu 14.04

14.04bluetoothralink

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.

Best Answer

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.
Related Question