Как я могу вынудить USB-устройства сохранить тот же файл устройств даже после того, как они откажут и будут сброшены?

У меня есть 3 веб-камеры USB, и 3 Arduino включили тот же компьютер. На запуске они маркированы /dev/videoN (N идет от 0 до 2), и /dev/ttyACMN (N идет от 0 до 2).Пока все хорошо.

Проблема состоит в том, когда что-то идет не так, как надо с одним из устройств (т.е., Ардуино, его IDE или катастрофические отказы программы видеосъемки). Затем устройству присваивают новый файл устройств (как /dev/video3 или /dev/ttyACM3). Я хотел бы сохранить тот же файл устройств вместо этого.

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

Это - как будто дескриптор к старому файлу устройств плавает вокруг куда-нибудь и препятствует тому, чтобы тот же файл устройств был снова использован. Однако сам файл исходного устройства (говорят, /dev/ttyACM0) больше не существует или по крайней мере не обнаруживается в списке каталогов.

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

2
задан 5 June 2015 в 03:24

2 ответа

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

Вот то, как найти процесс, который использует имя устройства:

lsof | grep /dev/ttyACM0

Затем как только я уничтожаю тот процесс и подвергаю циклу включения и выключения питания устройство, имя устройства снова используется, как желаемый.

1
ответ дан 2 December 2019 в 05:08

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

Поэтому каждый раз, когда устройство исчезают, символьная ссылка умрет с ним. Тогда, если Вы повторно включаете свое устройство, оно создает новый узел с увеличенным числом исключая: /dev/ttyACM1. Однако ссылка создается в том же пути.

Видят , Как различать идентичный USB К ПОСЛЕДОВАТЕЛЬНЫМ АДАПТЕРАМ?

0
ответ дан 2 December 2019 в 05:08

Другие вопросы по тегам:

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