Я проделал некоторую работу по обратному портированию модулей ядра для hid-apple
и bcm5974
(при большой помощи отSicVolo) и написание для них скриптов DKMS, чтобы я мог поддерживать совместимость при обновлениях ядра:
Патчи довольно просты, они просто добавляют поддержку новых идентификаторов USB-продуктов.
Проблема, с которой я столкнулся, заключается в том, что даже после установки этих новых модулей ядра с помощью DKMS мои устройстваникогдапривязанные к правильным драйверам, они всегда привязаны к usbhid
и затем к hid-generic
, где они должны быть привязаны к hid-apple
и bcm5974
для клавиатуры и трекпада соответственно.
Изменения естьДействительнопростые и, насколько я могу судить, они должны сообщить ядру достаточнопривяжите нужные устройствакправильные водители.
Есть ли какой-то шаг, который я упускаю, чтобы сообщить ядру, что оно действительно должно привязать эти устройства к этим драйверам? Я устанавливаю модули в неправильном месте в DKMS?
Если я прохожу через трудности повторной привязки устройств к правильным драйверам (т.е.: нахожу, ищу, отвязываю, привязываю), они работают отлично, и патчи функционируют так, как и ожидалось. Но как мне заставить ядро привязывать все правильно?по умолчанию?
решение1
Моя проблема заключалась в том, что я устанавливал пакеты в неправильные каталоги в DKMS.
Важно настроить, DEST_MODULE_LOCATION
чтобы указать на каталог в драйверах ядра, в котором должен находиться ваш модуль. Я устанавливал в /updates
, но это было неправильное место. Мне пришлось переместить его в , /kernel/drivers/hid
чтобы он был распознан.
Странно то, что DKMS, похоже, все равно устанавливает драйвер, /extras
независимо от того, что вы здесь передаете, но каким-то образом это исправляет ситуацию.