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

Я пытаюсь скомпилировать библиотеку TinyB от Intel. Я нашел этот сценарий: https://gist.github.com/StevenRudenko/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/


# Update BlueZ
sudo apt-get update
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
tar xvf bluez-5.39.tar.xz 
cd bluez-5.39/

aclocal 
autoheader 
automake --force-missing --add-missing 
autoconf
./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/share/man \
            --sysconfdir=/etc \
            --localstatedir=/var \
            --enable-experimental \
            --enable-maintainer-mode

make
sudo make install
sudo cp attrib/gatttool /usr/local/bin
sudo sed -i '/^ExecStart.*bluetoothd\s*$/ s/$/ --experimental/' /lib/systemd/system/bluetooth.service
sudo ln -s /lib/firmware /etc/firmware
sudo systemctl enable bluetooth
sudo systemctl daemon-reload

sudo apt-mark hold bluez



sudo nano /lib/systemd/system/bluetooth.service
  ExecStart=/usr/local/libexec/bluetooth/bluetoothd --experimental  
sudo systemctl daemon-reload
sudo systemctl restart bluetooth

bluetoothctl
  power on
  agent on
  scan on
  scan off
  info 00:34:40:0A:00:4E
  pair 00:34:40:0A:00:4E
  devices
  list-attributes 00:34:40:0A:00:4E
  read
  atribute-info
  select-attribute /org/bluez/hci0/dev_00_32_40_08_00_12/service002e/char002f
  write 0x3 0x4 0x10 0x20 0x30 0x40
  disconnect 00:32:40:08:00:12
  quit

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

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

mkdir build
cd build
cmake -DBUILDJAVA=ON ..
make
sudo checkinstall install
// to remove dpkg -r build

java -Djava.library.path=/usr/lib/jni -cp /usr/share/java/RXTXcomm.jar -jar your.jar

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

Во-первых:

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

Второй: sudo systemctl enable bluetooth не работа, срок выполнения Юнит-файл /etc/systemd/system/bluetooth.service замаскирован. Должен ли я разоблачить его?

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

sudo nano /lib/systemd/system/bluetooth.service
  ExecStart=/usr/local/libexec/bluetooth/bluetoothd --experimental  

и зачем она мне?

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

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

0
задан 19 June 2021 в 15:24

1 ответ

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

sudo nano /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
  power on
  agent on
  scan on
  scan off
  info 00:34:40:0A:00:4E
  pair 00:34:40:0A:00:4E
  devices
  list-attributes 00:34:40:0A:00:4E
  read
  atribute-info
  select-attribute /org/bluez/hci0/dev_00_32_40_08_00_12/service002e/char002f
  write 0x3 0x4 0x10 0x20 0x30 0x40
  disconnect 00:32:40:08:00:12
  quit

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

export PATH=/usr/lib/jvm/java-8-openjdk/bin/:$PATH
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk/
mkdir build
cd build
cmake -DBUILDJAVA=ON -DCMAKE_INSTALL_PREFIX=/usr ..
make install

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

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

0
ответ дан 28 July 2021 в 11:27

Другие вопросы по тегам:

Похожие вопросы: