Linux嵌入式文件系统(网络文件系统)
<文件系统定义>
怎么将文件和文件目录加载到linux内核中,这一种加载的方式就叫做文件系统
《建立根文件系统目录和文件》
<创建目录>
1)在linux系统中使用命令mkdir rootfs 创建一个文件夹
2)进入该文件夹依次批量的创建文件夹 bin dev etc lib proc sbin sys usr mnt temp var
3)创建usr子目录
mkdir usr/bin usr/sbin lib/modules
<创建设备文件>
linux 系统中所有的东西都是文件,所有的设备文件都是放在/dev 目录下的。
命令:
mknod -m 666 console c 5 1
参数解释:
-m 666:表示属性
console :表示控制台
c :表示字符设备
5:主设备号
1:次设备号
命令:
mknod -m 666 null c 1 3
<.加入配置文件>
配置文件和体系结构是没有关系的,所以可以用现成的,教程上面有这个东西(附带的)
<添加内核模块>
1)首先进入解压好的内核源代码中的
2)执行命令:make modules ARCH=arm CROSS_COMPILE=arm-linux-
编译出内核模块
3)执行命令:make modules_install ARCH=arm INSTALL_MOD_PATH=/文件根路径
将编译出来的内核模块打包并移动到根文件下的/lib/modules 中
在嵌入式linux中,所有平台的终端中都需要使用命令,这些命令代码的实现是否需要我们自己来编写呢,答案是否定的,这时就需要使用busybox来提供这些小命令
1)将busybox 的源代码复制到linux的中去并解压
2)命令:make menuconfig
注意:(1)在出现的菜单中配置成使用静态编译(2)并指明使用交叉编译工具(3)指明安装路径是自己创建的根文件中
3)命令:make
执行编译
4)命令:make install
执行安装
《挂载根文件系统到内核》
<挂载方式简介>
根据存储设备的硬件特性,系统需求(只读或可读可写),不同的文件系统有不同的应用场合,在嵌入式linux中,主要的存储设备是RAM 和FLASH ,常见的基于此存储介质的文件系统有 :JFFS2,YAFFS2,UBIFS,RAMDISK
<常见文件系统>
基于nandflash 的文件文件系统:
yaffs2:可读可写
ubifs:可读可写
cramfd:只读
基于norflash 的文件系统:
jffs2:可写可读
基于内存的文件系统:(启动速度快,但是掉电后数据就会消失)
ramdisk:可读可写(原理:在内存中划分4M的空间用于存储文件,相当于一个虚拟的磁盘,缺点是空间不可变)
initramfs:可读可写(ramdisk 的升级版本,划分的内存可变)
基于网络的文件系统:
NFS:一般用于开发阶段
注意:几种文件系统是可以互相使用的
<initramfs>
1)创建一个软连接
ln -s /自己创建的 文件系统中的bin/busybox +软连接名 的文件的路径
2)配置linux内核
进入linux内核中配置内核,勾选initional ram filesystem ,并输入相应的新建的根文件系统是路径
3)重新编译内核
4)设置环境变量
设置bootargs 这个环境变量是linux内核启动时传递个内核的参数
命令:
setenv bootargs noinitrd console=ttySAC0,115200
<NFS挂载>
1)内核配置
命令:make menuconfig ARCH=arm
取消之前选中initramfs,并重新选中netfile system
2)重新编内核
3)设置环境变量
setenv bootargs noinitrd
console=ttySAC0,11520 init=/init
root=/dev/nfs rw
nfsroot=192.168.1.3:/home/S5driver/lesson9/rootfs,
ip=192.168.1.6:192.168.1.3:192.168.1.1:25 5.255.255.0::eth0:off
注意:用“:”做分隔符号,off 表示关闭动态ip 分配
<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">
Linux嵌入式文件系统(网络文件系统)的更多相关文章
- Linux系统NFS网络文件系统
Linux系统NFS网络文件系统 NFS(network file system)网络文件系统,就是通过网络让不同的主机系统之间可以共享文件或目录,此种方法NFS客户端使用挂载的方式让共享文件或目录到 ...
- linux初学者-NFS网络文件系统篇
linux初学者-NFS网络文件系统篇 在上一篇的SAMBA篇中介绍了linux系统和windows系统之间共用的网络文件系统CIFS,主要用于客户端是windows的情况.在linux系统之间,所用 ...
- linux初学者-CIFS网络文件系统篇
linux初学者-CIFS网络文件系统篇 CIFS是一种通用网络文件系统,主要用于网络设备之间的文件共享.CIFS可以在linux系统和windows系统之间共享文件,因此这种文件系统主要用于客户端是 ...
- linux内核中网络文件系统的注册初始化
针对内核3.9 系统开启时,会使用init/main.c,然后再里面调用kernel_init(),在里面会再调用do_basic_setup(),调用do_initcalls(),调用do_one_ ...
- Linux系统——NFS网络文件系统
在企业集群架构的工作场景中,NFS网络文件系统一般被用来存储共享视频,图片,附件等静态资源文件,通常网站用户上传的文件都会放到NFS共享里,然后前端所有的节点访问这些静态资源时都会读取NFS存储上的资 ...
- Linux之NFS网络文件系统
NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络资源共享.在NFS的应用中,本地NFS的客户端应用可 ...
- Linux嵌入式 -- 内核 - proc文件系统
1. 什么是proc文件系统? 实例:通过 /proc/meminfo,查询当前内存使用情况. 结论:proc文件系统是一种在用户态检查内核状态的机制. 2.Proc文件分类 特点 每个文件都规定了 ...
- tiny4412 linux+qtopia nfs网络文件系统的挂载
1,首先确定uboot启动内核的bootargs参数 Linux-CommandLine = root=/dev/nfs nfsroot=192.168.1.131:/home/tiny4412/ro ...
- Linux嵌入式学习-网络配置-ping外网、主机和域名
之前用的nfs挂载的文件系统,今天用yaffs2制作的文件系统并写入到nandflash中.但是网络却无法使用了. 首先,我们配置网卡. ifconfig eth0 192.168.1.230 bro ...
- 网络文件系统与 Linux
网络文件系统 是文件系统之上的一个网络抽象,来允许远程客户端以与本地文件系统类似的方式,来通过网络进行访问.虽然 NFS 不是第一个此类系统,但是它已经发展并演变成 UNIX® 系统中最强大最广泛使用 ...
随机推荐
- 信息安全学习笔记--CSRF
一.CSRF简介 CSRF(Cross-site request forgery)跨站请求伪造,也被称为“one click attack”或者“session riding”,通常缩写为CS ...
- const与指针
C++中const与指针 1.常指针: ; int * const pInt = &x; 其中PInt是常指针,pInt的值无法改变,但其指向的内容可以改变. 2.指向常量的指针 有两种写法: ...
- bootstrap-datetimepicker中设置中文
1.引入插件文件,同时引入相应的语言文件 <script src="bootstrap-datetimepicker/js/bootstrap-datetimepicker.min.j ...
- 基于NIO的同步非阻塞编程完整案例,客户端发送请求,服务端获取数据并返回给客户端数据,客户端获取返回数据
这块还是挺复杂的,挺难理解,但是多练几遍,多看看研究研究其实也就那样,就是一个Selector轮询的过程,这里想要双向通信,客户端和服务端都需要一个Selector,并一直轮询, 直接贴代码: Ser ...
- nanosleep()
函数原型 #include <time.h> int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); 描述 ...
- SDN核心技术剖析和实战指南---读书笔记
第一章 SDN定义如下: SDN是一种新兴的基于软件的网络架构及技术,其最大的特点在于具有松耦合的控制平面与数据平面.支持集中化的网络状态控制.实现底层网络设施对上层应用的透明. SDN和NFV: O ...
- trace spring
package xx.com.aspect; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotati ...
- unity 2d 游戏优化之路 遇坑记录
情景说明: unity 出的Android包,在目前一些主流机型跑都没有问题,但是在 小米3 这种比较老的机器上跑,报如下错误 GLSL compilation failed, no infolog ...
- 28 Data Race Detector 数据种类探测器:数据种类探测器手册
Data Race Detector 数据种类探测器:数据种类探测器手册 Introduction Usage Report Format Options Excluding Tests How To ...
- php 中更简洁的三元运算符 ?:
PHP 三元运算符是对参数赋值时候的一个简洁的主要用法. 一个主要的用法: PHP 三元运算符能够让你在一行代码中描述判定代码, 从而替换掉类似以下的代码: <?php if (isset($v ...