04 XYD教研文档_linux驱动教学之根文件系统制作

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

深圳信盈达科技有限公司目录Linux资料2019/12/1

目录

目录 (1)

第1章根文件系统制作 (2)

1.1准备工作 (2)

1.1.1系统版本和开发工具 (2)

1.1.2储备知识 (2)

1.2交叉编译器 (2)

1.2.1交叉编译器的简介 (2)

1.2.2为何要有交叉编译 (2)

1.2.3如何搭建交叉编译器 (2)

1.3NFS文件系统 (3)

1.3.1NFS概念及工作原理 (3)

1.3.2NFS服务搭建与测试 (4)

1.3.2.1NFS服务的搭建 (4)

1.3.2.2NFS服务的测试 (4)

1.4Busybox的作用 (5)

1.4.1Busybox简介 (5)

1.4.2为什么使用BusyBox (5)

1.4.3BusyBox配置 (5)

1.5构建根文件系统 (9)

1.5.1构建etc目录 (9)

1.5.2环境配置 (11)

1.5.2.1设置虚拟机网络IP (11)

1.6文件系统的启动流程 (14)

第1章根文件系统制作

1.1准备工作

1.1.1系统版本和开发工具

系统:Ubuntu16.04LTS/X64

LINUX内核:4.10.0

(2)拷贝源码到Ubuntu系统中/driver(创建的一个目录)的文件夹下

(3)进入存放目录,解压缩到根目录

tar-xzvf arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz-C/

注:-C选项制定了解压路径,指定在/,解压出来后的目录名为opt,所以会存放在/opt下。

(4)修改环境变量,把交叉编译器的路径加入到PATH

PATH决定了shell将到哪些目录中寻找命令或程序

方法一:修改/etc/bash.bashrc(为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读

取)文件

#vim/etc/bash.bashrc

在最后加上:

export PATH=$PATH:/opt/FriendlyARM/toolschain/4.5.1/bin

方法二:修改/etc/profile文件(为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从/etc/profile.d目录的配置文件中搜集shell的设置):

#vim/etc/profile

增加路径设置,在末尾添加如下,保存/etc/profile文件:

export PATH=$PATH:/opt/FriendlyARM/toolschain/4.5.1/bin

方法三:#export PATH=$PATH:/opt/FriendlyARM/toolschain/4.5.1/bin

注:临时保存,重启失效

(5)立即使新的环境变量生效,不用重启电脑:

对应方法一:#source/root/.bashrc

对应方法二:#source/etc/profile

(6)检查是否将路径加入到PATH:

#echo$PATH

显示的内容中有/opt/FriendlyARM/toolschain/4.5.1/bin,说明已经将交叉编译器的路径加入PATH,交叉编译环境变量添加成功。

(7)安装32位库兼容包

sudo apt-get install lib32ncurses5lib32z1

sudo apt-get install lib32ncurses5

sudo apt-get install lib32z1

(8)测试是否安装成功

此时你可以在控制台输入:arm-linux-gcc-v,如果安装成功将会输出arm-linux-gcc的版本号。

1.3NFS文件系统

1.3.1NFS概念及工作原理

NFS(NetWork Filesystem System)可以用于不同操作系统之间通过网络传输文件,在嵌入式开发领域,NFS 可以用于主机与嵌入式设备之前无缝传输文件,由于嵌入式设备的存储空间普遍较为有限,因此也可以用此工具扩展嵌入式设备的存储空间。

NFS服务是基于客户机/服务器模式,NFS服务器是提供输出文件(共享文件)的计算机。NFS客户端是访问输出文件的计算机,它可以将输出目录挂载到自己系统中的某个目录中,然后像访问本地文件一样去访问NFS 服务器中的输出文件。

图1.3-1nfs工作原理流程

如上图,当用户进程通过NFS客户端向NFS服务端存取文件时,其请求数据流程如下几点:

1、首先用户访问网站程序,由程序在NFS客户端上发出NFS文件存取功能的询问请求,这时NFS客

户端(即执行程序的服务器)RPC服务(portmap或rpcbind服务)就会通过网络向NFS服务端的RPC服务(即portmap或rpcbind服务)的111端口发出NFS文件存取功能的询问请求。

2、NFS服务端的RPC服务(即portmap或rpcbind服务)找到对应的已注册的NFSdaemon端口后,通知NFS客户端的RPC服务(即portmap或rpcbind服务)。

3、此时NFS客户端就可获取到正确的端口,然后就直接与NFS daemon联机存取数据了。

4、NFS客户端把数据存取成功后,返回给前端程序,告诉用户存取结果,作为网站用户,我们就完成了一次存取操作。

由于NFS的每一个服务功能会对应一个端口,这些端口可能不固定,由于程序间通信必须借助端口(tcp/udp 为端到端通信),那么客户端就无法与服务器进行通信。因此需要一个中间的桥接机制,RPC进程即充当这样一个角色,RPC的端口固定为111,当NFS启动时,会向RPC进行注册,那么客户端PRC就能与服务器RPC进行通信,从而进行文件的传输。

1.3.2NFS服务搭建与测试

在ubuntu16.04LTS上默认没有安装NFS服务器,现在我们介绍如何在ubuntu16.04系统中搭建nfs服务,实现Linux和Linux之间的文件共享。

1.3.

2.1NFS服务的搭建

(1)安装nfs服务

$sudo apt-get install nfs-kernel-server nfs-common

(2)修改配置文件

$sudo vim/etc/exports

注:“exports”文件用于配置NFS服务器中输出的共享目录

修改内容如下:

/root/rootfs*(rw,sync,no_root_squash,no_subtree_check)

注:/root/rootfs为与nfs服务客户端共享的目录,可自行创建,这个路径必须为绝对路径。

*:允许所有的网段访问,也可以使用具体的IP

192.168.1.*指定网段,在该网段中的用户可以挂载

ro:只读

rw:挂接此目录的客户端对该共享目录具有读写权限

sync:资料同步写入内存和硬盘

no_root_squash:root用户具有对根目录的完全管理访问权限。

no_subtree_check:不检查父目录的权限

(3)重启nfs服务和rpcbind服务

$sudo/etc/init.d/nfs-kernel-server restart

$sudo/etc/init.d/rpcbind restart

1.3.

2.2NFS服务的测试

(1)检查客户端和服务端的网络是否连通(ping命令)

ping服务主机IP

(2)查看服务端的共享目录

showmount-e服务主机IP

(3)将与nfs服务客户端共享的目录挂载到本地

mount-t nfs-o nolock服务主机IP:/root/rootfs/mnt

注:/mnt指定将共享目录挂载的路径,-t nfs指定挂在协议是那台ip地址的主机,mount nfs时,默

认选项包括文件锁,依赖于portmap提供的动态端口分配功能,因此需要解锁,因此一般直接在指

令中直接加上-o nolock。

(4)通过访问/mnt即可访问共享目录的内容

相关文档
最新文档