Модификация существующего модуля в ядре Linux

Я использую g_file_storage как водитель на моем embedded linux чтобы представить его как запоминающее устройство для любого USB-хоста. Я сделал это хорошо!

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

У меня есть это function fsg_suspend() в g_file_storage driver... Это процедура, которая вызывается, когда USB-хост Windows делает "Safely remove hardware".....

я думаю о добавлении простого printk для отправки простого сообщения в /var/log/message в fsg_suspend функция, которую я буду смотреть из пользовательского пространства на BeagleBoard.....

но я в очень простых сомнениях в программировании ядра... если вы можете мне помочь....

я написал простые модули ядра.. что скажем module.c подать я использую простую команду make, чтобы скомпилировать его тогда modprobe/insmod чтобы вставить его, а затем я использую его......это о модуле, полностью написанном мной.

а также

я также настроил модуль в качестве опции M в файле конфигурации при перекомпиляции ядра.. затем я делаю make, делаю модули, make modules_install, make_install тогда мы используем modprobe использовать эту особенность.. Пожалуйста, поправьте меня, если я ошибаюсь....

Но здесь этот модуль является модулем ядра, если я внесу в него изменения, то........

Могу ли я просто перекомпилировать его, используя его makefile... и сделать modprobe...? но этот Makefile, кажется, не поддерживает эту идею..

это будет мешать уже существующей копии этого модуля в работающем ядре? Или мне придется перекомпилировать ядро?

1 ответ

Я не понимаю большую часть первой половины запроса. Вопрос помечен Linux и ядром, так почему же так много о Windows?

Если я правильно понимаю, вам придется отключить существующий драйвер устройства. Самый простой способ - перестроить ядро ​​без него. Затем используйте insmod а также rmmod Команды для загрузки и выгрузки нового драйвера.

Я не могу судить по предоставленным вами деталям, но, возможно, у нового драйвера есть способ сосуществовать со старым. Если ему не нужен IRQ или он может использовать отдельный, вы можете создавать новые узлы устройства и использовать его независимо от существующего драйвера.

Другие вопросы по тегам