Не удается передать USB-устройство в Proxmox LXC, так как оно меняет идентификатор каждый раз, когда его отключают.

Вопрос или проблема

Я настраиваю принтер в образе Debian LXC на Proxmox. Я определил принтер в lsusb:

Шина 001 Устройство 007: ID 04f9:01ea Brother Industries, Ltd DCP-7030

и перенаправил его в Proxmox (устройство /dev/bus/usb/001/007).

Как только я отключаю принтер и снова подключаю его, он всегда получает новый ID, например:

Шина 001 Устройство 005: ID 04f9:01ea Brother Industries, Ltd DCP-7030

Принтер не отображается в /dev/serial/*.

Я могу подумать о трех возможных решениях:

  • Как-либо зафиксировать ID, чтобы я мог перенаправлять его статически
  • Перенаправить все USB-устройства
  • Ссылаться на принтер как на символьную ссылку (правило udev TTRS{idVendor}=="04f9", ATTRS{idProduct}=="01ea", SYMLINK+="brother_printer" работает, но CUPS/SANE не могут обнаружить его как принтер)

Я не уверен, какой из этих путей является наиболее многообещающим и как с ним продвигаться.

Ответ или решение

Проблема с перенаправлением USB-устройства в LXC-контейнер Proxmox при изменении ID

При работе с USB-принтером в LXC-контейнере Proxmox может возникнуть проблема, связанная с изменением идентификатора устройства (ID) каждый раз, когда принтер отключается и снова подключается. Рассмотрим основные аспекты данной проблемы и возможные решения.

Описание проблемы

При идентификации USB-принтера с помощью команды lsusb, вы получаете строки, содержащие идентификатор устройства, который меняется при каждом подключении:

Bus 001 Device 007: ID 04f9:01ea Brother Industries, Ltd DCP-7030

После отключения и повторного подключения принтера идентификатор может измениться, как показано ниже:

Bus 001 Device 005: ID 04f9:01ea Brother Industries, Ltd DCP-7030

Это приводит к тому, что статическая привязка устройства, например, через /dev/bus/usb/001/007, становится неработоспособной. Данная проблема требует пересмотра подхода к настройке устройства в LXC-контейнере.

Возможные решения

  1. Фиксация идентификатора устройства:
    Статическое перенаправление USB-устройства возможно, если использовать udev для создания символической ссылки на устройство. Вы можете создать правило udev, которое будет сохранять стабильный набор символических ссылок. Пример правила:

    SUBSYSTEM=="usb", ATTR{idVendor}=="04f9", ATTR{idProduct}=="01ea", SYMLINK+="brother_printer"

    После создания правила, устройство будет доступно по символической ссылке /dev/brother_printer. Однако, стоит отметить, что CUPS и SANE могут не распознавать устройство по символической ссылке. Для решения этой проблемы можно использовать инструмент lpadmin для указания нужного устройства.

  2. Перенаправление всех USB-устройств:
    Если у вас нет строгих требований к безопасности или операционной принципам, вы можете воспользоваться перенаправлением всех USB-устройств в LXC-контейнер. Это делается путем добавления следующей строки в конфигурацию контейнера (например, /etc/pve/lxc/CTID.conf):

    lxc.mount.entry = /dev/bus/usb dev/bus/usb none bind,optional,create=dir

    Этот подход удобно использовать, но он может быть не самым безопасным, так как все подключенные USB-устройства будут доступны в контейнере.

  3. Использование виртуальных устройств:
    В качестве альтернативы рассмотрите возможность создания виртуального USB-устройства с помощью программного обеспечения, такого как usbredir. Это решение может быть более сложным, но позволит создать стабильное подключение к вашему принтеру без необходимости постоянно перенаправлять USB-устройства.

Заключение

При решении проблемы с перенаправлением USB-устройства в Proxmox LXC, вам следует учитывать баланс между удобством и безопасностью. Наиболее оптимальные пути — использование правил udev для создания символической ссылки или перенаправление всех USB-устройств, если это допустимо в вашем окружении. Убедитесь, что ваш принтер подключен правильно и что у вас установлены все необходимые драйверы в контейнере, чтобы он мог корректно функционировать.

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

Оцените материал
Добавить комментарий

Капча загружается...