btattachを使用する最新のIntelおよびBroadcomチップセットの「起動時に自動的に」Bluetoothを有効にする方法は?

btattachを使用する最新のIntelおよびBroadcomチップセットの「起動時に自動的に」Bluetoothを有効にする方法は?

IntelおよびBroadcomの一部の最新のBluetoothチップセットでは、btattachBluetoothを正しく有効にするためにユーザースペースでこのコマンドを実行する必要があります(BTチップセットを「接続」し、必要に応じて必要なファームウェア負荷をトリガーします)。

この例は、次のコマンドを必要とするLenovo ThinkPad 8タブレットのBroadcom BCM43241 rev B5チップセットですが、# btattach --bredr /dev/ttyS1 -P bcmこれはUARTコントローラに接続されている他の多くのBluetoothチップセットに適用されます。

btattachQ:起動中にBluetoothを自動的に有効にするために必要なコマンドを実行する最も推奨される方法は何ですか?

PS最近、多くの最新のデバイスには基本的にBluetooth機能がまったくないため、コマンドのパッケージ化を開始したLinuxディストリビューション(Debianなど)btattachにこれらの修正を提供することがアイデアです。これは、フルサイズのUSBポートがほとんどないかまったくないタブレットに特に便利です。

ベストアンサー1

linux-bluetoothメーリングリストに関するディスカッションでは、対応するメーリングリストを作成することを提案しましたudev rule。を参照してください。このメッセージ

質問に記載されている特定のチップセットの場合、単純なudevルールは次のとおりです。

$ cat /etc/udev/rules.d/98-bluetooth-attach-broadcom.rule KERNEL=="BCM2E55:00", RUN+="/usr/bin/btattach --bredr /dev/ttyS1 -P bcm"

そしてBCM2E55:00対応するBluetoothチップセットのハードウェアACPI識別子で、次のように表示されます。ターミナルS1デバイスノード(のsysfsで表示されます/sys/devices/platform/80860F0A:00/tty/ttyS1/device/BCM2E55:00$)各ACPI識別子をルールファイルに追加し、対応する/ dev / ttyS *を各チップセットバリアントに合わせて調整する必要があります。

しかし、この単純なアプローチの既知の制限は、上記のように短時間だけ動作することです。ここ。実際、btattachコマンドは数秒/分後に終了します。これは次の動作の記録ですudev

デーモンや他の長期実行プロセスを開始することは、分離の有無にかかわらずudevには適していません。イベント処理が完了した後。 `

btattachしたがって、他のオプションでは終了しないようにするために、たとえばsystemdサービスを介してルール自体から直接コマンドを実行するのではなく、間接的なトリガが必要です。udevbtattach

この簡単な答えは、予備テストを実行するとき、特に正しいudevルール条件を見つけるときにまだ役に立ちます。

おすすめ記事