目的是给AT91SAM9261EK开发板做一个内核文件,可以说是从一点都不懂,到晚上快九点多才弄成,这个文档真是起到了事半功倍的效果,真的很感谢
http://wenku.baidu.com/view/dcad6975f46527d3240ce047.html
1.下载内核和板子的补丁
2.安装 tar vxjf linux-2.6.22.tar.bz2(如果是tar.gz 就是vxzf)
#zcat 2.6.22-at91.patch.gz | patch -p1
#zcat linux-2.6.22-at91-exp.diff.gz | patch -p1
3.#cd linux-2.6.22(必须在这个目录下,因为这个目录下有vmlinux)
make menuconfig 配置下
4.#make zImage
大概要编译十分钟左右(一直是求佛的姿势,生怕出什么问题)
结果还是出问题了
首先芯片问题如果没选好的话会出错,所以我才找的帖子,下载了对应芯片的补丁
其次出了个VGR还是啥的关于显示方面的问题,然后再进menuconfig取消这部分就行了
再者就是交叉编译链出了问题。我的交叉编译链是4.4.3应该是太新了,根据网上的说法在文件中注销相应的提示
解决办法:
修改:arch/arm/kernel/vmlinux.lds文件的最后部分:
注释掉ASSERT((__proc_info_end - __proc_info_begin),"missing CPU support")
ASSERT((__arch_info_end - __arch_info_begin), "no machine recorddefined")
然后就好了
生成的zImage在Linux-2.6.22/arch/arm/boot 中
zImage转uImage:
{ 安装uboot tool:
#apt-get install u-boot-tools
用mkimage指令或者再次make uImage(会自动调用mkimage)
}