1. 先简述一下linux内核编译流程,当然编译之前需保证arm-linux-gcc编译器已经安装
1. 从网上下载内核压缩包文件,比如linux-2.6.22.6.tar.bz2, 同时获取你所需要的补丁文件,比如linux-2.6.22.6_s3c2440.patch 3. 解压内核压缩包 # tar -xjvf linux-2.6.22.6.tar.bz2 -C /home/work/s3c2440/kernel/ 4. 解压完成后打开目录,并打补丁 # cd /home/work/s3c2440/kernel/linux-2.6.22.6/ # patch -p1 </home/work/s3c2440/source/linux-2.6.22.6_s3c2440.patch
2. 上面已经解压内核文件并打好补丁,下面再进行配置和编译,这里配置我们直接采用厂家提供的配置文件config_ok把.config文件替换掉
# cp config_ok .config
3. 编译生成可执行文件,可以直接make,我们这里需要一个uImage(文件头+内核)的镜像文件,执行make uImage
# make uImage
4. 执行完成后,我们发现在./arch/arm/boot/目录下找不到uImage这个文件,我们回过去看编译提示信息,发现有一行提示信息为:"mkimage" command not found - U-Boot images will not be built,这说明系统缺少mkimage工具,按照以往经验,我们需要安装依赖包: apt-get install uboot-mkimage,但却提示”现在没有可用的软件包 uboot-mkimage,但是它被其它的软件包引用了。 这可能意味着这个缺失的软件包可能已被废弃,怎么破?按照其提示,安装”u-boot-tools“即可。
# apt-get install u-boot-tools
5. 安装完成后,再次编译
# make uImage
我们发现编译正常了,编译结束后,进入./arch/arm/boot/目录下就可以看到刚刚生成的uImage文件了....
^_^over~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~