RFCOMMデバイスが欠落しているようです(dev / rfcomm0)。

RFCOMMデバイスが欠落しているようです(dev / rfcomm0)。

Bluetooth経由でシリアルコマンドを送受信しようとしています。 pyBluezライブラリをインストールしました。問題は、rfcomm.confが存在しますが、rfcomm0が/ dev /ディレクトリにないことです。再起動しましたが、何も変わりませんでした。

次のコマンドを実行すると、「許可拒否」エラーが発生します。

sudo echo "This is a test" > /dev/rfcomm0

USB Bluetoothモジュールが接続された後にrfcommが/ devに自動的に追加されないのはなぜですか? Bluetoothモジュールは互換性があり、コマンドラインを介してデバイスを検索して見つけることができます。 Bluezとbluez-utilsはすでにインストールされています。

ベストアンサー1

Bluetoothサービスが有効になっていても、/dev/rfcomm0デバイスは自動的に表示されません。

/dev/rfcomm*特定のデバイス名を特定のBluetoothデバイス+チャンネルの組み合わせにバインドできるように、少なくともBluetoothサブシステムはBluetoothデバイスのアドレスとそのチャンネルを知る必要があります。

rfcomm bind 0 <bdaddr> [channel]を使用してバインドできます/dev/rfcomm0。チャンネル番号を指定しない場合、デフォルトではチャンネル 1 が使用されます。使用しているバージョンがrfcommまだ/etc/bluetooth/rfcomm.confファイルをサポートし、ファイルに書き込むアドレスとチャネル情報がある場合は、コマンド/dev/rfcomm0からアドレスとチャネル情報を省略できますが、バインドするにはコマンドを使用する必要があります。

BlueZツールの新しいバージョンはもはやこの/etc/bluetooth/rfcomm.confファイルを記録しないようです。rfcomm bindバインディングを設定するには、常にコマンドの完全な形式を使用する必要があります。/etc/rc.local再起動後も接続は維持されないため、起動時に自動的に実行されるように、一部のカスタム起動スクリプトにこれらのコマンドを追加する必要があります。

BlueZ内の最後の主要な再構築により、ファイルなどの一部のRFCOMM関連機能が失われているようです/etc/bluetooth/rfcomm.conf。ただし、少なくともrfcommコマンドはまだ使用可能であり、操作を実行します。

おすすめ記事