Сценарий запуска Linux для подключения к bluetooth и cron, чтобы поддерживать связь

У меня есть мини-клавиатура Bluetooth, а малина Pi работает с дистрибутивом на базе Debian. Я знаю MAC-адрес клавиатуры, но для этого вопроса давайте просто использовать AA:BB:CC:DD:EE:FF . Прямо сейчас у меня должна быть подключена проводная клавиатура, а также мой Bluetooth-ключ для мини-клавиатуры. На проводной клавиатуре я должен запустить следующее, когда устройство загрузится:

 sudo hidd --connect AA:BB:CC:DD:EE:FF 

Если устройство простаивает слишком долго, Bluetooth отключается, и мне нужно вытащить свою проводную клавиатуру и повторить эту же команду.

  • Печать даты и времени в Windows cmd
  • Linux bash iterating и Break
  • Почему иногда я получаю 'sh: $' \ 302 \ 211 ... ': command not found' в xterm / sh?
  • Как вы избегаете апострофа в одиночной кавычки в bash?
  • Показывать только текущее имя каталога (не полный путь) в приглашении bash
  • Linux - защита от самих себя (корень)
  • То, что я ищу, – это способ запуска этой команды при запуске и способ определить, отсоединяется ли она, чтобы она автоматически подключалась.

    Досадно, что клавиатура должна быть в режиме сопряжения (даже если она уже была сопряжена), когда я запускаю эту команду, иначе она сообщает мне, что хост выключен. Поэтому, возможно, сценарий должен помешать ему отключиться из-за бездействия, иначе мне придется вернуть его в режим сопряжения, чтобы снова подключиться.

    Итак, чтобы повторить:

    • Сценарий для подключения при запуске. Я могу позаботиться о том, чтобы переключить клавиатуру в режим сопряжения, прежде чем включать ее.
    • Скрипт, чтобы предотвратить его отключение. Может быть, какой-то сигнал отправить его каждые 60 секунд или что-то еще?

  • Как получить абсолютный путь к произвольному файлу из OS X
  • Вернитесь к предыдущей директории в оболочке
  • Linux - защита от самих себя (корень)
  • Использование терминальных клавиш с bash на macOS
  • Разве это расточительно назвать кошку?
  • Как получить доступ к папкам Windows из Bash на Ubuntu в Windows
  • One Solution collect form web for “Сценарий запуска Linux для подключения к bluetooth и cron, чтобы поддерживать связь”

    (Замените XX:XX:XX:XX:XX:XX на адрес Bluetooth вашего устройства)

    Установите поддержку Bluetooth.

     # pacman -S bluez 

    Создайте файл конфигурации устройства.

     # nano /etc/bluetooth/hcid.conf device XX:XX:XX:XX:XX:XX { name "Apple Wireless Keyboard"; auth enable; encrypt enable; } 

    Включить Bluetooth.

     # nano /etc/conf.d/bluetooth DAEMON_ENABLE="true" HIDD_ENABLE="true" 

    Добавьте демонов. Убедитесь, что сначала отображается dbus.

     # nano /etc/rc.conf DAEMONS=(… dbus bluetooth) 

    Перезагружать.

    Проверьте соединение (убедитесь, что клавиатура обнаружена или это не удастся).

     # hidd --connect XX:XX:XX:XX:XX:XX 

    Чтобы включить повторное подключение с клавиатуры после входа в спящий режим, мы создаем собственный демон, который проверяет, подключена ли клавиатура один раз в секунду. Если это так, он ничего не делает в этом цикле, иначе он пытается подключиться к адресу, указанному в address .

    Создайте сценарий для запуска демона.

     # nano /etc/rc.d/connect-bt-devs #!/bin/bash /etc/rc.d/connect-bt-devs.sh & exit 0 

    Создайте сценарий.

     # nano /etc/rc.d/connect-bt-devs.sh #!/bin/bash address="XX:XX:XX:XX:XX:XX" while (sleep 1) do connected=$(hidd --show) > /dev/null if [[ ! $connected =~ .*${address}.* ]] ; then hidd --connect ${address} > /dev/null 2>&1 fi done 

    Сделайте их исполняемыми.

     # chmod +x /etc/rc.d/connect-bt-devs # chmod +x /etc/rc.d/connect-bt-devs.sh 

    Добавить демон.

     # nano /etc/rc.conf DAEMONS=(… connect-bt-devs) 

    Перезагружать.

    Когда я впервые это сделал, он работал, когда скрипт сначала подключился, но затем я получил неприятные отчеты о сбоях на консоли, когда пользовательский демон попытался снова подключиться к повторно пробужденной клавиатуре. После немного большего исследования выяснилось, что это произошло потому, что ключ Belkin был неисправным и не отключился от устройства, когда устройство выключилось. Я переключился на не-брендовый дешевый ключ, и он отлично работает.

    Сочетание информации из архивной вики и блога Benny Bottema .

    Давайте будем гением компьютера.