将模块编入内核详解
下载内核
以linux内核为例
[进入官网]https://www.kernel.org/
下载内核,然后进行解压,参考命令
tar xvf linux-6.2.9.tar.xz
安装编译工具以及其他依赖包,在Ubuntu18.04执行如下命令
sudo apt-get install git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc flex libelf-dev bison
将模块编入内核
-
查看对应模块的命名
进入某个模块,查看其命名
打开
MakeFile
文件查看其命名从MakeFile中可看到
CONFIG_MEGARAID_MM,CONFIG_MEGARAID_MAILBOX,CONFIG_MEGARAID_SAS
如果有在上级菜单被定义的话,megaraid_mm.o,megaraid_mbox.o,megaraid_sas.o
就会被编译进可执行文件中。
- 以对应架构的方式打开配置界面,这里指定的架构是i386
-
选择想编译的模块
以
CONFIG_MEGARAID_MM
为例,输入/
,检索这个关键词
按回车键退出检索界面,进入检索到的路径,使用空格键将其勾选为*
号,表示编译进内核。
退出时选择保存
- 编译
后面这个的话根据MakeFile的有所不同。linux内核的步骤如下所示
make -j 10 //选择内核,如果对架构有要求,比如执行i386架构,可增加参数ARCH=i386
sudo make modules_instal//安装模块
sudo make install //安装内核
uname -mrs //重启后执行,查看内核版本