Подсистема Bluetooth в Linux и BlueZ

Я пытаюсь выяснить, как библиотека пользовательского пространства BlueZ взаимодействует с подсистемой Bluetooth в Linux. В частности, кто-нибудь знает ответы на следующие вопросы:

  • Версия подсистемы Bluetooth в ядре 4.9 — 2.22. Существует ли журнал изменений, специфичный для подсистемы Bluetooth?
  • Существуют ли требования к минимальной версии подсистемы Bluetooth для данной версии библиотеки BlueZ? Например. какова минимальная версия подсистемы Bluetooth для последней библиотеки BlueZ (v5.43)?

ПРИМЕЧАНИЕ. Основная причина, по которой я спрашиваю, — это мой интерес к «экспериментальным» функциям BLE и прочему, что происходит в BlueZ с момента выпуска 5. Я уже смотрел это прекрасное выступление: https://www.youtube.com/watch?v=tclS9arLFzk и попытался понять, какая скудная информация доступна на сайте bluez.org.


person gardarh    schedule 07.11.2016    source источник


Ответы (2)


По сути, ответом на мой собственный вопрос является этот документ:

https://git.kernel.org/cgit/bluetooth/bluez.git/tree/doc/mgmt-api.txt

У меня был очень полезный чат на канале #bluez freenode, который, возможно, является более подходящим местом для подобных вопросов.

Версия bluetoothd 5 и выше (т. е. часть пользовательского пространства BlueZ) должна работать с любой версией ядра 3.4 и выше. Однако есть некоторые функции, которые отсутствуют, если вы не используете более новое ядро. Эти функции перечислены в документе, указанном выше.

person gardarh    schedule 07.11.2016

В ссылке, которую я разместил ниже, говорится, что утилиты BlueZ взаимодействуют с ядром через интерфейс сокета berkley. Это означает, что утилиты BlueZ используют системные вызовы сокетов для взаимодействия с ядром. Также есть информация, что

BlueZ — официальный стек Bluetooth для Linux.

Таким образом, подсистема bluetooth в Linux — это сама BlueZ.

Что касается совместимости с LE, вы можете найти эту информацию полезной.

Здесь вы можете найти полезную информацию о BlueZ.

person nopasara    schedule 07.11.2016
comment
Кроме того, я предполагаю, что новейшая библиотека BlueZ должна иметь обратную совместимость, поэтому последняя версия библиотеки BlueZ должна работать с любой версией подсистемы bluetooth ядра Linux. Но со старыми библиотеками BlueZ могут возникнуть проблемы с новыми ядрами. - person nopasara; 07.11.2016
comment
Спасибо за ответ. Основная причина, по которой я спрашиваю, заключается в том, что подсистема Bluetooth несколько изменилась по сравнению с представленной вами схемой, в первую очередь с добавлением интерфейса управления (lwn.net/Articles/531133). Библиотека BlueZ 5 работает только с ядром версии 3.4 и выше, поэтому есть некоторые оговорки по поводу обратной совместимости. Я изучаю функции BLE, а именно те, которые отмечены как ЭКСПЕРИМЕНТАЛЬНЫЕ в библиотеках пользовательского пространства BlueZ, и я пытаюсь выяснить, достаточно ли устойчив код Bluetooth в моей версии ядра (3.14) к этим методам. - person gardarh; 07.11.2016