Bluetooth nie działa po wznowieniu pracy ze stanu uśpienia, Ubuntu 18.04 LTS


27

Słuchawki Bluetooth działają dobrze aż do snu. Po wznowieniu uśpienia wydają się jednak łączyć przez krótką chwilę przed rozłączeniem. W blueman podany błąd to Zasób tymczasowo niedostępny. Ten problem pojawił się dopiero po aktualizacji do 18.04 LTS.

Oto wyjście terminala dla lsusb:

Bus 001 Device 002: ID 8087:8001 Intel Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 004: ID 1bcf:0002 Sunplus Innovation Technology Inc. 
Bus 002 Device 003: ID 04f2:b477 Chicony Electronics Co., Ltd 
Bus 002 Device 002: ID 0a5c:21f1 Broadcom Corp. HP Portable Bumble Bee
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

1
Mam ten sam problem z głośnikiem JBL Go i nową instalacją 18.04. Nic nie działało jak ponowne uruchomienie bluetooth.servicelub usunięcie btusbmodułu i ponowne włożenie go ponownie. Musiałem zrestartować komputer .
solsTiCe

Mam ten sam problem, za każdym razem, gdy wznawiam ze snu, istnieje szansa, że ​​ubuntu zachowuje się tak, jakby w ogóle nie było bluetooth (dlatego dlaczego ponowne uruchomienie usługi nie działa). Ponowne zaśnięcie i wznowienie go rozwiązuje.
Freguglia,

@ K7AAY z jakiegoś powodu hibernacja w ogóle nie działa, więc nie mogę tego zweryfikować.
Nikhil Sadasivan

Edytuj, aby uwzględnić wyniki z terminala dlalsusb
Jeremy31

Mam ten sam problem. Muszę ponownie uruchomić komputer, aby głośniki znów działały.
user1945827

Odpowiedzi:


27

zaktualizuj bluez do> = 5.28.2

18.04 jest na razie dostarczany z błędnym pakietem bluez; nowsza wersja jest dostępna z tego PPA: https://launchpad.net/~bluetooth/+archive/ubuntu/bluez :

sudo add-apt-repository ppa:bluetooth/bluez
sudo apt install bluez

obejście błędnego apletu Bluetooth (specyficzne dla Unity?)

Jest to prawdopodobnie wspomniany problem @solstice - aplet menu BT nie pozwala mi włączyć Bluetooth po wznowieniu ze stanu uśpienia. Bez względu na to, czy przełącznik jest wyłączony, czy włączony, ikona BT jest wyłączona, a wyjście rfkill nie zmienia się:

$ rfkill list
0: phy0: Wireless LAN
    Soft blocked: no
    Hard blocked: no
12: hci0: Bluetooth
    Soft blocked: no
    Hard blocked: no

Możesz przełączać BT ręcznie, uruchamiając (zamień swój własny identyfikator):

rfkill block 12
rfkill unblock 12

a aplet BT powinien teraz poprawnie go odebrać. W tym momencie powinieneś być w stanie połączyć się ze swoimi urządzeniami. Na razie zhakowałem go razem za pomocą skryptu, który robi to automatycznie po wznowieniu:

$ cat /lib/systemd/system-sleep/bt
#!/bin/sh

case $1 in
  post)
    sleep 5
    rfkill block `rfkill list | grep hci | cut -d: -f1`
    sleep 1
    rfkill unblock `rfkill list | grep hci | cut -d: -f1`
    ;;
esac

Numer identyfikacyjny obok hci0 na wyjściu listy rfkill wydaje się zwiększać po każdym zawieszeniu / wznowieniu. Wyłączenie / włączenie BT za pomocą menu BT powinno zmienić wyjście („soft zablokowany: tak” dla BT wyłączony przez menu), ale tak nie jest. Domyślam się, że aplet pamięta niewłaściwy identyfikator urządzenia i dlatego próbuje włączyć urządzenie, które już nie istnieje.


1
Właśnie aktualizacja pakietu bluez zrobiła to dla mnie, dziękuję!
Nikhil Sadasivan

Te same aktualizacje Bluez działały jak urok!
Sanketh Katta,

1
Aktualizacja: Działa tylko przez 1 cykl snu. Jednak po wielokrotnym powracam do tego samego problemu.
Sanketh Katta

O ile błąd nie został już naprawiony przez aktualizację, aktualizacja bluez działała dla mnie.
user1945827

Korzystanie z apletu sudo apt install bluemanblueman ( ) i zaktualizowanego bluez (z ppa) działa dla mnie dobrze.
Mark

4

Dla mnie ten problem można rozwiązać, uruchamiając

sudo service bluetooth restart

po przebudzeniu


2

Wypróbuj w terminalu (nie wymaga roota)

btnum=`rfkill list|grep hci0| cut -f 1 -d ':'`
rfkill block $btnum
rfkill unblock $btnum

Może to być związane z błędem w centrum kontroli gnome. Niepewny. Znalazłem to, aby obejść ten błąd i może być również twój.


Niestety nie rozwiązuje to dla mnie problemu. Dzięki za udostępnienie!
Nikhil Sadasivan

2

Prowadzę 19.04 i mam ten problem. Mam mysz BT, więc to naprawdę denerwujące.

Aby poprawić odpowiedź @hinxnz:

Otwórz nowy plik:

sudo nano /lib/systemd/system-sleep/bt

Wklej w tym skrypcie:

#!/bin/sh

case $1 in
  post)
    modprobe -r btusb
    sleep 1
    service bluetooth restart
    sleep 1
    modprobe btusb
    ;;
esac

W końcu sprawi, że będzie wykonywalny

chmod +x /lib/systemd/system-sleep/bt

1

To właśnie zrobiłem, aby działało na 18.04 LTS

Zaktualizowany bluetooth:

sudo add-apt-repository ppa:bluetooth/bluez
sudo apt install bluez

Utwórz nowy plik:

sudo nano /lib/systemd/system-sleep/bt

Napisz i zapisz:

#!/bin/sh

sudo modprobe -r btusb
sleep 1
sudo service bluetooth restart
sleep 1
sudo modprobe btusb

Zmienione uprawnienia:

sudo chmod 777 /lib/systemd/system-sleep/bt

1
Użycie chmod + x byłoby bezpieczniejszym rozwiązaniem, jeśli chcesz po prostu uczynić to wykonywalnym. W ten sposób każdy użytkownik w systemie może uruchomić cokolwiek jako root, po prostu zastępując zawartość tego pliku.
Steeve McCauley

po zapisaniu tego skryptu mój komputer Dell XPS (18,04 litra) nie przejdzie w tryb uśpienia. wygląda na to, że idzie spać, a 2 sekundy później budzi się i to wszystko.
brzytwa

Nie chmod 777, nigdy. Chyba że dokładnie wiesz, co robisz. Powinieneś owinąć ten skrypt, case $1 in post)aby działał dopiero po wybudzeniu. Również sudo nie jest potrzebne w skrypcie.
Laurent



0

W moim przypadku laptop-mode-toolswinowajcą było:

$ sudo apt usuń narzędzia trybu laptopa


Nie publikuj tej samej odpowiedzi na wiele postów. Zamiast tego, jeśli posty są wystarczająco do siebie podobne, oflaguj pozostałe posty jako duplikaty jednego z pozostałych. Ponowne przesłanie tej samej odpowiedzi na wiele pytań jest bardzo głośne.
Thomas Ward
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.