zoukankan      html  css  js  c++  java
  • 专题4-嵌入式文件系统

    1.创建目录

    #mkdir rootfs
    #cd rootfs
    #mkdir bin dev etc lib proc sbin sys usr mnt tmp var
    #mkdir usr/bin usr/lib usr/sbin lib/modules

    2.创建设备文件

    (1)在Linux中设备都以文件的形式存在和操作。

    (2)这些文件都在dev目录

    (3)在启动Linux系统的时候必须要使用两个设备文件console和null

    #cd rootfs/dev

    #mknod -m 666 console c 5 1

    #mknod -m 666 null c 1 3

    3.加入配置文件(一般都是借鉴已有的)

    #tar etc.tar.gz
    #cp etc/* /rootfs/etc/ -rf

    4.添加内核模块

    #cd …/linux
    #make modules ARCH=arm CROSS_COMPILE=arm-linux-

    #make modules_install ARCH=arm INSTALL_MOD_PATH=…/rootfs

    5.编译安装busybox(瑞士军刀)

    (1)busybox提供linux的系统调用等功能

    (2)配置busybox

    #make menuconfig
    Busybox Settings àbuild Options->
    --》 “Build busybox as astatic binary”, 静态链接

    --》 Cross Compiler prefix (写入前缀arm-linux-)
    Installation Options->
    --》选中 “Don‘t use /usr”

    选中该项可以避免busybox 被安装到宿主系统的/usr目录下,破坏宿主系统
    --》 Busybox Installation Prefix(写入参数/xxx/rootfs)
    该选项表明编译后的busybox的安装位置

    (3) 编译/安装busybox

    make

    make  install

    6.文件系统分类

    根据存储设备的硬件特性、系统需求,不同的文件系统类型有不同的应用场合。在嵌入式Linux应用中,主要的存储设备为 RAM 和FLASH,常用的基于存储设备的文件系统类型包括:jffs2, yaffs2, ubifs, ramdisk等

    7.根文件系统一般用initfamfs,基于内存的文件系统掉电丢失,但是速度快。一般一个系统是多个文件系统混合使用。

    8.要使用initramfs就必须使用软链接

    ln  -s  ./bin/busybox  init

    在当前文件夹产生init的快捷方式对应于./bin/busybox 

    9.配置内核要选上 initramfs选项(General里),且紧接着填写根文件系统所在位置。再重新编译内核。

    10.设置UBOOT环境变量(传给内核的启动参数)

    setenv bootargs noinitrd console=ttySAC0,115200

    但是这样,如果要添加文件则必须要重新编译内核使得文件系统得到更新,因为此时的文件系统是通过解压存在内存里面的。即这种方式的文件系统是包含在内核里的。

    11. 使用NFS

    (1)内核配置

    ---》取消initramfs

    ---》进入File  System

    ---》根文件系统onNFS选上

    (2)编译内核

    (3)设置UBOOT启动参数

    setenv bootargs noinitrd (设置启动参数的固定格式)
    console=ttySAC0,115200 init=/init  (启动项信息,串口0,波特率)
    root=/dev/nfs rw (指明用nfs启动)
    nfsroot=192.168.1.3:/home/S5-driver/lesson9/rootfs(根文件系统在主机的路径)
    ip=192.168.1.6(开发板IP地址):192.168.1.3(主机IP):192.168.1.1(网关):255.255.255.0(掩码):(开发板主机名):eth0(启动之后IP地址赋值的对象):off(关闭动态IP)

    setenv bootargs noinitrd  console=ttySAC0,115200 init=/init root=/dev/nfs rw nfsroot=192.168.1.108:/nfsroot/motion_rootfs ip=192.168.1.186:192.168.1.108:192.168.1.1:255.255.255.0:XiaoJunJun:eth0:off

    12.产品成熟以后都用initramfs和yaffs2文件系统。如果开发板的IP和windows的相同会导致访问NFS很慢甚至掉线。

  • 相关阅读:
    Git 基础
    SharePoint 2013 对象模型操作"网站设置"菜单
    SharePoint 2013 隐藏部分Ribbon菜单
    SharePoint 2013 Designer系列之数据视图筛选
    SharePoint 2013 Designer系列之数据视图
    SharePoint 2013 Designer系列之自定义列表表单
    SharePoint 2013 设置自定义布局页
    SharePoint 2013 "通知我"功能简介
    SharePoint 2013 创建web应用程序报错"This page can’t be displayed"
    SharePoint 禁用本地回环的两个方法
  • 原文地址:https://www.cnblogs.com/YanfeiHao/p/4161497.html
Copyright © 2011-2022 走看看