Кто-нибудь смог успешно установить Bluez 5.44 на Raspbian? Я хотел бы использовать это как на Raspi 3, так и на Raspi Zero W.
Я следовал множество различных руководств , но они все установки версии Bluez раньше , чем 5.44. Я не могу следовать ни одному из этих руководств и в итоге получить работающую установку Bluez 5.44.
Любой, кто сделал это, пожалуйста, поделитесь своими шагами.
Ответы:
Здесь я немного опоздал, но недавно у меня возникла головная боль, когда я следил за различными руководствами, ни одно из которых не помогло мне. Так что вот еще один гид ... который, вероятно, не будет работать для вас;)
Я скачал самую последнюю версию с официальной страницы: bluez.org/download . Если эта страница мертва, используйте эту .
Например, на момент написания статьи было 5,47, поэтому я использовал (на моей малине):
Затем я извлек это и построил это:
Прочитайте
README
! В нем перечислены зависимости и параметры конфигурации:Сначала установите зависимости: (glib, dbus, libdbus, udev и т. Д.) Большинство из них уже установлены и, если нет, их легко установить, все они предоставляются менеджером пакетов. Как только вы это сделали:
Я также добавил,
--enable-experimental
потому что я считаю, что объект GattCharacteristics является частью экспериментальных функций. Затем сделайте:Компиляция может занять 10 минут. После установки вы должны найти
bluetoothd
в/usr/libexec/bluetooth
. Вы также должны увидеть Bluetooth в/usr/lib/bluetooth
.Перейдите в каждый из этих каталогов и введите
Вы заметите, что тот, что в libexec , новый, а тот, что в lib , старый.
BlueZ создает эти объекты d-bus и интерфейс для приятного представления устройств Bluetooth.
Чтобы убедиться, что d-bus говорит с вами о новом BlueZ 5.47, а не о вашем старом BlueZ 5.23, вам нужно указать
systemd
использовать новый демон bluetooth:Убедитесь, что
exec.start
линия указывает на вашего нового демона/usr/libexec/bluetooth
.Для меня этого было недостаточно. Не смотря ни на что, при перезапуске я всегда получал bluetoothd 5.23 ... Так что я просто создал символическую ссылку от старого к новому.
Сначала переименуйте старый файл:
Создайте символическую ссылку:
Это должно сделать это.
Теперь я должен сказать это, хотя это не имеет отношения к вопросу :
Если вы хотите разработать приложение для своего пи, прочитайте папку blueZ docs . Он знакомит вас с тем, что называется d-bus , о котором действительно стоит узнать, и позволяет разрабатывать ваше приложение на python, node.js или c (и более). Посмотрите это видео на Bluez Dev .
Есть много красных селедок: обертки, которые пытаются дать вам «легкую» функциональность. Даже ресурсы, которые говорят, что не хватает документации о том, как разработать Bluetooth. Однако, как только вы захотите сделать что-то, кроме простого подключения к устройству и просмотра его характеристик, вы поймете, что оболочка не подойдет вам.
Сделай себе одолжение. Потратьте несколько часов, чтобы узнать, как это
BlueZ
работает (видео, на которое я ссылаюсь, сплошное золото). Он использует то, что называется D-Bus. Прочитайте немного о D-Bus. Если вам нравится Python, посмотрите код в тестовой папке. Прочитайте руководство по питону dbus один или два раза. Это окупится так хорошо. Я потратил впустую несколько дней, пытаясь найти что-то легкое, но это оказалось лучшим способом.Удачи!
источник
sudo mv /usr/lib/bluetooth/bluetoothd /usr/lib/bluetooth/bluetoothd-543.orig
2. Создайте символическую ссылку:sudo ln -s /usr/libexec/bluetooth/bluetoothd /usr/lib/bluetooth/bluetoothd
Я установил его на свой Raspberry Pi 3 с ОС Raspbian GNU / Linux 8 (jessie). Это было немного сложно, но эти шаги сработали для меня. Я установил его после прочтения вашего поста.
После этого я не нашел адаптер. Следующее, что я сделал, было
Все еще нет адаптера. Это связано с прошивкой, поэтому я должен был сделать это дальше
Наконец, введите:
Затем проверьте, сработало ли это, набрав:
Если это сработало, вы должны увидеть это в своем терминале.
Последняя команда
Надеюсь, что это работает для вас.
Спасибо этому сайту за помощь https://www.pi-supply.com/make/fix-raspberry-pi-3-bluetooth-issues/
источник
Ответ @Hunter Akins спас меня от такого большого разочарования, когда он сказал (перефразировано): серьезно, познакомься с BlueZ. Познакомьтесь с D-BUS. Познакомьтесь с командами bluetoothctl, systemctl и bluetoothd.
Проблема заключается в том, что после выпуска Bluez5.42 в сентябре 2016 года многие пакеты, которые используются в онлайн-руководствах, устарели ( https://wiki.archlinux.org/index.php/Bluetooth#Trou устранение неполадок ). О, и пакет Bluez строго отсутствует в официальной документации.
Вот команды, которые я использовал для запуска Bluetooth на Raspberry Pi Zero W из новой установки:
Вырвано из приведенного выше ответа и комментариев:
Дополнительная ошибка, которую я нашел:
Я предполагаю, что вы хотите использовать только что установленный пакет bluez. Я использую следующие шаги, чтобы подключиться к устройству BLE сразу после перезагрузки системы (слишком долго после перезагрузки происходит сбой). Я недостаточно экспериментировал, чтобы выяснить постоянную связь. Строки с префиксом "pi @ raspberrypi: ~ $" и "[bluetooth] #" были моим вводом; остальные были ответы.
Я подключаюсь к устройству BLE. Команда pair не будет работать, так как она предназначена для Bluetooth Classic:
источник