Bluetooth не работает после выхода из спящего режима, Ubuntu 18.04 LTS


28

Bluetooth наушники работают нормально до сна. Однако после выхода из спящего режима они на короткое время подключаются, а затем отключаются. На blueman выдана ошибка: Ресурс временно недоступен. Эта проблема возникла только после обновления до 18.04 LTS.

Вот вывод терминала для 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
У меня та же проблема с динамиком JBL Go и новой установкой 18.04. Ничего подобного перезапуск bluetooth.serviceили удаление btusbмодуля и его повторная установка не работали. Пришлось перезагрузить .
SolsTiCe

У меня та же проблема, всякий раз, когда уходит из сна, есть шанс, что Ubuntu работает так, будто Bluetooth вообще не существует (поэтому перезапуск службы не работает). Сон и возобновление снова решают это иногда.
Фрегулья

@ K7AAY по какой-то причине hibernate вообще не работает, поэтому я не могу это проверить.
Нихил Садасиван,

Пожалуйста, отредактируйте, чтобы включить результаты из терминала дляlsusb
Jeremy31

Та же проблема здесь. Мне нужно перезагрузить компьютер, чтобы колонки снова заработали.
user1945827

Ответы:


27

обновить bluez до> = 5.28.2

18.04 поставляется с багги пакетом bluez; более новая версия доступна из этого PPA: https://launchpad.net/~bluetooth/+archive/ubuntu/bluez :

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

Обходной путь для глючного апплета Bluetooth (для Unity?)

Вероятно, это упомянутая проблема @solstice - апплет меню BT не позволяет мне включить Bluetooth после выхода из спящего режима. Независимо от того, выключен тумблер или выключен, значок BT отключен, и вывод rfkill не изменяется:

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

Вы можете переключать BT вручную, запустив (замените свой собственный идентификатор):

rfkill block 12
rfkill unblock 12

и BT-апплет должен правильно его поднять. На этом этапе вы сможете подключиться к своим устройствам. Сейчас я взломал его вместе, используя скрипт, который делает это автоматически после возобновления:

$ 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

Идентификационный номер рядом с hci0 в выводе списка rfkill, похоже, увеличивается после каждого приостановления / возобновления. Отключение / включение BT с помощью меню BT должно изменить выход («программно заблокировано: да» для BT, отключенного через меню), но это не так. Я предполагаю, что апплет запоминает неправильный идентификатор устройства и, таким образом, пытается включить устройство, которое больше не существует.


1
Просто обновление пакета bluez сделало это для меня, спасибо!
Нихил Садасиван

То же обновление bluez работает как шарм!
Санкет Катта

1
Обновление: это работало только для 1 цикла сна. Однако после нескольких я вернулся к той же проблеме.
Санкет Катта

Если ошибка не была исправлена ​​обновлением, обновление bluez сработало для меня.
user1945827

Использование blueman applet ( sudo apt install blueman) и обновленного bluez (из ppa) работает хорошо для меня.
Марк

4

Для меня эту проблему можно решить, запустив

sudo service bluetooth restart

после пробуждения


3

Я бегу 19.04 и имею эту проблему. У меня есть мышь BT, так что это действительно раздражает.

На расширенный ответ @hinxnz:

Откройте новый файл:

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

Вставьте в этот скрипт:

#!/bin/sh

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

И, наконец, сделать его исполняемым

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

2

Попробуй в терминале (рут не нужен)

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

Это может быть связано с ошибкой в ​​gnome-control-center. Не уверена. Я нашел это, чтобы обойти эту ошибку и может быть вашим тоже.


К сожалению, это не решает проблему для меня. Спасибо, что поделились, хотя!
Нихил Садасиван

1

Это то, что я сделал, чтобы заставить его работать на 18.04 LTS

Обновлен Bluetooth:

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

Создать новый файл:

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

Написать и сохранить:

#!/bin/sh

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

Изменены разрешения:

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

1
Использование chmod + x было бы более безопасным решением, если вы просто хотите сделать этот исполняемый файл. Это позволит любому пользователю в системе запустить что-либо от имени пользователя root, просто заменив содержимое этого файла.
Стив Макколи

после сохранения этого скрипта мой Dell XPS (18.04lts) не будет спать. похоже, он засыпает и через 2сек просыпается, вот и все.
бритва

Не чмод 777, никогда. Если вы точно не знаете, что делаете. Вы должны обернуть этот скрипт case $1 in post)так, чтобы он запускался только после пробуждения. Также sudo не требуется в сценарии.
Лоран



0

В моем случае laptop-mode-toolsбыл виновником

$ sudo apt удалить инструменты для ноутбука


Пожалуйста, не размещайте один и тот же ответ на многие сообщения. Вместо этого, если сообщения достаточно похожи друг на друга, пометьте другие сообщения как дубликаты одного из других. Просто перепостить один и тот же ответ на несколько вопросов очень шумно.
Томас Уорд
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.