Я пытаюсь изменить свой рекламируемый класс bluetooth-устройства с компьютера на телефон, рабочую человечность 12.04. Я загрузил источники блюза и отредактировал main.conf файл для изменения строки
Class = 0x000100
к чему-то еще. Я использовал
Class = 0x0c025a
Затем я работал, заставляют && сделать установку. Я думаю что работы хорошо потому что /etc/bluetooth/main.conf
файл был обновлен с моими изменениями.
Теперь, проблема - это, когда я на самом деле пытаюсь соединиться с устройством
hcitool cc <bdaddr>
Я вижу, что все еще рекламирую меня с помощью Класса 0x000100
и нет 0x0c025a
.
Что я пропускаю здесь для получения, это изменяется для вступления в силу?
Во-первых, найдите свое имя интерфейса:
hciconfig
Это должно дать Вам название интерфейса, например, hci0
.
, Учитывая, которые отображают Ваш интерфейсный класс:
hciconfig hci0 class
, Который должен отобразить Ваш класс устройства.
Наконец, с полномочием суперпользователя:
sudo hciconfig hci0 class 000408
должен настроить новый класс Вашего устройства.
А полезная ссылка классов 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
плагин переопределяет Name
и Class
настройки в /etc/bluetooth/main.conf
. Выполните эти шаги для определения Класса устройства (CoD) Bluetooth:
Пропустите загрузку hostname
плагин при запуске демона Bluetooth путем изменения /lib/systemd/system/bluetooth.service
. Пример:
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
в разделе General. Указать Name
также, если Вы хотите что-то другое, чем BlueZ X.YZ
:
[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