Hcitool lescan показывает ошибку ввода-вывода
Я пытаюсь сделать lescan, используя hcitool на малине pi.
Команда выводит
Set scan parameters failed: Input/output error.
Я не уверен, что именно происходит здесь. Мой iPhone рекламирует здесь.
Я использую ключ BLE от IOGear.
Однако, если я перезагружу свой компьютер, он отображает MAC-адрес после того, как я выдаю команду lescan
, и начнет показывать ту же ошибку после того, как я выдаю команду lescan еще пару раз. Похоже, команда lescan не может быть выпущена более одного раза?
Ответы
Ответ 1
Это часто бывает часто для меня часто. Я развиваюсь вместе с ним, и это случается время от времени. Я также смог воспроизвести вашу ошибку в течение 5 минут;-) Я бегу bluez v.5.17.
Однако я могу запустить lescan более одного раза без этой ошибки.
hcitool lescan
Set scan parameters failed: Input/output error
попробовать:
hciconfig hci0 down
hciconfig hci0 up
и проверьте состояние послесловия.
если это не работает или оно зависает в статусе DOWN, попробуйте:
service bluetooth restart
service dbus restart
(все команды в качестве суперпользователя)
И закройте все приложения, которые могут получить доступ к Bluetooth. Например, hcidump.
Если это не работает, вы обычно должны отключать его. Но есть еще один грязный взломать это. Он работает, снова установив авторизованный параметр 0 и 1. Это заставляет usb-ключ инициализировать.
lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp.
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 004: ID 0a5c:21e8 Broadcom Corp.
cd /sys/bus/usb/devices/
grep -i -s -r 0a5c *
…
1-1.2/idVendor:0a5c
…
cd 1-1.2
echo 0 > authorized
echo 1 > authorized
Ответ 2
Обновление до bluez v5.43 исправило это для меня.
Чтобы перейти на новейшую версию bluez, вам необходимо выполнить "ручную" установку (не apt-get), загрузив ее с веб-сайта bluez. Я рекомендую это видео, если вы устанавливаете новые пакеты или вам нужна помощь.
После установки последней версии bluez мне пришлось выполнить несколько команд, прежде чем она заработала.
-
systemctl daemon-reload
: перезапускает системный демон.
-
sudo service bluetooth restart
: sudo service bluetooth restart
службу Bluetooth.
-
sudo hciconfig hci0 up
: Это было необходимо для моего Raspberry Pi 3 со встроенным BT, найденным в hci0
.
После этих команд sudo hcitool lescan
и его варианты, похоже, работают.
Ответ 3
Тем, кто сейчас задает этот вопрос, он исправлен как из Bluez v5.41. Все, что вам нужно для загрузки и установки. Вы можете загрузить последнюю версию из http://www.bluez.org/download/.
Ответ 4
Возможно, что HCI в настоящее время используется. В моем случае я должен остановить Node -Red, и он работает. Поэтому следите за тем, чтобы HCI не использовался.
Перезапуск HCI - это способ, чтобы временно решить проблему, но она не решает проблему правильно.
Ответ 5
У меня была такая же ошибка с hcitool
, в то время как bluetoothctl
работал просто отлично. Затем я наткнулся на эту статью о том, что все "инструменты, использующие необработанный сокет, должны рассматриваться как устаревшие" (hcitool, hcicfg и т.д.).
Поэтому, возможно, просто откройте bluetoothctl
и scan on
команду scan on
команде.
Ответ 6
Что мне помогло, так это открытие настроек Bluetooth в моем Ubuntu и ручное удаление неиспользуемых устройств. Сразу же начал работать lescan.
Ответ 7
sudo hcitool lescan
Просто используйте sudo и сканируйте