Bluetooth: can't find default controller

5,663

Solution 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)

Solution 2

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.

Share:
5,663

Related videos on Youtube

Timothy Schmitz
Author by

Timothy Schmitz

Updated on September 18, 2022

Comments

  • Timothy Schmitz
    Timothy Schmitz almost 2 years

    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