Lenovo ThinkPad X131E Bluetooth Driver (QComm Ath 3012 BT 4.0) [Solved-ish]

:pushpin:Question Description

Have you searched the community for related issues?

  • No similar issues found.

Please describe the problem you’ve encountered in detail:

  • Description: I recently installed FydeOS on a Lenovo ThinkPad X131E (more details below). However, while everything else works, I cannot get bluetooth wortking (it’s disabled in settings, indicative of a lack of a driver). The bluetooth worked fine on the stock ChromeOS v69, on Nano11 (with “jailbroken” firmware installed), but not on the latest FydeOS. I found one on github, but it fails when I try to compile it (for context, I’m more of a Python developer and don’t know crap about programming in C). Can anyone provide advice?

:computer:System & Device Information

  • Hardware & System Configuration: Lenovo ThinkPad X131E Chromebook (Stout) - FydeOS v18

    • Processor: Intel Celeron 1007U (2) @ 1.500GHz
    • Graphics Card(Please specify if there’s a discrete graphics card): [Internal] Intel 3rd Gen Core processor Graphics Controller
    • RAM: 8GB (7908MB available to system)
    • FydeOS Version: v18 (Latest as of 24 April 2024)
  • Relevant System Logs:

    • Open the Chromium browser and enter /var/log/messages to retrieve logs.
    • Log Details:
      2024-04-24T14:51:29.019926Z ERR shill[902]: ERROR shill: [bluetooth_bluez_proxy.cc(50)] Failed to query BT ‘Powered’ property
      2024-04-24T14:51:29.019955Z ERR shill[902]: ERROR shill: [bluetooth_manager.cc(113)] GetAvailableAdapters: Failed to query BT powered state from BlueZ
      2024-04-24T14:51:29.019982Z ERR shill[902]: ERROR shill: [wifi.cc(3888)] wlan0: Failed to query available BT adapters

I found the solution!
I used the Chromebook recovery utility to download the file for STOUT (aka the boardname of my Chromebook), used 7zip on my Windows computer to open the bin file, “changed directory” into the ROOT-A image, went to /lib/firmware, and extracted the “ar3k” directory and “ath3k-1.fw” files onto an SD card, inserted said SD card into my Chromebook, used nano to change the grub.conf file to boot from the non-verified “Image A”, disabled rootfs verification, rebooted, mounted root as rw, and then copied the ar3k directory and ath3k-1.fw files from the SD card to /lib/firmware on the Chromebook’s boot device

while this is kind of a “hacky” solution, I do hope it can help the developers implement a proper fix in a future release.