web-dev-qa-db-ja.com

スリープから復帰した後、Bluetoothが機能しない、Ubuntu 18.04 LTS

Bluetoothイヤホンは、スリープするまで正常に動作します。ただし、スリープから復帰した後、接続を切断する前にしばらく接続しているように見えます。ブルーマンでは、指定されたエラーはリソースが一時的に利用不可です。この問題は、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
25

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を手動で切り替えることができます(独自のIDに置き換えます)。

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

Rfkillリスト出力のhci0の横にあるID番号は、一時停止/再開するたびに増加するようです。 BTメニューを使用してBTを無効化/有効化すると、出力が変更されます(メニューで無効化されたBTの「ソフトブロック:はい」)が、変更されません。私の推測では、アプレットは間違ったデバイスIDを記憶しているため、もはや存在しないデバイスを有効にしようとしています。

25
lubomir.brindza

私にとって、この問題は次のコマンドを実行することで解決できます。

Sudo service bluetooth restart

眠りから覚めた後

3
trts

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
Laurent

ターミナルで試してください(ルートは必要ありません)

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

これはgnome-control-centerのバグに関連している可能性があります。わからない。私はこれがそのバグを回避し、あなたのものである可能性があることを発見しました。

2
solsTiCe

これは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
hinxnz

ここで説明するように、bluezの新しいバージョンにアップグレードすると、接続後数秒でBluetooth接続が切断されるという別の問題が解決しました。 Ubuntu 18.04:Lenovo P50 に接続した直後にBluetoothデバイスが切断されます

0
Maarten

この回答 に基づく、pulseaudioおよびUbuntu 18の場合

Sudo apt-get install pulseaudio-module-bluetooth
pactl load-module module-bluetooth-discover
0
surfealokesea