编译内核和烧写到开发板
1、内核源代码的获取:从社区下载内核,完成移植.http://www.kernel.org/pub/linux/kernel/v2.6/
2、拷贝内核源码包至宿主机.借助XP和Linux的共享目录,从Windows中复制内核
3、解压内核:#tar xvzf linux-2.6.32.2.tar.gz -C /home/lwb
解压后在 /home/lwb 目录下 多了一个 linux-2.6.32.2目录
4、进入linux-2.6.32.2目录 拷贝config_w35文件 为 .config
5、修改内核linux-2.6.32.2\目录下的Makefile
ARCH ?=arm //指定架构
CROSS_COMPILE ? =arm-linux-
上面两行是在 export KBUILD_BUILDHOUST:=$(SUBARCH)之下。
6、定制内核:执行make menuconfig定制内核组件,要以rootde 权限执行
#make menuconfig //执行后会启动一个图形界面,用以定制内核各个功能
在图形界面中选中需要的项。保存退出。
7、编译内核
#make zImage (大概10分钟左右)
编译完成后,在/home/lwb/linux-2.6.32.2/目录下生成一个vmlinux文件和在/home/lwb/linux-2.6.32.2//arch/arm/boot/目录下生成有内核镜像文件zImage。
zImage转换为uImage
(zImage 和uImage 的区别:zImage 是没有包头的,只能在supervivi下进行烧写。
而uImage是有包头的,能再u_boot下进行烧写。)
zImage 转换为uImage 需要的工具有:mkimage工具(该工具是在编译u_boot是生成的,它在/home/lwb/u-boot-2010.03/ 下由mkimage.c执行生成的mkimage的)。此外,还要mkz2uimage脚本
(脚本内容:mkimage -A arm -O linux -T kernel -C none -a 0x30008000 -e 0x30008040 -n "Linux kernel Image by embedclub" -d zImage uImage )
实现步奏如下:
(1)将mkimage拷贝到/usr/local/bin标准路径下 即:#cp mkimage /usr/local/bin
(2 ) 把mkz2uimage拷贝到 /home/lwb/linux-2.6.32.2/arch/arm/boot/目录下
即#cp mkz2uimage /home/lwb/linux-2.6.32.2/arch/arm/boot/
(3) 执行脚本mkz2uimage #./mkz2uimage
执行之后,在执行目录下生成一个 uImage
生成uImage后就可以下载啦。参考上一篇