NGINX: 400 Обычный HTTP-запрос был отправлен на порт HTTPS.

Более совершенный подход заключается в создании правила udev , срабатывающего только при наличии подходящего оборудования, для запуска необходимой команды btattach из службы systemd ]. Это объединяет концепции двух предыдущих ответов.

Для конкретного набора микросхем, упомянутого в вопросе, правило udev выглядит просто так:

$ cat /etc/udev/rules.d/99-bluetooth-btattach.rules {{1 }} ЯДРО == "BCM2E55: 00", RUN + = "/ bin / systemctl --no-block start btattach-broadcom-ttyS1.service"

, где BCM2E55: 00 является идентификатором аппаратного ACPI соответствующего набора микросхем Bluetooth.

Служба systemd, совместимая только с наборами микросхем, являющимися дочерними по отношению к узлу устройства ttyS1 (отображается через sysfs в / sys / devices / platform / 80860F0A: 00 / tty / ttyS1 / device / BCM2E55: 00 $ ), может оставаться очень простым, например:

$ cat /etc/systemd/system/btattach-broadcom-ttyS1.service [Unit] Описание = Start btattach, необходим для включения Bluetooth для некоторых чипсетов Bluetooth Broadcom на базе UART [Service] Type = simple # Требуется задержка, 1 с кажется достаточно {{1} } ExecStartPre = / bin / sleep 1s ExecStart = / usr / bin / btattach --bredr / dev / ttyS1 -P bcm

Эта служба systemd будет работать как есть для других наборов микросхем Broadcom (отсюда параметр -P bcm ), являющийся дочерним по отношению к ttys1 (отсюда / dev / ttyS1 ); необходимо выполнить только правило udev , чтобы включить идентификаторы ACPI других вариантов набора микросхем.

Для наборов микросхем Broadcom, подключаемых к другому узлу ttyS *, можно создать другую аналогичную службу systemd , чтобы охватить этот случай (или, возможно, правильные параметры могут быть переданы из правила udev в службу systemd).

Перезагрузка планшета показывает, что команда btattach правильно выполняется при загрузке:

$ ps auxw | grep btattach корень 2059 0,0 0,0 6372 720? Ss 23:17 0:00 / usr / bin / btattach --bredr / dev / ttyS1 -P bcm

и Bluetooth действительно включен и работает! В настройках Gnome Bluetooth перечислены подключенные и просканированные устройства, а запуск $ bluetoothctl из командной строки правильно отображает контроллер.

Удивительно, но при удалении начальной 1-секундной команды сна, используемой для простой задержки реальной команды, Bluetooth вообще не работает и не включается должным образом, несмотря на то, что btattach по-прежнему работает правильно в списке фона. процессы.

Еще не уверен, что понимаю, что именно происходит: на карту поставлена ​​проблема времени и, безусловно, необходимая зависимость, которую нужно подождать, прежде чем предполагается запустить btattach ...

1
08.07.2015, 16:01
1 ответ

Адрес:

proxy_set_header X-Forwarded-Proto $scheme;
4
27.01.2020, 23:20

Теги

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