Linux开发十九_nfs文件系统
来源:互联网 发布:手机淘宝如何发布二手 编辑:程序博客网 时间:2024/05/16 06:02
Linux开发十九
nfs文件系统
象棋小子 1048272975
nfs即网络文件系统,通过网络,对在不同主机上的文件进行共享。嵌入式开发中,往往需要构建调试文件系统,在主机端以nfs文件系统的方式先调试构建文件系统,将极大地方便开发。
1. nfs文件系统
nfs需要主机端以及板端的nfs服务支持。
1.1. 主机端nfs配置
主机端以/nfs/rootfs目录作为文件共享目录,该目录必须具备读写权限。打开/etc/exports文件加入目录共享。
/nfs/rootfs 192.168.0.*(rw,async,no_root_squash)
关闭防火墙
service iptables stop
重启nfs服务,如果没有nfs服务,需要先安装nfs服务。
service rpcbind start
service nfs restart
配置ip地址,并且自挂载以确认主机nfs服务工作正常。
ifconfig eth0 192.168.0.10 up
mkdir /mnt/nfs
#mount –t nfs 192.168.0.10:/nfs/rootfs /mnt/nfs
1.2. 板端nfs配置
在前面的章节中,Linux内核集成了initramfs根文件系统,也可以直接采用nfs作为根文件系统。Linux内核配置支持nfs文件系统后,可以在initramfs根文件系统启动后,先尝试挂载nfs文件系统,以确定板端及主机端的nfs服务正常。确认正常后,Linux内核可以去掉initramfs根文件系统,bootloader传递挂载nfs根文件系统的启动参数,实现从nfs挂载根文件系统启动。
initramfs根文件系统启动后挂载nfs
mount -t nfs -o nolock 192.168.0.10:/nfs/rootfs /mnt/nfs
bootloader传递启动参数,使nfs作为根文件系统。
const char BootCmd[] = "noinitrd root=/dev/nfs init=/initconsole=ttySAC0 nfsroot=192.168.0.10:/nfs/rootfs,nolock rw ip=192.168.0.20:192.168.0.10:192.168.0.10:255.255.255.0::eth0:off";
2. 内核配置
Linux配置支持nfs文件系统,选中Filesystems->Network File Systems->NFS client support。
3. 主机端构建根文件系统
在主机/nfs/rootfs目录中构建板端根文件系统,把交叉编译工具的加载器以及动态库复制到根文件系统的lib目录。
cp *.so* /nfs/rootfs/lib –d
重新以共享库的方式交叉编译busybox,并把库、配置文件、可执行文件等拷贝到/nfs/rootfs根文件系统中。
减少对flash的读写,把/tmp、/dev目录挂接在tmpfs设备上。打开/etc/fstab文件,加入/tmp、/dev目录的挂载。
tmpfs /tmp tmpfs defaults 0 0
tmpfs /dev tmpfs defaults 0 0
etc/init.d/rcS 文件加入mdev的支持,从而不用手动创建设备节点。
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s
可以添加/etc/mdev.conf配置文件,实现设备的自动挂载/卸载等。支持nfs文件系统后,就可以在主机端构建配置根文件系统,当验证通过后,再把构建好的根文件系统制作成flash烧录镜像并烧录,可以极大地加快开发的进度。
4. 附录
https://pan.baidu.com/s/1slczwhJ
bootloader源码以及使用说明
https://pan.baidu.com/s/1eRDJtNs
Qt5.8官网源码
https://pan.baidu.com/s/1nuGmSqt
本系列例程的根文件系统
https://pan.baidu.com/s/1i5btLGT
opev3.2.0官网源码
https://pan.baidu.com/s/1pLpuHw3
yaffs官网源码
https://pan.baidu.com/s/1bpkZynt
busybox-1.26.2官网源码
https://pan.baidu.com/s/1i4EtjfR
tslib官网源码
https://pan.baidu.com/s/1i5MGRhb
mplayer-1.3.0官网源码
https://pan.baidu.com/s/1sl0fXlr
基于S3C2416修改的linux-4.10.10源码
- Linux开发十九_nfs文件系统
- 搭建tiny6410驱动开发环境_NFS起文件系统_NoSharedLibs
- 搭建tiny6410驱动开发环境_NFS共享文件
- 十九、安装Linux系统到开发板
- Linux开发十七_yaffs文件系统
- 游戏开发基础(十九)
- [Linux驱动开发] 根文件系统制作
- linux开发板支持NFS文件系统配置
- Unix/Linux C++应用开发-文件系统编程
- linux驱动开发-VFS虚拟文件系统
- 【linux】内核+文件系统下载到开发板
- Linux开发五_构建根文件系统
- 嵌入式开发制作最小的linux文件系统
- linux开发板挂载NFS网络文件系统
- 嵌入式linux开发 x6818挂载nfs文件系统
- 我的openwrt学习笔记(十九):linux便捷开发命令之strace
- Linux设备驱动开发详解-Note(9)--- Linux 文件系统与设备文件系统(1)
- Linux设备驱动开发详解-Note(10)--- Linux 文件系统与设备文件系统(2)
- 单链表
- Linux开发十八_网卡驱动
- 文章标题
- java中==与equal的区别
- mybatis-spring整合异常SpringManagedTransaction.getTimeout()Ljava/lang/Integer
- Linux开发十九_nfs文件系统
- java编程中常见内容+++++++++++++++++++++++++++++++++++++++++++++++++++==
- STM32 最小系统 焊完之后的测试
- 循环赛日程表
- Linux开发二十_触摸屏驱动
- 世有不公之法,我们是安于循守,还是且改且守,待其功成。或是即刻起而破之。
- 带您了解mysql CONCAT()函数
- Linux开发二十一_tslib移植
- C++ explicit关键字的详细介绍