今プライベートでメインで利用中のPC Thinkpad T490のArchLinux環境は実はちょっと前にSSDを交換するタイミングで一度OSを入れ替えている。ただその後からBluetoothがことごとく繋がらず、面倒で有線デバイスを使って誤魔化していたけど、いい加減重い腰をあげて対応したのでメモしておく
tl;dr(結論)
- ArchLinux 環境で Bluetooth オーディをが繋がらないなと思っていたら pulseaudio-bluetooth を入れ忘れていただけだった
そもそもArchLinux 環境で Bluetooth をつなげるようにするには?
基本的には以下のWikiが一番良くまとまっている。
ただ、結構情報量が多くて見落としとか出てしまうのかもしれない。今回の自分がそうだった。
発生していた症状
先ほどリンクを貼った Arch Wiki に従い、以下のパッケージはインストール済みだった
local/blueberry-wayland 1.4.8-1
Bluetooth configuration tool - Patched systray for Wayland/AppIndicator support
local/blueman 2.4.3-1
GTK+ Bluetooth Manager
local/bluez 5.78-1
Daemons for the bluetooth protocol stack
local/bluez-libs 5.78-1
Deprecated libraries for the bluetooth protocol stack
local/bluez-tools 0.2.0-6
A set of tools to manage Bluetooth devices for Linux
local/bluez-utils 5.78-1
Development and debugging utilities for the bluetooth protocol stack
local/gnome-bluetooth 3.34.5+r16+g61cfff1c-2
GNOME Bluetooth Subsystem (legacy)
local/gnome-bluetooth-3.0 47.1-1
GNOME Bluetooth Subsystem
定番の bluez やら gnome-bluetooth(これはCinamonでも安定して動く)は入っている。
そのためPCの設定にはBluetoothの項目もちゃんと出現しているのだがいつまで経っても Connect にならず。 「なんか対応漏れがありそうだな...」と思いつつも色々面倒になってしばらくそこから放置してしまっていた。
改めて、systemctl で bluetooth の status を除いてみると気になるエラーが出ていた
$ sudo systemctl status bluetooth.service
● bluetooth.service - Bluetooth service
Loaded: loaded (/usr/lib/systemd/system/bluetooth.service; enabled; preset: disabled)
Active: active (running) since Sat 2024-10-26 11:46:28 JST; 2h 48min ago
Invocation: c52a2951654a41629c48856025528574
Docs: man:bluetoothd(8)
Main PID: 691 (bluetoothd)
Status: "Running"
Tasks: 1 (limit: 57166)
Memory: 3.8M (peak: 4.3M)
CPU: 393ms
CGroup: /system.slice/bluetooth.service
└─691 /usr/lib/bluetooth/bluetoothd
Oct 26 11:46:28 archlinux bluetoothd[691]: src/plugin.c:init_plugin() System does not support micp plugin
Oct 26 11:46:28 archlinux bluetoothd[691]: src/plugin.c:init_plugin() System does not support ccp plugin
Oct 26 11:46:28 archlinux bluetoothd[691]: src/plugin.c:init_plugin() System does not support csip plugin
Oct 26 11:46:28 archlinux bluetoothd[691]: src/plugin.c:init_plugin() System does not support asha plugin
Oct 26 11:46:28 archlinux bluetoothd[691]: Bluetooth management interface 1.23 initialized
Oct 26 11:46:29 archlinux bluetoothd[691]: Battery Provider Manager created
Oct 26 14:20:12 archlinux bluetoothd[691]: src/service.c:btd_service_connect() a2dp-sink profile connect failed for **:**:**:**:**:**: Protocol not available
Oct 26 14:20:38 archlinux bluetoothd[691]: src/service.c:btd_service_connect() a2dp-sink profile connect failed for **:**:**:**:**:**: Protocol not available
Oct 26 14:20:39 archlinux bluetoothd[691]: src/service.c:btd_service_connect() a2dp-sink profile connect failed for 98
:80:BB:50:BF:C9: Protocol not available
Oct 26 14:20:39 archlinux bluetoothd[691]: src/service.c:btd_service_connect() a2dp-sink profile connect failed for **:**:**:**:**:**: Protocol not available
特に気になったのが以下の箇所
a2dp-sink profile connect failed for **:**:**:**:**:**: Protocol not available
これをみて「オーディオ系のプロトコルに対応する何かが入ってない?」という感じであたりがつく。
更に「Linux Bluetooth」あたりで調べていくと pulseaudio に関連する情報を目にして確認したところ pulseaudio 自体はインストール済みだったものの pulseaudio-bluetooth はインストールされていなかったことを確認。
インストールして bluetooth と pulseaudio の再起動
$ yay -S pulseaudio-bluetooth
$ pulseaudio -k && pulseaudio --start
$ sudo systemctl restart bluetooth.service
ここまで対応したところ、無事にヘッドセットなどが Bluetooth 接続できるようになった。めちゃめちゃ快適になった!!