Я только что прошел через приключение с (на первый взгляд) простой задачей — передачей USB-серийного устройства контейнеру LXC. Все мои исследования указывали на то, что я должен был (по крайней мере) передать устройство работающему контейнеру в реальном времени с помощью команды lxc-device add. К сожалению, это не сработало. Мне пришлось добавить строки lxc.mount.entry в файл конфигурации контейнера, чтобы устройство корректно передавалось и было использовано. Проблема заключается в том, что USB-устройство будет менять свое местоположение (/dev/bus/usb/XXX/XXX), даже если оно остается в том же USB-порту. При каждом подключении/отключении необходимо учитывать это, чтобы получить конечный путь устройства, даже с созданием символьной ссылки через правило udev. Мне пришлось прибегнуть к использованию правила udev для создания символьной ссылки, установить права (владелец, группа, режим), запустить скрипт для обработки устройства, а затем скрипт собирает всю необходимую информацию для записи новых строк lxc.mount.entry в файл конфигурации контейнера и запускает контейнер. Единственный способ (пока что) успешно передать USB-серийное устройство в контейнер — это убедиться, что строки lxc.mount.entry есть в конфигурации и они корректны. Если же lxc-device add действительно не работает (так как в документации по lxc-device сказано, что в данный момент поддерживается только "add"), может ли proxmox pct сделать нечто подобное или стоит ли добавить это в будущем? Я посмотрел документацию по pct, и там, похоже, нет функции, аналогичной "add". На данный момент я успешно передаю больше 6 USB-серийных устройств в соответствующие контейнеры (grbl лазер, grbl фреза, 4 3D-принтера), и причина, по которой это востребованная функция, заключается в том, что иногда не все 4 3D-принтера работают одновременно. Я могу включить 1 принтер и начать использовать его через контейнер печати, но если контейнер уже запущен, я не могу просто добавить другой принтер, который я включил. Даже если мой скрипт обрабатывает устройства и получает всю информацию, он не может добавить строку lxc.mount.entry в конфигурацию и сделать это эффективным до следующей перезагрузки контейнера. Я также не могу добавить строки lxc.mount.entry в конфигурацию контейнера, если они не включены, потому что скрипт сначала проверяет наличие этих устройств, прежде чем изменять файл конфигурации контейнера.
lxc-device add кажется сломанным, Proxmox Виртуальная Среда
|
16.12.2022 13:35:00
|
|
|
|
|
|
29.06.2023 16:16:00
Обычно люди используют правила udev, чтобы создать стабильные имена или пути для устройств. Вот пример.
|
|
|
|
|
Читают тему
