Вставить модуль ядра Linux статически - PullRequest
13 голосов
/ 09 сентября 2011

При сборке ядра Linux из исходных текстов можно решить, встроена ли определенная функциональность в ядро ​​статически или упакована в модуль для динамической вставки с помощью .config.

Если, с другой стороны, у меня есть исходники для какого-либо стороннего модуля, такого как, например, пакетный драйвер устройства, возможно ли вместо этого программно интегрировать этот код в ядро ​​статически? А не загрузить модуль ядра из корневой файловой системы?

1 Ответ

10 голосов
/ 27 сентября 2011

Конечно, вам просто нужно немного взломать, чтобы переместить внешний модуль в дерево исходных кодов ядра, немного настроить Makefiles / Kconfig, чтобы встроенный код, а затем собрать образ ядра.Например, допустим, вы переместили источник модуля в drivers/blah.Затем вы должны добавить строку к концу drivers/Makefile, как

obj-y += blah/

, и вы должны убедиться, что drivers/blah/Makefile настроен для сборки вашего модуля, с чем-то вроде

obj-y += mymodule.o
mymodule-objs := src.o other.o

и так далее, где ваш Makefile настроен, однако он должен быть для сборки конкретного модуля, над которым вы работаете.Примечание: вы должны использовать имя выходного файла для mymodule-objs, а не имя входного файла!

...