根文件系统挂载
根据存储设备的硬件特性、系统需求,不同的文件系统类型有不同的应用场合。在嵌入式 Linux 应用中,主要的存储设备为 RAM 和 FLASH,常用的基于存储设备的文件系统类型包括:jffs2, yaffs2, ubifs, ramdisk 等。
一、使用Initramfs
1).进入 rootfs/目录
2).为 busybox 创建软链接#ln –s ./bin/busybox init
3).进入 linux 配置 Linux 内核,使其支持 initramfs
make menuconfig ARCH=arm进入General setup-->
找到 Initial RAM。。。。。。选中,并且将下面一项的路径改为rootfs 目录的路径
4).保存退出编译内核
make zImage ARCH=arm CROSS_COMPILE=arm-linux-
5).复制生成的 zImage 文件到 下载内核的 目录下(这里我使用的是tftp自动下载所以将生成的文件复制到了/home/tftp目录下面)
1.1开发板bootloader环境变量设置(串口终端)
1).setenv bootargs noinitrd console=ttySAC0,115200
2).save 保存
3).通过 tftp 下载到开发板
tftp c0008000 zImage
4).使用 bootm 执行 c0008000
不出意外我们就可以看到串口中断打印处以下信息说明我们成功了,但是如果是这样子的话我们没修改一次内核就得下载一次,比较繁琐因此我们接着学习NFS(网络文件系统)实现开发板的PC机的挂载。
二、使用NFS(网络文件系统)
保证虚拟机 nfs 启动配置目录是正确的
vi /etc/exports 修改目录访问权限(这里的目录是rootfs的目录)
可读可写属性 同步 root权限挂载的。
使生效:exportfs –ra
/etc/init.d/nfs restart 重新启动
2.1配置内核
make menuconfig ARCH=arm
2.2进入 General setup--->
取消:
2.3退出并且进入file systems--->选项
选中 Network file system->选项,并且进入保证选项中 root file
system on nfs 被选中
2.4保存并且退出
编译:make zImage ARCH=arm CROSS_COMPILE=arm-linux-
将生成的zImage镜像复制到tftp服务器目录下面(因为的内核镜像是通过tftp下载待开发板的)
2.5开发板u-boot启动参数设置
setenv bootargs noinitrd console=ttySAC0,115200 init=/init root=/dev/nfs rw nfsroot=192.168.2.1:/home/rootfs ip=192.168.2.2:192.168.2.1:192.168.1.1:255.255.255.0::eth0:off
开发板ip nfs服务器ip nfs服务器地址
启动参数含义:
bootargs:告诉内核以什么样的方式启动
console=ttySAC0:串口0作为控制台,波特率为115200
root=/dev/nfs:使用dev目录下的nfs作为根文件系统
rw:表示可读可写
nfsroot=192.168.2.1:NFS服务器的ip地址
off:关闭动态IP获取