4.根文件系统挂载

          根文件系统挂载

  根据存储设备的硬件特性、系统需求,不同的文件系统类型有不同的应用场合。在嵌入式 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获取

原文地址:https://www.cnblogs.com/wmx-learn/p/5323683.html