Хотел бы узнать, как устройство обнаружено в Linux? Что такое рабочий процесс драйвера устройства при обнаружении устройства?Процесс обнаружения драйвера устройства в Linux
ответ
Задачей ядра является обнаружение устройств, поскольку он имеет доступ к доступному оборудованию на самом низком уровне. Когда ядро просматривает все доступные адреса, он ведет список идентификаторов поставщиков и устройств.
Чтобы использовать в качестве примера устройства шины PCI, есть идентификатор поставщика и идентификатор устройства, связанный со всеми устройствами PCI.
Драйверы устройств написаны таким образом, чтобы идентифицировать ядро, какие устройства могут управлять водителем. Водители могут рекламировать, что они могут обрабатывать более одной комбинации поставщиков и устройств.
Ядро будет выделять драйвер для каждого устройства на основе этих идентификаторов. Аналогичный процесс применяется для устройств USB. Старые технологии, такие как устаревшие устройства (последовательные порты, параллельные, ps2-мыши/клавиатуры), будут иметь явно жестко установленные методы связывания определенных драйверов с устройствами.
Вы можете использовать Linux команды lsusb и Утилита lspci, чтобы увидеть доступные устройства и идентификаторы в вашей системе.
Так что в прямом ответе на ваш вопрос - драйвер устройства обычно ничего не делает для обнаружения устройства, по крайней мере, в первом случае. Как только драйвер связан с устройством (по ядру), драйвер, скорее всего, продолжит допрос устройства, чтобы убедиться, что он содержит правильную прошивку или является правильной версией оборудования и т. Д.
Это, по крайней мере, так я понимаю , Несколько лет назад я немного поработал над драйвером PCI, и понимание первоначального способа размещения вашего драйвера с устройством - это первое, с чем нужно справиться. – Wossname
Спасибо за информацию! –