宣伝されているbluetoothデバイスクラスをコンピューターから電話に変更しようとしています。ubuntu12.04を実行しています。 bluezソースをダウンロードし、main.confファイルを編集して行を変更しました
Class = 0x000100
他の何かに。私は使った
Class = 0x0c025a
それからmake && make installを実行しました。 /etc/bluetooth/main.conf
ファイルが私の変更で更新されたため、これは問題なく動作すると思います。
問題は、実際にデバイスに接続しようとすると
hcitool cc <bdaddr>
0x000100
ではなく、クラス0x0c025a
を使用して広告を出していることがわかります。
この変更を有効にするためにここで何が欠けていますか?
まず、インターフェース名を見つけます。
hciconfig
hci0
など、インターフェイスの名前が表示されます。
インターフェースクラスを表示する場合:
hciconfig hci0 class
デバイスクラスが表示されます。
最後に、スーパーユーザー権限で:
Sudo hciconfig hci0 class 000408
デバイスの新しいクラスをセットアップする必要があります。
16進表現と2進表現のbluetoothクラスの便利なリファレンスは、次の場所にあります。 http://www.question-defense.com/tools/class-of-device-bluetooth-cod-list-in-binary- and-hex
/etc/bluetooth/main.confファイルのクラス名を変更する必要があります。
Class = 0x00041C
次に、Bluetoothサービスを再起動します
Sudo service bluetooth restart
次に、トップパネルアイコンからBluetoothをオフにして、オンにします。
BlueZ hostname
プラグインは、/etc/bluetooth/main.conf
のName
およびClass
設定をオーバーライドします。 Bluetooth Class of Device(CoD)を指定するには、次の手順に従います。
/lib/systemd/system/bluetooth.service
を変更して、bluetoothデーモンの起動時にhostname
プラグインのロードをスキップします。例:
Sudo sed -i 's/bluetoothd/bluetoothd \-\-noplugin=hostname/g' /lib/systemd/system/bluetooth.service
または、--plugin=<plugins>
を使用して包含リストを指定できます。 bluetoothd(8)
および https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/plugins を参照してください
/etc/bluetooth/main.conf
を編集し、[一般]セクションでClass
を指定します。 BlueZ X.YZ
以外のものが必要な場合は、Name
も指定します。
[General]
Class = 0x1c0420
Name = UbuntuCarAudio
変更を有効にするために、Bluetoothサービスを再起動または再起動します。
Sudo systemctl daemon-reload
Sudo service bluetooth restart
hciconfig -a
またはecho 'show' | bluetoothctl
を実行して、変更を確認します。 hciconfig -a
は、デコードされたデバイスクラス(CoD)情報を表示します。
Name: 'UbuntuCarAudio'
Class: 0x1c0420
Service Classes: Rendering, Capturing, Object Transfer
Device Class: Audio/Video, Car Audio