嵌入式Linux的内核编译

实验环境
VMware Workstation Player
Ubuntu16.04
kernel-3.2.tar.bz2

Linux内核编译
在ubuntu上编译嵌入式Linux内核,需要大家提前安装好交叉编译工具链,在此就不再赘述。编写Linux内核需要内核源码和内核编译配置文件kernel_config,如下图:
在这里插入图片描述
具体编译步骤如下:

1.解压内核源码
tar   -jxvf  kernel-3.2.tar.bz2

2.替换编译内核配置文件,选择需要编译的内核模块
cp -a kernel_config  ./kernel-3.2/.config

3.备份当前.config文件为.config.old,如若make config/menuconfig设置不当可用于恢复先前的.config
make -C ./kernel-3.2 oldconfig

4.编译生成内核镜像文件
make -C ./kernel-3.2 -j4 uImage
-j4表示4线程编译内核

编译完成后最终在arch/arm/boot/目录下生成 uImage 内核镜像文件

编译完成结果如下图:
在这里插入图片描述
至此,整个Linux的内核编译过程已经完成。

扩展:make Image uImage与zImage的区别?
内核编译(make)之后会生成两个文件,一个Image,一个zImage,其中Image为内核映像文件,而zImage为内核的一种映像压缩文件,Image大约为4M,而zImage不到2M。

那么uImage又是什么的?它是uboot专用的映像文件,它是在zImage之前加上一个长度为64字节的“头”,说明这个内核的版本、加载位置、生成时间、大小等信息;其0x40之后与zImage没区别。

zImage 是ARM Linux常用的一种压缩映像文件,uImage是U-boot专用的映像文件,它是在zImage之前加上一个长度为0x40的“头”,说明 这个映像文件的类型、加载位置、生成时间、大小等信息。换句话说,如果直接从uImage的0x40位置开始执行,zImage和uImage没有任何区 别。另外,Linux2.4内核不支持uImage,Linux2.6内核加入了很多对嵌入式系统的支持,但是uImage的生成也需要设置。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值