見出し画像

Void LinuxでBluetoothを使うためのメモ

Void LinuxにはArch Linuxなどで便利なsystemctlは入っていないので  bluetoothを使うために他の方法をしないといけないので難しい。

Bluetoothを使うためのメモをこのnoteに記録します。

基本的なおおざっぱな手順はVoid Linuxの公式ドキュメントを参照。

内容がうすくてあまり参考にならなかった。


Bluetoothコントローラーがblockされていないかの確認

rfkillコマンドで確認できる。unblockedとなっていればOK.

[void@void ~]$ rfkill
ID TYPE      DEVICE      SOFT      HARD
1 wlan      phy0   unblocked unblocked
3 bluetooth hci0   unblocked unblocked

もしblockedとなっていたら、次のコマンドでunblockに変更する。

# rfkill unblock bluetooth

もしかしたらBIOSの方でハードウェア的にロックかかってるかもしれないので、BIOSの方でも確認しておく。

bluezをインストールする

Bluetoothのためのパッケージbluezをインストール

$ xbps-install bluez

インストールしたらbluetoothdとdbusサービスを起動する。

サービスを起動する前に、bluetoothdとdbusについて知らないので調べた。

bluetoothdはman bluetoothでマニュアルを見れる。
bluetooth deviceを管理するbluetooth daemon。

dbusは下記を参照。プロセス間でメッセージのやりとりをするためのシステム。


void linuxでサービスを起動およびいつも有効にする方法は下記を参照。

/etc/sv/ <サービス名>にインストールしたサービスが入っている。

そのサービスをいつも有効にしたい場合は、/var/serviceにシンボリックリンクをつくると常にそのサービスが有効となる。

# ln -s /etc/sv/<service> /var/service/

シンボリックリンクについては下記の記事がめっちゃ分かりやすいです。

https://wa3.i-3-i.info/word1151.html

/var/serviceにサービスのショートカットを入れておくと、OSがbootされるときに/var/serviceの中に入っているサービスが起動されるので、結果としてPC起動時にサービスが起動されるので、常にサービスが有効になっているという仕組み。

上記のため、/etc/sv/bluetoothdのショートカット(シンボリックリンク)を/var/serviceに作成する。

# ln -s /etc/sv/bluetoothd /var/service/

lnコマンドはsymbolic linkを作成するコマンド。
-sオプションはsymbolic linkを作成するためのオプション。

dbusのほうはシンボリックリンク作成しなくても、すでに/var/serviceに入っていた。


/var/serviceディレクトリに入れているサービスは下記のようにsvコマンドで各種の操作が可能。

// <service>のところには/var/service/bluetoothdのように/var/service/*をいれる
# sv up <services>
# sv down <services>
# sv restart <services>
# sv status <services>

サービスの状態はsv statusコマンドで確認することができる。


ここまでで、bluetoothdとdbusを起動できていることを確認できたら、pcを再起動することで、きちんと反映される。


あとは/etc/bluetooth/main.confファイルを設定したらbluetoothdがこのファイルの設定を読み込む。

さいごにbluetoothctlを使って接続できるけど、この2つのステップでつまづいている。

main.confの設定内容をコメントのまま設定していないからか、bluetoothctlでpower onコマンドを実行してもno default controller availableと表示されてしまう。あるいは、firmwareをインストールする必要があるのかも。dmsgなどでログを確認するなどしてこの辺も調査していきます。



















この記事が気に入ったらサポートをしてみませんか?