У меня есть SD-карта, которая подключена к микросхеме контроллера usb224x на плате на базе процессора im6qp.
Сигналы SD будут преобразованы в сигналы USB dp и dm.Теперь есть два варианта использования:
сценарий использования1: SD-карта уже вставлена до включения питания,
sd 0:0:0:0: [sda] 249737216 512-byte logical blocks: (128 GB/119 GiB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] No Caching mode page found
sd 0:0:0:0: [sda] Assuming drive cache: write through
sda: sda1
sd 0:0:0:0: [sda] Attached SCSI removable disk
Теперь, если я извлекаю SD-карту, я неполучите любую печать ядра, в которой говорится, что карта удалена.
usecase2: SD-карта вставлена в работающее ядро.Не приходит распечатка, в которой говорится, что SD-карта определяется как sda.
В случае 1 я могу установить эту SD-карту и получить доступ к ее содержимому. В случае 2 я не могу.
У меня возник этот вопрос / путаница
- Ответственно ли пользовательское пространство, такое как udev, чтобы определить, присутствует ли устройство или нет?Я попытался поместить отпечатки во многие файлы ядра USB, и никто ничего не печатает.Однако в то же время я могу получать прерывания на сенсорном устройстве, которое использует ту же шину USB, но другой канал.
Я пытался получить распечатки в функциях usb в подсистемах drivers / usb, storage и scsi, но не наблюдалось никаких распечаток.
Я попытался включить распечатки debugfs, но я не получаю даже журналтогда и это еще одна проблема, которую я не могу решить.
Основная проблема - я не понимаю, как и кто инициирует это изменение удаления и вставки, является ли это драйвер ядра низкого уровня, который ищет прерывание иинициировать все это или udev , например / sbin / hotplug ?
Моя версия ядра 4.9, и я использую build root для обычных случаев использования, а также Android O с тем же ядром.Такое же наблюдение я получаю.