• Bluetooth ONLY works after suspend and wake-up [GNOME, Thinkpad E585]


    I have a strange issue with bluetooth on my Thinkpad E585 laptop.

    Upon regular boot and logging into the system, bluetooth refuses to work, acting as if there is no bluetooth interface connected to the system. GNOME asks for a dongle to be connected, and rfkill list all only shows the wifi card. However, after putting the system in sleep/suspend, and then resuming, bluetooth comes on on its own and works fine. rfkill now lists the bluetooth interface, as it should.

    Doing a normal reboot or cold shut down does nothing to get the bluetooth working. If a reboot or shut down is done after suspending the system to get bluetooth working, bluetooth stops working. Another suspend and wake must be done, upon which the bluetooth works again as normal.

    Doing a modprobe btusb, rfkill unblock bluetooth, systemctl start bluetooth.service, or bluetoothctl > power on doesn’t get the bluetooth working. It acts as if no dongle is found. The ONLY thing that seems to have worked so far is a suspend and resume. While I can do this each time I need to use bluetooth, it feels really janky and weird. Is there something I’m missing or is it a result of a hardware/firmware issue that can’t be worked around?

    Here is the output of rfkill list all after suspend/resume to get bluetooth working:

    0: phy0: Wireless LAN
    Soft blocked: no
    Hard blocked: no
    1: hci0: Bluetooth
    Soft blocked: no
    Hard blocked: no
    

    when this is done before a suspend/resume, the bluetooth part doesn’t show up at all.
    Forgive me if the following isn’t relevant. Here is the output of lsusb:

    Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
    Bus 003 Device 003: ID 13d3:56a6 IMC Networks 
    Bus 003 Device 004: ID 0bda:b023 Realtek Semiconductor Corp. 
    Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    

    my wifi card according to lspci is 04:00.0 Network controller: Realtek Semiconductor Co., Ltd. RTL8822BE 802.11a/b/g/n/ac WiFi adapter , I believe this also the bluetooth hardware.

    Note: in order to boot into Antergos or any other linux distro, amd_iommu=pt ivrs_ioapic[32]=00:14.0 iommu=soft has to be added to the GRUB entry, otherwise the system hangs immediately after GRUB. This is a problem with this computer in particular (Thinkpad E585), I’m not sure if it’s part of the problem with the bluetooth.

    Here is my systemd journal. I’m brand new to an arch-based distro, please let me know if I’ve forgotten anything.

    EDIT, three months later: This issue still occurs on all linux distros for this laptop, whether they are installed, or on live USB. Bluetooth is not picked up by the system at all until a sleep + wake up is done. Not sure if it’s a kernel issue or a firmware issue.

    I should note that this laptop already has issues with running any linux distro, and requires somes additional arguments to be added to grub/etc. before boot, as detailed in this Arch Wiki page. https://wiki.archlinux.org/index.php/Laptop/Lenovo#E_series

    I thought I’d leave an update for anyone stumbling across this page in the future, but I don’t care enough about the issue to further play around with it, as bluetooth is not that important to me on this laptop. So I will be leaving this issue as unresolved for now.

  • Do you choose bluetooth from install?
    What gives

    systemctl status bluetooth
    
  • Yes, I did.

    Here is the output on normal boot and login, when bluetooth doesn’t work:

    ● bluetooth.service - Bluetooth service
       Loaded: loaded (/usr/lib/systemd/system/bluetooth.service; enabled; vendor preset: disabled)
       Active: active (running) since Fri 2019-02-22 20:21:21 AST; 19s ago
         Docs: man:bluetoothd(8)
     Main PID: 1121 (bluetoothd)
       Status: "Running"
        Tasks: 1 (limit: 4915)
       Memory: 2.0M
       CGroup: /system.slice/bluetooth.service
               └─1121 /usr/lib/bluetooth/bluetoothd
    
    Feb 22 20:21:21 ThinkpadE585-Antergos systemd[1]: Starting Bluetooth service...
    Feb 22 20:21:21 ThinkpadE585-Antergos bluetoothd[1121]: Bluetooth daemon 5.50
    Feb 22 20:21:21 ThinkpadE585-Antergos systemd[1]: Started Bluetooth service.
    Feb 22 20:21:21 ThinkpadE585-Antergos bluetoothd[1121]: Starting SDP server
    Feb 22 20:21:21 ThinkpadE585-Antergos bluetoothd[1121]: Bluetooth management interface 1.14 initialized
    

    Here is the output after doing a suspend+resume, when bluetooth IS working:

    ● bluetooth.service - Bluetooth service
       Loaded: loaded (/usr/lib/systemd/system/bluetooth.service; enabled; vendor preset: disabled)
       Active: active (running) since Fri 2019-02-22 20:15:51 AST; 3min 9s ago
         Docs: man:bluetoothd(8)
     Main PID: 1116 (bluetoothd)
       Status: "Running"
        Tasks: 1 (limit: 4915)
       Memory: 3.2M
       CGroup: /system.slice/bluetooth.service
               └─1116 /usr/lib/bluetooth/bluetoothd
    
    Feb 22 20:15:51 ThinkpadE585-Antergos systemd[1]: Starting Bluetooth service...
    Feb 22 20:15:51 ThinkpadE585-Antergos bluetoothd[1116]: Bluetooth daemon 5.50
    Feb 22 20:15:51 ThinkpadE585-Antergos systemd[1]: Started Bluetooth service.
    Feb 22 20:15:51 ThinkpadE585-Antergos bluetoothd[1116]: Starting SDP server
    Feb 22 20:15:51 ThinkpadE585-Antergos bluetoothd[1116]: Bluetooth management interface 1.14 initialized
    Feb 22 20:17:38 ThinkpadE585-Antergos bluetoothd[1116]: Endpoint registered: sender=:1.86 path=/MediaEndpoint/A2DPSource
    Feb 22 20:17:38 ThinkpadE585-Antergos bluetoothd[1116]: Endpoint registered: sender=:1.86 path=/MediaEndpoint/A2DPSink
    

    (note the extra two lines at the bottom)

  • @numou said in Bluetooth ONLY works after suspend and wake-up [GNOME, Thinkpad E585]:

    RTL8822BE

    /usr/lib/firmware/rtlwifi/rtl8822befw.bin is owned by linux-firmware 20190212.28f5f7d-1
    

    may try linux-firmware-git

    (more recent firmware files)

    or LTS Kernel (Long Term Supported Kernel)

    https://forums.lenovo.com/t5/Linux-Discussion/Anyone-get-bluetooth-working-in-Linux-on-E485-E585-RTL8822BE/td-p/4199890

    Is the same behavior than yours…

  • @joekamprad I have installed linux-firmware-git and rebooted, still nothing unless I sleep+wake. Unless there is more I need to do with it - sorry I’m not very familiar with AUR besides building packages from pamac.

    I could try an older kernel and play around with various proposed fixes like the one you linked me. Though I think that’s more work than this is worth - I might end up just forgetting about it. Everything else on the system works fine and bluetooth is really not that important to me, I’d rather not potentially break the system.

    @ringo32 I actually did that already - I think it may be why bluetooth comes on immediately after a sleep/wake instead of having to go into the settings to turn it on first. But it doesn’t seem to make bluetooth work upon a regular boot up. Looks like maybe it’s more of a kernel or firmware issue.

  • @numou said in Bluetooth ONLY works after suspend and wake-up [GNOME, Thinkpad E585]:

    Thinkpad E585

    Any hardware modifications? There are several h/w configs of your notebook model implying SSD or a possibility to add it or replace HDD with it. So, passing the way, I’ve got similar config (another brand) with multiboot. In case of SSD-installed OSs I always have to refresh desklets as wireless connection just cannot catch up with the speed of SSD-installed OSs are booting so I remain with no connection for a second or two. Vice versa is with HDD-installed OS: I get fully functional GUI with wireless connections ready and up (but after waiting a hell a little bit more of time). Maybe slowing down Bluetooth loading during boot will do the trick?

  • @7314776 Yup! I have an NVMe SSD installed as the boot device. Both Antergos and Windows boot from it (note: bluetooth works fine in Windows without a sleep/wake cycle). Then there’s the regular SATA HDD which has no OS data on it.

    How would I go about “slowing down” bluetooth during boot? I’m not entirely sure what you mean by that. So are you saying that the OS and such boot so quickly that bluetooth isn’t given enough time to properly initialize, or something?

    Note that it doesn’t matter how long I wait after first boot… bluetooth never loads UNTIL a sleep then wake is performed.

  • @numou
    Yup, just right that. In Windows I have to wait more than a couple of seconds like in Arch, the latter has one-two-three of them to wake up. Instead, Windows counterpart loads everything but needed to build-up network interface (when Dropbox is already loaded but just does not realizes it is on-line) so here the core question: loading (re-loading) of your wireless drivers after the core system is loaded. P.S. Trier, not an expert, so I can just propose the way out, not to define it.

bluetooth54 suspend49 wake-up1 [gnome1 Posts 9Views 158
Log in to reply
Bloom Email Optin Plugin

Looks like your connection to Antergos Community Forum was lost, please wait while we try to reconnect.