开发环境:
目标平台:迅为itop4412
内核版本:linux-3.0.15
主机:Ubuntu 12.04 LTS
交叉编译器:arm-2009q3(迅为提供,arm-linux-gcc 4.4.1)
操作步骤:
(前提:宿主机上配置好NFS,确保nfs已经可用)
1)创建文件系统主目录:
mkdir rootfs
chmod 777 rootfs (更改权限)
2)创建子目录:
cd rootfs
mkdir bin sbin usr dev etc lib proc sys mnt tmp var
mkdir usr/bin usr/sbin usr/lib lib/modules
3)创建设备文件:
cd rootfs/dev
mknod -m 666 console c 5 1
mknod -m 666 null 1 3
4)加入配置文件:
cd etc
mkdir init.d
vim rcS(加入配置内容)
chmod 777 rcS
5)编译busybox:
a.解压
b.配置:
make menuconfig
(1.指定编译器路径:Busybox Setting->build Option->Cross Compiler prefix(/usr/local/arm/arm-2009q3/arm-none-linux-gnueabi-)
2.指定安装路径:Installation Option->
选中"Dont use /usr"避免安装到宿主系统的/usr目录下,破坏宿主系统
Busybox Installation Prefix (/home/jiangyu/rootfs)
c.保存退出
d.编译: make
e.安装: make install
6)修改内核支持NFS文件系统:
1.去除initramfs支持
2.添加NFS支持
3.重新编译内核
make zImage
7)设置uboot环境变量,使支持nfs文件系统
8)启动内核,检查
补充:因为我们使用的交叉编译环境和编译内核是一样的,所以我们的编译器在文件夹
“/usr/local/arm/arm-2009q3”中。Busybox 编译生成的二进制文件是以动态链接库的形
式运行,所以我们需要拷贝编译器里面的库文件到“lib”目录,使用命令
“cp /usr/local/arm/arm-2009q3/arm-none-Linux-gnueabi/libc/lib/* /home/jiangyu/rootfs/lib”