1:建立根文件系统目录和文件
1.1:创建目录
mkdir bin dev etc lib proc sbin sys usr mnt tmp var
mkdir usr/bin usr/lib usr/sbin lib/modules
1.2:创建设备文件
cd rootfs/dev/
mknod -m 666 console c 5 1
mknod -m 666 null c 1 3
1.3:加入配置文件
tar etc.tar.gz(配制文件可以自己去网上下载,我学习的是国嵌的教程,这里在第四季的专题四)
mv /etc/* /root/etc/ -rf
1.4:添加内核模块
cd /kernel make modules ARCH=arm CROSS_COMPILE=arm-linux-
make modules_install ARCH=arm INSTALL_MOD_PATH=/rootfs/
1.5:编译busybox
busybox就是提供小命令(这个东东可以自己去找)
make menuconfig --> Build Settings -->build options-->选中Build busybox as a static binary
Installation Options->
v 选中“Don‘t use /usr”, 选中该项可以避免busybox 被安装到宿主系统的
v 选中“Don‘t use /usr”, 选中该项可以避免busybox 被安装到宿主系统的
/usr目录下,破坏宿主系统
Busybox Installation Prefix (/xxx/rootfs) 该选项表明编译后的busybox的安装位置
make , make install
2:挂载根文件系统到内核
2.1:挂载方式简介
根据存储设备的硬件特性、系统需求,不同的文件系统类型有不同的应用场合。在嵌入式Linux应用中,主要的存储设备为RAM 和FLASH,常用的基于存储设备的文件系统类型包括:jffs2, yaffs2, ubifs, ramdisk等
2.2:initramfs挂载
ls -s ./bin/busybox init
然后是进入内核,make munuconfig ARCH=arm
General setup --> Initial ARM ...* , /home.../Initramfs sources file(s) -->输入根文件系统的路径。
make得到内核
队此之外,还要在开发板上添加环境变量: setenv bootargs noinitrd console=ttySAC0,115200 , save
然后下载即可
2.3:NFS挂载
选取消掉上面的initramfs内核选择
选择这个:file systems-->*network file systems
make
开发板-- setenv bootargs noinitrd console=ttySAC0,115200 init=/init root=/dev/nfs rw nfsroot=192.168.1.3:/home/S5- driver/lesson9/rootfs,proto=tcp,nfsvers= proto=tcp,nfsvers= ip=192.168.1.6:192.168.1.3:192.168.1.1:5.255.255.0::eth0:off
其中IP可改