一. 开发环境
1..windows7 + VMware+Ubuntu14.04.1 LTS
2. ubuntu开发目录:/home/lct
3. 编译工具:arm-linux-gcc4.4.3,所在目录:/usr/local/arm/4.4.3/bin
4. 虚拟机网络设置
本机PC: ip:192.168.2.104 掩码:255.255.0 网关:192.168.2.1
Linux网络设置: ip:192.168.2.105 掩码:255.255.0 网关:192.168.2.255
虚拟机连接方式:bridged
二. 编译U-BOOT
1.解压: tar -zvxfu-boot-2010.12-psp03.21.00.04.mcuzone20111109.tar.gz
2. 清除之前配置:
make distcleanCROSS_COMPILE=/usr/local/arm/4.4.3/bin/arm-linux-
3. 生成配置文件.config:
makeda850evm_configCROSS_COMPILE=/usr/local/arm/4.4.3/bin/arm-linux-
4. 编译:make allCROSS_COMPILE=/usr/local/arm/4.4.3/bin/arm-linux-
三.编译内核
1. u-boot编译后生成的mkimage拷贝到/bin下
2. 清除之前配置:
make distcleanARCH=arm CROSS_COMPILE=/usr/local/arm/4.4.3/bin/arm-linux-
3. 生成配置文件.config:
makeda850_omapl138_deconfig ARCH=arm CROSS_COMPILE=/usr/local/arm/4.4.3/bin/arm-linux-
4.配置:make ARCH=arm CROSS_COMPILE=/usr/local/arm/4.4.3/bin/arm-linux-menuconfig-
5. 编译生成uImage:
make uImageARCH=arm CROSS_COMPILE=/usr/local/arm/4.4.3/bin/arm-lin ux-
四.制作文件系统
交叉编译busybox:
1.解压: tar –xvf busybox-1.19.4.tar.bz2
2.配置(动态编译):make menuconfig
3.编译:make ARCH=arm CROSS_COMPILE=/usr/local/arm/4.4.3/bin/arm-linux-
编译时错误:
错误一: loginutils/passwd.c:In function ‘passwd_main’:
loginutils/passwd.c:104:16: error: storage size of ‘rlimit_fsize’isn’t known
loginutils/passwd.c:188:2: warning: implicit declaration offunction ‘setrlimit’ [-Wimplicit-function-declaration]
loginutils/passwd.c:188:12: error: ‘RLIMIT_FSIZE’ undeclared(first use in this function)
loginutils/passwd.c:188:12: note: each undeclared identifier isreported>for each function it appears in
loginutils/passwd.c:104:16: warning: unused variable‘rlimit_fsize’ [-Wunused-variable]
改正:sudo gedit busybox-1.19.4/include/libbb.h添加头文件:#include <sys/resource.h>
错误二:util-linux/mkfs_ext2.c:51:27:fatal error: linux/ext2_fs.h: No such file or directory改正:出现这个错误是busybox版本导致的,只有busybox-1.19.4会出现这个问题,换成busybox-1.21.1,问题消失。
4.安装:make install
5.创建系统其他文件: