0

I can't get bluetoothctl or hciconfig to display anything about my bluetooth controller, or otherwise get my computer to recognize nearby bluetooth devices. When I enter power on in bluetoothctl, it displays

No default controller available.

The commands hcitool scan and hciconfig hci0 up similarly fail to find anything.

Here is some information about my system:

  • Kernel
    uname -a
    Linux localhost 4.0.1-1-ARCH #1 SMP PREEMPT Wed Apr 29 12:00:26 CEST 2015 x86_64 GNU/Linux
    
  • PCI devices

    lspci -k
    
    02:00.0 Network controller: Ralink corp. RT3290 Wireless 802.11n 1T/1R PCIe
        DeviceName: Roma Ralink RT3290LE 802.11bgn 1x1 Wi-Fi Adapter
        Subsystem: Hewlett-Packard Company Ralink RT3290LE 802.11bgn 1x1 Wi-Fi and Bluetooth 4.0 Combo Adapter
        Kernel driver in use: rt2860
        Kernel modules: rt2800pci, rt3290sta
    
    02:00.1 Bluetooth: Ralink corp. RT3290 Bluetooth
        Subsystem: Hewlett-Packard Company Ralink RT3290LE 802.11bgn 1x1 Wi-Fi and Bluetooth 4.0 Combo Adapter
    
  • Kernel modules

    lsmod | grep -i bluetooth
    
    bluetooth             438272  6 bnep,btusb
    rfkill                 24576  6 cfg80211,hp_wmi,bluetooth
    crc16                  16384  2 ext4,bluetooth
    
  • Bluetooth-related log messages

    dmesg | grep -i bluetooth
    
    [   89.576936] Bluetooth: Core ver 2.20
    [   89.576970] Bluetooth: HCI device and connection manager initialized
    [   89.576977] Bluetooth: HCI socket layer initialized
    [   89.576982] Bluetooth: L2CAP socket layer initialized
    [   89.576991] Bluetooth: SCO socket layer initialized
    [   89.587071] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
    [   89.587082] Bluetooth: BNEP filters: protocol multicast
    [   89.587094] Bluetooth: BNEP socket layer initialized
    
  • Device FS:

    ls /dev | grep hci
    
    vhci
    

Note that there are several mentions of the WiFi/Bluetooth controller in the system log:

  • Searching for the RT3290 gives repeated error messages like

    dmesg | grep rt3290 
    
    RT3290_AsicTxAlcGetAutoAgcOffset: Incorrect desired TSSI or current TSSI
    
  • Searching for "RT28xx" gives

    dmesg | grep rt28 gives:
    
    [    9.810624] register rt2860
    [   16.610829] <==== rt28xx_init, Status=0
    
AdminBee
  • 22,803

2 Answers2

1
  1. Check that you card is not hard or soft blocked (which isn't related to linux):

    • Check that you turned on bluetooth in your bios
    • Check if you have a hardware key for turning off bluetooth (sometimes called "fly mode" or "offline mode")
  2. Check that you installed the rt3290 driver. Currently it isn't in the kernel modules (if this hasn't changed)

Maze
  • 120
1

According to this question on AskUbuntu.SE, this card seems to require the rtbth driver for Bluetooth support.

The fact that your Bluetooth adapter appears in lspci listing indicates it's a PCI(e)-based adapter, not an USB-based one. And since lspci -k cannot identify a driver in use for the Bluetooth function of the adapter, it strongly suggests the correct Bluetooth hardware driver is not loaded right now.

The only Bluetooth hardware driver I can identify in your lsmod | grep -i bluetooth is btusb, which only covers USB-based Bluetooth adapters. The modules bnep, bluetooth etc. are generic Bluetooth protocol drivers, but you'll also need the correct hardware driver for your Bluetooth adapter.

telcoM
  • 96,466