使用官方提供的Linux内核,编译时出错。
CC kernel/panic.o
CC kernel/printk.o
CC kernel/cpu.o
CC kernel/exit.o
CC kernel/itimer.o
TIMEC kernel/timeconst.h
Can't use 'defined(@array)' (Maybe you should just omit the defined()?) at kernel/timeconst.pl line 373.
/ok6410/linux-3.0.1/kernel/Makefile:140: recipe for target 'kernel/timeconst.h' failed
make[1]: *** [kernel/timeconst.h] Error 255
Makefile:945: recipe for target 'kernel' failed
make: *** [kernel] Error 2
将if (!defined(@val)) 改为if (!(@val)),再次编译就可以通过了。
编译uboot
设置编译器
export PATH=/usr/local/arm/4.3.2/bin:$PATH
export TOOLCHAIN=/usr/local/arm/4.3.2
export TB_CC_PREFIX=arm-linux
export PKG_CONFIG_PREFIX=$TOOLCHAIN/arm-none-linux-gnueabi查看arm-linux-gcc -v 是否为4.3.2
make forlinx_nand_ram256_config
make clean
make完成后将生成u-boot.bin和mmc.bin
编译内核,解压linux-3.0.1-v7.40-2014-09-13.tar.gz,进入内核目录
make zImage
编译结束后将在内核源码目录的 arch/arm/boot 中得到 Linux 内核映像文件:zImage
制作根文件系统rootfs.yaffs2
工具: mkyaffs2image-nand2g,FileSystem-Yaffs2-V5.40-2014-7-29.tar.gz都是官方提供的。
解压FileSystem-Yaffs2-V5.40-2014-7-29.tar.gz
./mkyaffs2image-nand2g FileSystem-Yaffs2 rootfs.yaffs2
以后要修改根文件系统里的内容就直接修改FileSystem-Yaffs2目录下,在使用上面的命令制作烧写的根文件系统。
完成后将得到所有烧写文件