サスペンドを初めて使用して再び起動するまで、Ubuntu 18.04を実行しているラップトップ(Acer Aspire V17 Nitro)でBluetoothは正常に機能していました。もうデバイスを検出しません。
私が試したもの:
再起動
Bluetoothの無効化と有効化
Bluetoothサービスの再起動
これらのパッケージの再インストール:bluez
gnome-bluetooth
pulseaudio-module-bluetooth
rfkill list
を実行しています:
0: hci0: Bluetooth
Soft blocked: no
Hard blocked: no
1: Acer-wireless: Wireless LAN
Soft blocked: no
Hard blocked: no
2: phy0: Wireless LAN
Soft blocked: no
Hard blocked: no
ライブUSBで起動し、そこでBluetoothを有効にします(デバイスも検出されません)
誰か他のアイデアはありますか?サスペンド中またはサスペンドからの復帰中に失敗したという事実は、手がかりかもしれません。
私の元のソリューションは、私にとって確実に機能しなくなりました。現在、サスペンドからの再開時に3つのケースのいずれかが表示されます。
この問題に100%対処する唯一の回避策は、BIOSを再起動し、BluetoothとWiFiの両方を手動でオン/オフに切り替えることです。
私が使用する回避策は、電源を抜き、ラップトップのふたを開いてから、ハードウェアの電源を入れ直します。これは約半分の時間で機能するため、多くの場合、これを2、3回行う必要があります。
少なくとも16.04以降、WiFi、Bluetoothが統合されたDell、Asus、およびMSIラップトップでKubuntuを使用すると、同じ問題が発生しています。断続的に発生します。確実に再現することはできませんが、サスペンドから再開した後にのみ発生します。
これが私のチップセットです。
$ lspci | grep Network
3a:00.0 Network controller: Qualcomm Atheros QCA6174 802.11ac Wireless Network Adapter (rev 32)
デフォルトの構成で問題が発生すると、bluetoothサービスは完全に再起動できなくなります。 Ossama Nasser's answer から多くを借りましたが、一時停止時にブルートゥースサービスを強制的にオフにしてから、再開時にアップしました。
以下の私のソリューションは、/lib/systemd/system-sleep/bluetooth
にも書き込まれます。
#!/bin/bash
if [ "${1}" == "pre" ]; then
service bluetooth stop
Elif [ "${1}" == "post" ]; then
sleep 5
service bluetooth start
fi
それが機能することを確認できれば、この回答を更新し続けます。繰り返しますが、この問題を再現するのはやや難しいようです。
私は同じ問題を抱えており、Ubuntu 14.04で遭遇した同様の問題の修正を借りています。さらに調査した結果、Bluetoothを再起動すると問題が解決することがわかりました。これは現在私のために働いているソリューションです:
1-フォルダー/lib/systemd/system-sleep/
に、次の内容のbluetooth
というスクリプトを作成します。
#!/bin/bash
if [ "${1}" == "post" ]; then
sleep 5
service bluetooth restart
fi
これにより、システムの再開から5秒後にbluetoothサービスが再起動されます(この方法は、今のところ私のために働いた唯一の方法です。将来的には心変わりするかもしれません)
2-スクリプトを実行可能としてマークします。
chmod +x /lib/systemd/system-sleep/bluetooth
私はKubuntu 18.04を使用していることを指摘したいと思います
さて、質問を書いている間、それは再び働き始めます。
ライブUSBを起動し、無効化 bluetoothで(以前に試した有効化の代わりに)再起動しました。その後、通常のインストールに戻って起動すると、デバイスが再び検出されます。
適切な解決策が見つかるまで、再び停止するつもりはありません。
とても神秘的な体験でした。実際に修正したかどうかはわかりません。誰かが正確に何が起こったかを知っているなら、私は知りたいです:-)
Ubuntu 18.04では、次のsystemdスクリプトを使用して問題を修正しました。
#!/bin/bash
case "$1" in
suspend)
# executed on suspend
;;
post)
modprobe -r psmouse
modprobe psmouse
;;
*)
;;
esac
/lib/systemd/system-sleep
の下にファイルを配置しました。 touchpad
などの名前を付けることができます。実行可能権限を忘れずに追加してください。