Я пытаюсь смонтировать мои дешевые умные часы с набором микросхем MTK6260A на мой ПК, чтобы прочитать содержимое прошивки. Однако пока dmesg показывает мне, что устройство было обнаружено и создано правильно:
[107204.279493] sd 12:0:0:0: [sdf] Test WP failed, assume Write Enabled
[107204.280474] sd 12:0:0:0: [sdf] Asking for cache data failed
[107204.280486] sd 12:0:0:0: [sdf] Assuming drive cache: write through
[107204.281588] sd 12:0:0:0: [sdf] Attached SCSI removable disk
udev создает и удаляет его (из монитора udevadm):
KERNEL[107206.407012] add /devices/virtual/bdi/8:80 (bdi)
KERNEL[107206.407083] add /devices/pci0000:00/0000:00:14.0/usb3/3-11/3-11:1.0/host12/target12:0:0/12:0:0:0/block/sdf (block)
UDEV [107206.407522] add /devices/virtual/bdi/8:80 (bdi)
KERNEL[107206.408114] remove /devices/pci0000:00/0000:00:14.0/usb3/3-11/3-11:1.0/host12/target12:0:0/12:0:0:0/scsi_disk/12:0:0:0 (scsi_disk)
KERNEL[107206.408199] remove /devices/virtual/bdi/8:80 (bdi)
KERNEL[107206.408241] remove /devices/pci0000:00/0000:00:14.0/usb3/3-11/3-11:1.0/host12/target12:0:0/12:0:0:0/block/sdf (block)
KERNEL[107206.408270] remove /devices/pci0000:00/0000:00:14.0/usb3/3-11/3-11:1.0/host12/target12:0:0/12:0:0:0 (scsi)
UDEV [107206.408524] remove /devices/pci0000:00/0000:00:14.0/usb3/3-11/3-11:1.0/host12/target12:0:0/12:0:0:0/scsi_disk/12:0:0:0 (scsi_disk)
UDEV [107206.408806] remove /devices/virtual/bdi/8:80 (bdi)
KERNEL[107206.420107] remove /devices/pci0000:00/0000:00:14.0/usb3/3-11/3-11:1.0/host12/target12:0:0 (scsi)
KERNEL[107206.436186] remove /devices/pci0000:00/0000:00:14.0/usb3/3-11/3-11:1.0/host12/scsi_host/host12 (scsi_host)
KERNEL[107206.436204] remove /devices/pci0000:00/0000:00:14.0/usb3/3-11/3-11:1.0/host12 (scsi)
UDEV [107206.436828] remove /devices/pci0000:00/0000:00:14.0/usb3/3-11/3-11:1.0/host12/scsi_host/host12 (scsi_host)
UDEV [107206.470749] add /devices/pci0000:00/0000:00:14.0/usb3/3-11/3-11:1.0/host12/target12:0:0/12:0:0:0/block/sdf (block)
UDEV [107206.473577] remove /devices/pci0000:00/0000:00:14.0/usb3/3-11/3-11:1.0/host12/target12:0:0/12:0:0:0/block/sdf (block)
UDEV [107206.474781] remove /devices/pci0000:00/0000:00:14.0/usb3/3-11/3-11:1.0/host12/target12:0:0/12:0:0:0 (scsi)
UDEV [107206.475165] remove /devices/pci0000:00/0000:00:14.0/usb3/3-11/3-11:1.0/host12/target12:0:0 (scsi)
UDEV [107206.475565] remove /devices/pci0000:00/0000:00:14.0/usb3/3-11/3-11:1.0/host12 (scsi)
Есть ли способ добавить обратно устройство вручную?
Ответы:
(Я сделаю это ответ и добавлю к нему, хотя у меня нет готового решения. Это просто слишком неловко в комментариях.)
Проблема не в
udev
так что "отладка udev" не поможет.udev
просто реагирует на сигнал, поступающий в .408114 от ядра.Предполагая, что в
dmesg
чем вы показали (что означает «вообще ничего», а не «никто, по вашему мнению, не связан», в противном случае, пожалуйста, отредактируйте вопрос с частью до и после вашего фрагмента), все, что мы знаем, это то, что ядро пытается отправлять команды на смарт смотреть, чтобы узнать больше об устройстве хранения, и оба (защита от записи и кэш) не удается. После этого ядро, возможно, больше взаимодействует и, наконец, решает, что это не USB-устройство хранения данных, потому что оно не отвечает или возвращает ошибки. Таким образом, ядро удаляет его из уровня хранения, отправляет сигналudev
, а такжеudev
делает то, что должен и удаляет узлы устройства. Даже если бы вы помешалиudev
от удаления узлов устройства они не будут присутствовать на уровне ядра, поэтому они будут бесполезны.Что вы можете сделать, это использовать
usbmon
прослушивать пакеты USB между ПК и умными часами.wireshark
может интерпретировать те. Если вы хотите отладить это, вам нужно прочитать о том, как работает USB, как работает USB-накопитель и как работают команды SCSI, которые обеспечивают работу USB-накопителя. Это может или не может дать намек на то, что идет не так. Стандарты не сложно найти, немного погуглив.Также возможно, что дешевые умные часы просто неправильно реализуют стандарт USB-накопителя и имеют специальный драйвер Windows, написанный производителем, который скрывает этот факт. В этом случае вы также можете прослушать USB-трафик в Windows, чтобы выяснить, как он работает, но тогда вам придется написать собственное ядро Linux или драйвер для пользовательского пространства, что является большой работой.
источник