• 第四季-专题4-嵌入式文件系统


    专题4-嵌入式文件系统

    1. 建立根文件系统目录与文件

    目录和目录中的文件就是文件系统。

    (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)       创建设备文件

    Linux系统中的绝大多数文件,都是以文件的方式来存储的。Linux系统的中的dev文件专门用来存放这些文件。

    #cd rootfs/dev

    #mknod -m 666 console c 5 1

    #mknod -m 666 null c 1 3

    (3)       加入配置文件

    将压缩包拷贝到这节课的目录下

    #tar etc.tar.gz

    #mv etc/* …/root/etc/ -rf

    (4)       添加内核模块

    内核的一部分文件在内核中,另一部分功能的实现,需要内核模块的实现,现在将内核模块的路径指向我们的创建的根文件系统。

    #cd …/linux

    #make modules ARCH=arm CROSS_COMPILE=arm-linux-

    #make modules_install ARCH=arm INSTALL_MOD_PATH=…/rootfs

    (5)       编译busybox

    Busybox: 嵌入式开发中的瑞士军刀,它来提供嵌入式系统中的一些命令功能。

    l  配置busybox

    #make menuconfig

    Busybox Settings àbuild Options->

    v 选中“Build busybox as a static binary”, 静态链接

    Cross Compiler prefix (arm-linux-)

    Installation Options->

    v 选中“Don‘t use /usr”, 选中该项可以避免busybox 被安装到宿主系统的/usr目录下,破坏宿主系统

    v Busybox Installation Prefix (/xxx/rootfs)

    该选项表明编译后的busybox的安装位置

    l  编译、安装busybox

    v make

    v make install

           现在在我们的rootfs的bin目录下就能看到很多的命令。

    1. 挂载根文件系统到内核

    (1)       挂载方式简介

    根据存储设备的硬件特性、系统需求,不同的文件系统类型有不同的应用场合。在嵌入式

    Linux应用中,主要的存储设备为RAM 和FLASH,常用的基于存储设备的文件系统类型包括:jffs2, yaffs2, ubifs, ramdisk等。

           基于NandFlash的文件系统:Yaffs2和UbiFs

           基于NorFlash的文件系统Tffs2

           基于内存的文件系统:Ramdisk和Initramfs

           基于网络的文件系统:NFS

    (2)       Initramfs挂载

    l  在rootfs文件夹中

    #cd …/rootfs/

    #ln –s ./bin/busybox init

    l  在内核文件中

    配置Linux内核,支持initramfs

     

    l  编译内核

    l  setenv bootargs noinitrd console=ttySAC0,115200

    (3)       NFS挂载

     

    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=3

    proto=tcp,nfsvers=3

    ip=192.168.1.6:192.168.1.3:192.168.1.1:25

    5.255.255.0::eth0:off

  • 相关阅读:
    Mysql的四种引擎介绍
    电商项目实战(架构三)——redis的启动,安装和运用(windows下)
    bug篇——ERROR: Maven JVM terminated unexpectedly with exit code 137
    电商项目实战(架构二)——Swagger-UI实现在线api文档
    电商项目实战(架构一)——SpringBoot+MyBatis搭建基本骨架
    bug篇——上传图片大小限制配置
    bug篇——Mybatis中Mapper.xml文件的if判断问题
    bug篇——线上移动端跳转页面
    安装篇——xshell评估过期解决
    bug篇——vue跨域时cookies问题
  • 原文地址:https://www.cnblogs.com/free-1122/p/11452243.html
Copyright © 2020-2023  润新知