Примечание (редактирование): оказалось, что мой оригинальный ответ (ниже) не решает проблему ОП, а только сужает ее. Пытаясь изо всех сил удалить ответ или нет, я оставляю его в образовательных целях.
Ваш USB, кажется, сообщает 5a07
вместо 5307
(?). Сравните usb.ids . 5a07
не там, но, возможно, какой-то драйвер принтера как-то соответствует этому. Механизм описан в этом ответе (который кажется чрезмерно пессимистичным при ручном подключении драйвера).
Я не знаю, что именно произошло. На самом деле, usb-storage 3-3:1.0
из-за вас syslog
я подозреваю, что usb-storage
(который является подходящим модулем для привода большого пальца) был загружен, а затем hpmud
(?) Запущен; Я не уверен.
Но давайте предположим :
- ошибочно сообщаемое
idProduct
является единственной проблемой (т.е. в любом другом аспекте ваш USB-накопитель работает нормально), - действительно подключен какой-то неправильный драйвер
- и все, что вам нужно, это отсоединить его и прикрепить правильный.
Посмотрите этот другой ответ, он указывает на эту статью LWN и выглядит как хорошее руководство (есть также этот ответ, указывающий на эту статью ). Общий пример:
Чтобы отсоединить устройство от драйвера, просто запишите идентификатор шины устройства в файл unbind:
echo -n "1-1:1.0" > /sys/bus/usb/drivers/ub/unbind
[...]
Чтобы связать устройство с драйвером, сначала устройство не должно управляться каким-либо другим драйвером.
[...]
Затем просто введите идентификатор шины устройства, которое вы хотите связать, в файл связывания для этого драйвера:
echo -n "1-1:1.0" > /sys/bus/usb/drivers/usb-storage/bind
В вашем случае идентификатор автобуса есть 3-3:1.0
. Обратите внимание, что это зависит от используемого USB-порта, поэтому он будет другим, если вы вставите флэш-накопитель в другой разъем. Через минуту нам понадобится root-доступ, и из-за перенаправления ( >
) проще запустить отдельную оболочку ( sudo -s
).
Сначала проверьте текущий подключенный драйвер:
cd "/sys/bus/usb/devices/3-3:1.0/" readlink ./driver
Если вы правы, это будет что-то еще usb-storage
.
Отключите драйвер, что бы это ни было:
echo -n "3-3:1.0" > ./driver/unbind
Загрузите нужный драйвер, если он еще не загружен:
modprobe usb-storage
Подключите его к устройству:
echo -n "3-3:1.0" > /sys/bus/usb/drivers/usb-storage/bind
И подтвердить:
readlink ./driver lsblk
Не забудьте exit
на корневую оболочку.
Решение не является постоянным. На данный момент я не знаю, как сказать Linux всегда загружать нужный драйвер (я мог бы написать скрипт для автоматизации вышеперечисленного, но это не похоже на правильный путь). Тем не менее, флеш-накопитель предположительно изменил его idProduct
после неудачного извлечения, так что я бы не стал доверять ему в долгосрочной перспективе. Как только он работал с принудительным usb-storage
драйвером, я запускал, ddrescue
чтобы защитить все данные от него.