Есть некое USB-устройство, подключенное к некому Linux-устройству на процессоре MIPS. Ядро 2.4.30. Время от времени возникает ситуация, что USB-устройство выходит из-под контроля. Пока есть два способа бороться с этим:
1) Выдернуть и снова вставить USB-устройство
2) Дернуть питание Linux-устройства
Оба способа плохи тем, что требуется кто-то для выполнения этих операций. Что характерно, ребут Linux-устройства не помогает, USB-устройство продлжает жить своей жизнью после ребута (потому что питание не снимается). Оно прекрасно обнаруживается системой, но воспользоваться я им не могу. Я думал, что если выдернуть из ядра модуль USB-контроллера, то USB-устройство вернется в исходное состояние. Не тут то было!
usb.c: USB disconnect on device 01:03.2-1 address 2
Но устройство все еще живет само по себе!
Вопрос: если я делаю USB disconnect таким образом, устройство вообще должно об этом знать? Может ли оно увидеть как-то, что со стороны хоста USB-контроллера как-бы больше нет?
И вообще, что бы мне предпринять в этой ситуации?