linux内核树的构建

运行环境:

虚拟机:vmware9.0.1

gcc版本:gcc:3.4.5

linux内核:linux-2.6.32.21

在构建内核树前不妨先查看下gcc版本,我使用的是gcc-3.4.5的版本,编译linux-2.6.10内核使用较新的版本可能出现问题,可参看gcc版本更改修改版本。不过后来发现用linux内核建立的内核树与系统使用的内核版本不符,导致编译进内核时出现驱动模块格式错误的信息。所以需要先查看下系统的内核版本,由于参考的是LDDR3,可能在以后的编写驱动过程中可能会出现不同,但现在linux-2.6.10的内核较老,修改系统内核提示2.6.10内核版本太老,无法完成。晕!只好编译新的内核了。

在构建内核树前最好运行如下命令查看下系统的内核版本,否则可能会出现版本不兼容的问题。

uname -a

出现如下信息:

Linux localhost 2.6.32-21-generic #32-Ubuntu SMP Fri Apr 16 08:10:02 UTC 2010 i686 GNU/Linux

然后从官网下载内核源码:

官网:

https://www.kernel.org/pub/linux/kernel/v2.6/

下载的源码:

linux-2.6.32.21.tar.bz2

进入/usr/src/后

复制下载的源码并解压到/usr/src/目录下。

cp /mnt/hgfs/mnt/linux-2.6.32.21.tar.bz2  .(后面还有个小点,表示当前目录,若下载源码是gz后缀名需用zxvf选项解压)

tar jxvf linux-2.6.32.21.tar.bz2 

解压完成后执行:

make oldconfig

该命令可在现有内核文件设置基础上构建新的配置文件,在内核升级时正需要设置内核新增特性的问题即可。

我使用的是默认配置,配置完成后执行:

make

该过程较长,可能需要一个小时左右,有人反映使用make -j2命令建立并行任务可提高编译速度,j2后面的2为并行任务个数,该值设置为系统CPU个数速度较快,但也不能一概而论。

编译完成后执行:

make bzImage

执行后会在当前目录下生成

vmlinux

接下来需要做的是将生成的模块编译进内核,执行:

make modules

make modules_install

进入/lib/modules/目录会发现生成以内核版本命名的内核目录,进入内核树目录后还会有个build目录。以后会在编译驱动模块的Makefile文件中用到。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值