Модификация существующего модуля в ядре Linux - PullRequest
0 голосов
/ 21 марта 2011

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

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

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

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

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

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

и

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

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

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

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

1 Ответ

0 голосов
/ 21 марта 2011

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

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

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

...