嵌入式培训
达内IT学院
400-996-5531
Linux内核模块是一种可被动态加载和卸载的可执行程序。通过内核模块可以扩展内核功能,内核模块通常用于设备驱动、文件系统等。如果没有内核模块,需要向内核添加功能就需要自发代码、重新编译内核、安装新内核等步骤。
1、在编译内核时的工作路径
可以在任何路径下编译内核,如$HOME,但是绝对不推荐在/usr/local/linux下
2、内核版本
首先决定你要采用的内核的版本。大部分人都会选择最新的稳定版内核,内核的开发者释出的内核版本可按说明方式进行辨别确认。
3、下载内核维护者维护的特定补丁
(仅适用于采用早于2.6.0-test2的内核,之后版本的内核不再需要打arm的补丁)你应该选择下载最新的补丁,因为它可以修正更多的Bug并且包含最多的特性。
4、下载内核源文件
下载自己所需的内核文件。
5、解压并且安装补丁
到Linux内核文件Linux-2.*.*.tar.gz和补丁文件patch-2.*.*.gz所在路径$HOME
tar xzvf Linux-2.*.*.tar.gz 生成linux-2.*.* 的目录
cd linux-2.*.*
zcat ../patch-2.*.*.gz | patch -p1即可
6、配置内核的编译环境
通常情况下,内核编译系统会按宿主机架构编译生成内核。但这在交叉编译时是不使用的,所以我们需要在Makefile里的修改两行内容:
ARCH ?=$(SUBARCH)
CROSS_COMPILE ?=
改为:
ARCH= ?=arm
CROSS_COMPILE ?=/usr/local/bin/arm-linux-
或者把/usr/local/bin/arm-linux-替换为你的ARM工具链所在的路径。
到此完成内核Makefile的配置。下一步将进行内核的配置并选择你的平台所需要的驱动。
7、配置内核
输入命令:make menuconfig或make xconfig进行配置,选择你的相应的硬件驱动,或者你可以选者装载别的已经作好的配置文件。配置完成后保存配置文件退出。
8、编译内核
输入命令:
make clean
make zImage
make modules
后两步用来编译内核和内核模块,在2.6的内核中,不必再make dep;编译成功后将在$HOME/linux2.*.*/arch/arm/boot/下生成zImage内核景象文件,在当前目录下生成System.map
接下来的步骤取决于你是否采用交叉编译,如果是,你可以跳到第10步--“安装交叉编译的内核”,如果你是为宿主机编译内核继续看第9步。
9、安装本地内核
此步需要root权限。在安装内核时强烈建议先备份你目前的内核和模块。
cd /lib/modules
mv 2.*.*.rmk* 2.*.*.rmk*.old
cd /boot
mv vmlinuz vmlinuz.bak
mv System.map System.map.bak
完成备份后即可进行安装,到你编译内核的工作路径下
make modules_install
将会把模块复制到/lib/modules/x.y.z路径下。
接下来安装可执行的Linux内核镜象(一般是安装在/boot下)cat ./arch/arm/boot/zImage > /boot/vmlinuz或者cp ./arch/arm/boot/zImage > /boot/vmlinuz。或者可以做一个符号连接亦可:
cp System.map /boot
注:之所以用 cat ./arch/arm/boot/zImage > /boot/vmlinuz是因为传统上Unix不会为包含0数据的文件段在文件系统里分配空间,而是采用在文件里产生“孔”的方式。有些内核装载工具并不明白含有孔的文件,所以用cat可以避免此类意外发生。
10、安装交叉编译的内核
内核模块是被安装到目标系统的/lib/modules/x.y.z目录下的,通常情况下和宿主机上的目录不同。这个安装目录在哪里取决于你的设置,但是可统称为$TARGETDIR
安装模块到$TARGETDIR的命令如下:
make modules_isntall INSTALL_MOD_PATH=$TARGETDIR
此步将会把模块安装到宿主机的$TARGETDIR/lib/modules/x.y.z目录上,将来可以再装到合适的文件系统上。或者被移植到目标机上。
注:一定不要把这些模块安装到你主机的根文件系统上,(比如省略INSTALL—MOD—PATH,或者把$TARGET改为/)。因为如果这些为目标平台编译的模块和你的主机内核是兼容的,因此将可能造成系统不能启动。
最后,达内嵌入式培训机构提醒每一个it爱好者:如果你想要在短时间内快速入门,顺利掌握一门技术,建议还是认真学习视频。多练习,多动手。
填写下面表单即可预约申请免费试听!怕钱不够?可就业挣钱后再付学费! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!
Copyright © 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有
Tedu.cn All Rights Reserved