Как снова включить USB-порт после его отключения в sysfs?

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

Я отключил USB (2.0) порт на производственной системе Linux с помощью этой команды:

echo 1 > /sys/bus/usb/devices/usb2/2-1/2-1.8/port/disable

Это успешно отключило 8-й USB порт на концентраторе #1.
Устройства, подключенные к этому порту, больше не определяются.
Но теперь я хочу снова активировать его (без сброса контроллера или перезагрузки системы).
Я не смог найти решение в документации ядра. Папка 2-1.8 исчезла, и команды echo "2-1.8" > /sys/bus/usb/devices/usb2/2-1/subsystem/drivers/usb/bind не удается выполнить, возникает ошибка No such device.

Как я могу снова активировать его?

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

Восстановление доступа к USB-порту в Linux, который был отключен через sysfs, может показаться задачей не из простых, особенно когда необходимо переактивировать его без перезагрузки системы или сброса USB-контроллера. В вашем случае отключение произошло через запись в файл /port/disable, и теперь папка 2-1.8 исчезла, что делает вашу задачу более сложной. Обсудим, как можно попытаться решить эту проблему, основываясь на глубоком понимании работы sysfs и управления USB-портами в Linux.

Теория:

Подсистема sysfs в Linux предоставляет интерфейс для доступа и управления устройствами и их параметрами через файловую систему. Для USB-портов как правило, когда порт отключен, он может быть "устранен" из текущей конфигурации системы, что делает его невидимым для дальнейших операций, таких как bind. Поскольку порт больше не появляется в системе, стандартные команды такие, как восстановление через /subsystem/drivers/usb/bind, могут не работать, как и в вашем случае. Важно, что отключение порта может иногда удалять запись о порте из дерева устройств, что делает невозможным традиционный процесс "подключения".

Пример:

Рассмотрим пример, когда администратор пытается отключить и включить USB-порт. При успешном отключении порта папка, соответствующая порту, может исчезнуть, и любые связанные записи в поддиректориях USB также могут быть удалены. Это приведет к тому, что любые стандартные методы, которые используют echo для повторного включения, вернут ошибку "No such device".

Применение:

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

    lsusb -t

    или

    ls /sys/bus/usb/devices/
  2. Использование udev: Если порт отсутствует, а его связанная запись в файловой системе удалена, одна из возможностей заключается в использовании udev для перезапуска устройств на физическом уровне без перезагрузки системы. Следует создать или отредактировать правила udev, которые могут инициировать перезапуск службы. Это позволит подтяжке новосозданного устройства через горячее подключение.

  3. Перезапщус конкретного USB-контроллера: Некоторые контроллеры позволяют выборочное отключение/включение отдельных фаз работы:

    echo "0" > /sys/bus/pci/devices/0000:00:14.0/remove
    echo "1" > /sys/bus/pci/rescan

    В этом примере мы отключаем PCIe контроллер, к которому подключены концентраторы USB, а затем снова инициируем пересканирование шины PCIe.

  4. Задействование специальных драйверов или утилит: В зависимости от установленного оборудования, могут существовать специальные утилиты или драйверы производителя, которые позволяют контролировать состояние портов с большей гибкостью, чем предоставляют стандартные средства Linux.

  5. Скрытые обходные пути: Время от времени могут существовать специфические баги или особенности ядра Linux, позволяющие пойти обходным путем. Всегда полезно проверять последние обновления для дистрибутива и ядра, так как уже могут существовать исправления для работы с USB-портами.

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

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

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