如何制作rootfs_linux常用文件系统类型

如何制作rootfs_linux常用文件系统类型rootfs文件系统制作笔记环境:XC2440linux2.32.2红帽5根文件系统有一系列的目录组成,其中包括应用程序、C库、及相关的配置文件。制作根文件系统的步骤如下,下面步骤均在虚拟机终端上操作。一、创建文件系统总目录rootfs【mkdirrootfs】二、创建文件系统目录【cdrootfs】进入rootfs目录,创建下面目录/bin–放置…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

rootfs文件系统制作笔记

环境:XC2440 linux2.32.2红帽5

根文件系统有一系列的目录组成,其中包括应用程序、C库、及相关的配置文件。

制作根文件系统的步骤如下,下面步骤均在虚拟机终端上操作。

一、创建文件系统总目录rootfs

【mkdir rootfs】

二、创建文件系统目录

【cd  rootfs】进入rootfs目录,创建下面目录

/bin                    –放置命令

/dev                    –放置设备文件

/etc                    –放配置文件

/lib                        –放库文件

/lib/modules

/proc                    –proc文件系统是内核与用户的接口,将内核的一些信息反映到此目录下

/sbin                        –放置命令

/sys                        –sys文件系统,主要是设备、驱动、总线信息的显示

/usr                        –用户相关

/usr/bin

/usr/lib

/usr/sbin

/mnt                            –用于挂载

/tmp                                –存放临时文件

/var                            –系统日志

当然根据需要也可参考linux系统目录加入/root、/home等目录

三、创建设备节点/dev

Linux下,设备均已设备文件的形式供用户使用,用户操作具体设备时只需操作相应设备文件。

【cd  dev/】设备文件(节点)都在dev/目录下

【mknod -m 666 console c 5 1】

【mknod -m 666 null c 1 3】

四、安装/制作/etc

/etc目录下的系统配置文件比较多,这里不展开讲解(水平有限)。但由于/etc并不需要经常改动,每次制作文件系统时,可以将上次做好的/etc目录文件copy过来就行。附件提供GQ2440的etc压缩包,将其解压到rootfs/目录即可。

【tar etc.tar.gz-C /xxx/rootfs】

五、编译及安装内核模块

这步并不是必须的,新的文件系统没必要加载内核模块,若内核没有完全配置好,则会加入很多无关紧要的模块,使根文件系统不够简洁。但如果内核基本配置好,编译出来的模块以后项目基本都会用到的,则可以选择这步。建议暂时不执行这步,模块以后可以手动加载。

进入linux内核目录(linux2.6.32.2)编译内核模块

【make mudules ARCH=arm CROSS_COMPILE=arm-linux-】

安装内核模块,这里的安装只是将模块从内核拷贝到根文件系统目录。

【make modules_install ARCH=arm INSTALL_MOD_PATH=/xxx/rootfs】

六、配置busybox

大家都在linux系统或arm嵌入式系统都使用过诸如cd  ls  mkdir等一系列命令进行相关操作。这些命令也是语言写出来的,但我们这些入门级的人是写出来的,我只要会用。而busybox就是这些命令的集合。

解压出busybox源码,进入源码目录进行配置(busybox提供了很多命令工具,但嵌入式开发板并不需要全部命令,所以要进行配置/裁剪)

【make menuconfig】

1.进入busybox setting–>

Build options–>

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

Cross compiler prefix(arm-linux-)

2.进入installation options–>

选中“don’t use/usr”选项,否则busybox被安装到宿主机系统的/usr目录下,破坏宿主机系统。

3.进入busybox setting–>

busybox installation prefix(/xxx/rootfs),该选项表明编译后的busybox的安装位置。

上面3项是最基本的配置,当然可以根据实际情况把不需要的一些命令去掉

如editors–>下提供了很多的编辑工具,可以只保留用户习惯使用的。

这样做可以使根文件系统变得更小。

4.以上配置完成后即可编译,安装busybox

