重新编译内核
- 解压
- 打补丁
- 配置
从头自己写
在默认配置的基础上修改
厂家提供的
tar xjf linux-2.6.22.6.tar.bz2
cd linux-2.6.22.6/
patch -p1 < ../linux-2.6.22.6_jz2440_v2v3.patch
3.1 使用默认配置
在./arch/arm/configs/
下,找到与单板相似的配置文件s3c2410_defconfig,cd 到顶层目录,
make s3c2410_defconfig
make menuconfig
执行完make s3c2410_defconfig
最后显示配置结果到# configuration written to .config,然后执行make menuconfig
会读取.config文件对make配置,但是教程中的结果不能用。报错fatal error: curses.h: No such file or directory compilation terminated.
原因和解决办法:
没装ncurses,安装即可提供头文件curses.h sudo apt-get install libncurses5-dev
3.2 使用厂家的配置文件
就在根目录下,把厂家提供的config改成.config cp config_ok .config
,然后make menuconfig
,交互界面选择合适的参数,然后make
,make uImage
编译的内核给uboot用,有头部。
若报错,cc1: error: unrecognised debug output level “dwarf2”,在Makefile文件中查找该参数并注释。
若没有生成uImage,提示:“mkimage” command not found - U-Boot images will not be built
Image arch/arm/boot/uImage is ready,则安装sudo apt-get install u-boot-tools
,
最终应该这样才表示内核编译成uImage成功:
如果安装上述方法还出现not found,则是因为未安装32位库,执行sudo apt-get install lib32ncurses5 lib32z1,安装完成再次输入命令arm-linux-gcc -v则会出现对应gcc版本信息