工具:
- 虚拟机:vmware pro 12.0
- Linux: ubuntu 16.04 desktop 64
- 交叉编译器:arm-linux-gcc-3.4.5:
用于编译比较老的u-boot-1.1.6
arm-linux-gcc-4.3.2:
用于编译较新的内核(linux-3.4.2)和busybox(busybox-1.20)
- bootloder:韦东山教学用的u-boot-1.1.6
- 内核:linux-3.4.2 获取地址:https://cdn.kernel.org/pub/linux/kernel/
- 根文件系统:使用busybox-1.20自己制作的根文件系统,busybox-1.20获取地址: https://busybox.net/downloads/
- yaffs2:http://www.aleph1.co.uk/gitweb/?p=yaffs2.git;a=shortlog;h=refs/heads/master
最近做一个摄像头远程监控小项目,笔者基于韦东山提供的uboot-1.1.6,在上面做修改。
随着内核越来越大,uboot默认的2m分区已经不够用了,我将其改为8m:
打开打好韦东山提供的uboot补丁的uboot目录,打开include/configs/100ask24x0.h,修改代码57行如下:
#define MTDPARTS_DEFAULT "mtdparts=nandflash0:256k@0(bootloader)," \
"128k(params)," \
"8m(kernel)," \
"-(root)"
#define CONFIG_BOOTARGS "noinitrd root=/dev/mtdblock3 init=/linuxrc console=tt ySAC0,115200" //避免启动内核时,打印不出内核信息
然后依次执行make 100ask24x0_config ,make(注意这里使用arm-linux-gcc-3.4.5)
在顶层目录下就会得到u-boot.bin
ok,毕