Рейтинг:-1

Компиляция bluetooth-библиотеки tinyB

флаг pt

Я пытаюсь скомпилировать библиотеку TinyB от Intel. Я нашел этот скрипт: https://gist.github.com/СтивенРуденко/b6c032c3c1fdfb5c641ff95883e6cd02

https://github.com/intel-iot-devkit/tinyb

https://mcuoneclipse.com/2016/12/19/tutorial-ble-pairing-the-raspberry-pi-3-model-b-with-hexiwear/


# Обновить BlueZ
sudo apt-получить обновление
sudo apt-get install git build-essential autoconf cmake libtool libglib2.0 libdbus-1-dev libudev-dev libical-dev libreadline-dev
wget http://www.kernel.org/pub/linux/bluetooth/bluez-5.39.tar.xz
смола xvf bluez-5.39.tar.xz 
cd bluez-5.39/

аклокальный 
автозаголовок 
automake --force-missing --add-missing 
автоконф
./configure --prefix=/usr --mandir=/usr/share/man --sysconfdir=/etc --localstatedir=/var --enable-experimental --with-systemdsystemunitdir=/lib/systemd/system -- with-systemduserunitdir=/usr/lib/systemd

./configure --prefix=/usr \
            --mandir=/usr/доля/человек \
            --sysconfdir=/и т. д. \
            --localstatedir=/var \
            --enable-experimental \
            --enable-maintainer-mode

делать
судо сделать установить
sudo cp attrib/gatttool/usr/local/bin
sudo sed -i '/^ExecStart.*bluetoothd\s*$/ s/$/ --experimental/' /lib/systemd/system/bluetooth.service
sudo ln -s /lib/прошивка /etc/прошивка
sudo systemctl включить bluetooth
sudo systemctl демон-перезагрузка

sudo apt-mark удерживать блюз



судо нано /lib/systemd/system/bluetooth.service
  ExecStart=/usr/local/libexec/bluetooth/bluetoothd --experimental  
sudo systemctl демон-перезагрузка
sudo systemctl перезапустить bluetooth

bluetoothctl
  включить
  агент на
  сканировать на
  отсканировать
  информация 00:34:40:0A:00:4E
  пара 00:34:40:0A:00:4E
  устройства
  список атрибутов 00:34:40:0A:00:4E
  читать
  атрибут-информация
  выберите атрибут /org/bluez/hci0/dev_00_32_40_08_00_12/service002e/char002f
  запись 0x3 0x4 0x10 0x20 0x30 0x40
  отключить 00:32:40:08:00:12
  уволиться

sudo apt-get install cmake build-essentials check-install libglib2.0-dev doxygen

клон git https://github.com/intel-iot-devkit/tinyb.git

сборка mkdir
сборка компакт-диска
cmake -DBUILDJAVA=ON ..
делать
sudo checkinstall установить
// удалить сборку dpkg -r

java -Djava.library.path=/usr/lib/jni -cp /usr/share/java/RXTXcomm.jar -jar ваш.jar

но это немного не важно. Не могли бы вы помочь мне исправить это?

Во-первых:

Этот скрипт хочет скомпилировать bluez-5.39 с флагом -enable-experimental. Это действительно необходимо сейчас? Могу ли я просто загрузить последнюю версию библиотеки? Если нет, то при компиляции BlueZ много предупреждений, завершающих компиляцию с флагом -Werror. Кроме того, есть проблема с функцией «SIOCGSTAMP», и я не знаю, какую функцию здесь использовать: «SIOCGSTAMP_NEW» или «SIOCGSTAMP_OLD»?

Второй: sudo systemctl включить bluetooth не работает, из-за Файл модуля /etc/systemd/system/bluetooth.service замаскирован. Должен ли я разоблачать его?

Третье: что именно делает эта команда:

судо нано /lib/systemd/system/bluetooth.service
  ExecStart=/usr/local/libexec/bluetooth/bluetoothd --experimental  

и зачем мне это нужно?

Дальше по сценарию я не проходил, потому что третья часть мне кажется бессмысленной. Зачем дублировать ExecStart=/usr/local/libexec/bluetooth/bluetoothd --experimental в начале файла? Я надеюсь на вашу помощь.

Может быть, в каком-то репозитории уже есть скомпилированная библиотека tinyB, которая будет работать?

Рейтинг:0
флаг pt

Хорошо, я сделал это. Я использовал SIOCGSTAMP_OLD, игнорируйте странное издание: "

судо нано /lib/systemd/system/bluetooth.service
  ExecStart=/usr/local/libexec/bluetooth/bluetoothd --experimental 

", (этого было достаточно):

sudo sed -i '/^ExecStart.*bluetoothd\s*$/ s/$/ --experimental/' /lib/systemd/system/bluetooth.service

игнорировать часть: "

bluetoothctl
  включить
  агент на
  сканировать на
  отсканировать
  информация 00:34:40:0A:00:4E
  пара 00:34:40:0A:00:4E
  устройства
  список атрибутов 00:34:40:0A:00:4E
  читать
  атрибут-информация
  выберите атрибут /org/bluez/hci0/dev_00_32_40_08_00_12/service002e/char002f
  запись 0x3 0x4 0x10 0x20 0x30 0x40
  отключить 00:32:40:08:00:12
  уволиться

" и скомпилировать так:

экспорт PATH=/usr/lib/jvm/java-8-openjdk/bin/:$PATH
экспорт JAVA_HOME=/usr/lib/jvm/java-8-openjdk/
сборка mkdir
сборка компакт-диска
cmake -DBUILDJAVA=ON -DCMAKE_INSTALL_PREFIX=/usr ..
сделать установку

https://github.com/intel-iot-devkit/tinyb/issues/27

Теперь у меня работает TinyB, как на С++, так и на Java. Удачи.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.