【make ARCH=arm CROSS_COMPILE=arm-linux-】

【make install】

安装完成后在rootfs/bin/下会出现很多的命令函数,busybox就是这些命令的入口

20ccfb681a3734e8f9370fae42e8c441.png

图1

当然busybox有没有安装好的一个重要标志是rootfs/sbin下有没有init文件

930775ba24e061f96925a65b46ffa2fb.png

图二

经过这6个步骤,已经很粗糙的将根文件系统制作完成了。

七、制作好rootfs如何使用呢

1.使用NFS根文件系统

a6a4d64629e87bf5a3adb843a87098a2.png 

图3

先看一下u-boot参数设置,

ipaddr:目标板的IP地址

serverip:linux虚拟机系统IP地址

bootargs:参数比较多,nfsroot=……./home/lc/rootfilessys/rootfs_xc2440_qt就是根文件系统的rootfs的路径,

(因为后来加入了Qt库所以改名rootfs_xc2440_qt)。

除此之外,内核至少串口、以太网驱动要移植成功,内核中文件系统配置要选为NFS根文件系统。

2.arm本地文件系统,只要将rootfs通过mkyaffs2image成yaffs2文件系统即可。

【mkyaffs2image  rootfs  rootfs.bin】rootfs.bin就是yaffs2

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/185067.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 学生网上选课管理系统_选课管理系统

    学生网上选课管理系统_选课管理系统**数据库系统原理课程设计报告**学生选课管理系统(上)设计内容与要求:1、系统用户由三类组成:教师、学生和管理员。2、管理员负责的主要功能:①用户管理(老师、学生及管理员的增、删、改);②课程管理(添加、删除和修改);③选课管理(实现选课功能开放和禁止、老师成绩输入开放和禁止)。3、学生通过登录,可以查询课程的基本信息、实现选课、退课和成绩查询;4、老师通过登录,可以查看选…

    2022年10月16日
    3
  • Java拖拽排序工具类「建议收藏」

    Java拖拽排序工具类「建议收藏」packagecom.ciih.jwt.util.sort;importjava.lang.reflect.Field;importjava.util.Collections;importjava.util.List;/***拖拽排序工具:此工具将传入的list重新排序后返回,使用者只需要将list重新存入数据库即可完成排序.*<>*拖拽排序必然牵扯到两个元素,被拖拽的元素和被挤压的元素.排序方式就存在两种,一种是两个元素进行交换位置,一种是一个元素拖到.

    2022年6月29日
    26
  • pycharm创建django项目报错[通俗易懂]

    pycharm创建django项目报错[通俗易懂]ErrorcreatingDjangoapplication:Erroronpythonside.Exitcode如果创建Django项目的时候出现如上截图错误,则是Django下载失败,需要检查本机django是否下载成功,有的时候是因为缺少pytz包而导致django下载失败解决方案:关于pytz包缺失error:CouldnotfindsuitabledistributionforRequirement.parse(‘pytz’)首先去官网下载pytz包:http

    2025年6月15日
    4
  • Java学习之spring MVC常用注解

    Java学习之springMVC常用注解0x00前言续上篇文章的内容继续来记录springmvc会常用到的一些注解。0x01常用注解RequestParam注解@Controller

    2021年12月12日
    41
  • 机器学习之朴素贝叶斯分类算法

    机器学习之朴素贝叶斯分类算法一、数学知识相关1.独立事件–前提2.条件概率3.全概率公式4.贝叶斯公式5.朴素贝叶斯公式其中:P(A)叫做A事件的先验概率,即一般情况下,认为A发生的概率。 P(B|A)叫做似然度,是A假设条件成立的情况下发生B的概率。 P(A|B)叫做后验概率,在B发生的情况下发生A的概率,也就是要求的概率。P(B)叫做标准化常量,即在一般情况下,认为B…

    2022年10月15日
    1
  • TYVJ P1032 零用钱 Label:贪心

    TYVJ P1032 零用钱 Label:贪心

    2021年9月17日
    63

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号