linux kernel、module编译

linux kernel编译,大致可分为几个步骤:

1. 获取想要编译的目标版本源码。

源码获取地址:https://www.kernel.org/

以下载linux-2.6.32.63.tar.xz为例。


2. 解压缩源码。将kernel的源码压缩文件上传到自己编译机器上,通过tar命令进行解压。

命令格式:tar xvf linux-2.6.32.63.tar.xz

解压结果会在当前路径生成一个linux-2.6.32.63的目录。


3. 准备.config文件。可以使用make oldconfig,或make menuconfig命令在当前目录生成编译所需的.config文件。

又或者是进入到arch/x86_64/目录下,拷贝KConfig文件出来,再重命名成.config均可。


4. 编辑配置.config文件,选择想要编译进vmlinux的modules。


5. 执行make -j4命令多线程编译。编译完成之后,会生成bzImage文件,这是压缩过后的vmlinux内核映像文件。


6. 执行make modules_install,会将编译完成的modules添加到/lib/modules/2.6.32.63对应内核的目录。


7. 执行make install,会自动生成initrd文件,以及重新配置/boot/grub/menu.lst文件,将自己编译的内核添加到系统启动选项中。


至此,编译一个版本的内核就完成了。


-------------------------------------------------分 割 线-------------------------------------------------


如果,想要编译此版本的驱动,或想要添加默认没有的模组。两种方式可行。

1. 通过修改.config文件,将需要的驱动或模组开关打开,比如,想要增加gfs2的modules。编辑CONFIG_GFS2=m。

2. 进入到对应驱动的目录下,执行命令make /lib/modules/linux-xxx/build M=$PWD modules进行编译。


编译出对应的ko文件之后,通过make -C modules_install将modules添加进该内核版本的/lib/modules/linux-xxxx目录下,在必要时通过insmod <xx>.ko的方式,加载到系统当中。另外modprobe命令也相当的好用,因为modprobe会自动解决modules加载时的依赖。



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值