tar xjvf u-boot-1.1.6.tar.bz2 # 解压uboot源码 cd u-boot-1.1.6 # 进入uboot源码目录 patch -p1 < ../u-boot-1.1.6_20161226_all.patch make clean make 100ask24x0_config # uboot config文件 make # uboot 编译, 得到u-boot.bin文件
烧录uboot
# 开发板 uboot # 打开 jz2440 开发板串口终端, 启动时输入空格键, 进入如下菜单 ##### 100ask Bootloader for OpenJTAG ##### [n] Download u-boot to Nand Flash ... Enter your selection: n / o # 输入n 或者 o, 烧录uboot USB host is connected. Waiting a download. # 提示连接成功
tar xjvf linux-3.4.2.tar.bz2 # 解压kernel源码 cd linux-3.4.2 # 进入kernel源码目录 patch -p1 < ../linux-3.4.2_20161226_all.patch # 打补丁文件, p1表忽略patch文件内的1层目录
make clean # 清空 (先清空再在SI内查看) cp config_jz2440 .config # 设置config文件, 此配置文件已支持dhcp make uImage # 编译获得内核image
编译时, 遇到一个错误: Can't use 'defined(@array)' (Maybe you should just omit the defined()?) at kernel/timeconst.pl line 373. 参考 Linux kernel 编译问题记录. 原因是perl版本升级了. 将 if (!defined(@val)) 改为 if (!@val) 再次编译就可以了.
烧录kernel
# 开发板 uboot # 打开 jz2440 开发板串口终端, 启动时输入空格键, 进入如下菜单 ##### 100ask Bootloader for OpenJTAG ##### [k] Download Linux kernel uImage ... Enter your selection: k # 输入k, 烧录 kernel USB host is connected. Waiting a download. # 提示连接成功