Я пытаюсь установить мои дешевые умные часы с набором микросхем 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)

Есть ли способ добавить обратно устройство вручную?

1 ответ1

1

(Я сделаю этот ответ и добавлю к нему, хотя у меня нет готового решения. Это просто слишком неловко в комментариях.)

Проблема не в udev , поэтому "отладка udev" не поможет. udev просто реагирует на сигнал, поступающий в .408114 от ядра.

Предполагая, что в dmesg нет других сообщений, которые вы показывали (что означает "вообще ничего", а не «ничего, что вы считаете связанным», в противном случае, пожалуйста, отредактируйте вопрос с частью до и после вашего фрагмента), все, что мы знаем, это то, что Ядро пытается отправить команды на смарт-часы, чтобы узнать больше об устройстве хранения, и оба (защита от записи и кеш) не работают. После этого ядро, возможно, больше взаимодействует и в итоге решает, что это не USB-устройство хранения данных, потому что оно не отвечает или возвращает ошибки. Поэтому ядро удаляет его со слоя хранения, отправляет сигнал udev , и udev делает то, что должно, и удаляет узлы устройства. Даже если вы запретите udev удалять узлы устройства, они не будут присутствовать на уровне ядра, поэтому они будут бесполезны.

Что вы можете сделать, так это использовать usbmon для прослушивания пакетов USB между ПК и умными часами . wireshark может интерпретировать их. Если вы хотите отладить это, вам нужно прочитать о том, как работает USB, как работает USB-накопитель и как работают команды SCSI, которые обеспечивают работу USB-накопителя. Это может или не может дать намек на то, что идет не так. Стандарты не сложно найти, немного погуглив.

Также возможно, что дешевые умные часы просто неправильно реализуют стандарт USB-накопителя и имеют специальный драйвер Windows, написанный производителем, который скрывает этот факт. В этом случае вы также можете прослушать USB-трафик в Windows, чтобы выяснить, как он работает, но тогда вам придется написать собственное ядро Linux или драйвер для пользовательского пространства, что является большой работой.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .