3

Я пытаюсь запустить приложение Linux внутри док-контейнера, который ожидает, что машина будет поддерживать соединения Bluetooth, поэтому он вылетает с ошибкой «Can't open HCI socket».

Теперь функциональность Bluetooth на самом деле не нужна для моего конкретного случая использования, поэтому я мог бы справиться с каким-то фиктивным драйвером Bluetooth, который, например, просто действует так, как будто нет других Bluetooth-устройств в радиусе действия.

Есть ли простой способ создать такое виртуальное устройство Bluetooth внутри док-контейнера? Я не могу запустить контейнер в привилегированном режиме или использовать ресурсы Bluetooth хоста.

1 ответ1

3

Частичный ответ: я немного поиграл и нашел модуль ядра hci_vhci , который привязывается к /dev/vhci и позволяет создавать интерфейсы виртуального хост-контроллера.

Найти что-то, что на самом деле использует этот модуль ядра, было немного сложнее. Очевидно, в какой-то момент была программа hciemu которая хотя бы частично имитировала интерфейс HCI, но, похоже, исчезла из большинства дистрибутивов.

Кроме того, я не смог найти никакой документации.

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

# modprobe hci_vhci
# hciemu localhost:10

Я закончил с интерфейсом HCI,

$ hciconfig
hci0:   Type: Primary  Bus: Virtual
    BD Address: 7F:00:00:01:00:0A  ACL MTU: 192:8  SCO MTU: 0:0
    DOWN 
    RX bytes:0 acl:0 sco:0 events:8 errors:0
    TX bytes:36 acl:0 sco:0 commands:8 errors:0

Это может или не может быть достаточно для вашего случая использования.

Если кто-нибудь может понять, как на самом деле использовать эти интерфейсы, мне было бы очень интересно.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .