完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本文转自迅为:http://www.topeetboard.com 本文讲解如何在 iTOP-4412 开发板上实现 NFS 网络文件系统。 我们使用的软硬件环境是:一台 PC,上面运行虚拟机 Ubuntu,iTOP-4412 开发板一块,PC 机和iTOP-4412 开发板通过网线连接到路由器上面,路由器分配的网段是 192.168.1.x 的 ip 地址,默认网关是路由器的 ip 地址,即 192.168.1.1。PC 机的 ip 地址是 192.168.1.103,iTOP-4412 开发板的 ip 地址是192.168.1.230,网段的子网掩码是 255.255.255.0。这几个 ip 地址在后面配置 iTOP-4412 开发板内核 nfs的时候会用到,大家需要根据自己使用的网络环境来设置这几个 ip 地址,设置的原则是确保 PC 的 ip 和iTOP4412 开发板的 ip 在同一个网段。 NFS 是 Network FileSystem 的缩写,是由 SUN 公司研制的 UNIX 表示层协议(pressentation layerprotocol) ,NFS 是基于 UDP/IP 协议的应用。它的最大功能就是可以通过网络让不同的机器,不通的操作系统彼此共享文件,可以通过 NFS 挂载远程主机的目录,访问该目录就像访问本地目录一样,所以也可以简单的将它看做一个文件服务器。通过 NFS 服务,我们可以实现在线调试文件系统或应用程序,而不用像传统的方式生成文件系统镜像,然后烧写到 iTOP-4412 的 eMMC 里,在启动开发板。通过 NFS 服务可以提高我们的调试效率。 实现 NFS,我们需要一个主机作为 NFS 服务器,我们选择我们的虚拟机 Ubuntu 作为主机。首先我们需要在虚拟机的 Ubuntu 上安装 Ubuntu NFS 服务,这是一个软件包,我们可以使用 apt 命令下载, (下载前请确认你的虚拟机可以上网) 。首先登录到虚拟机上,使用快捷键 Ctrl+Alt+t 组合按键打开终端如下图: 输入 su root 命令切换到 root 用户,如下图: 输入 apt-get install nfs-kernel-server 命令安装 Ubuntu NFS 服务,如下图: 在安装的过程中会提示“是否继续安装”的信息,如下图: 我们输入“Y” ,如下图: 然后按回车,会继续安装,如下图: 安装完成,如下图: 接下来需要配置/etc/exports,使用 vi 命令打开/etc/export,如下图: 在/etc/export 文件的最后一行添加: /home/topeet/linux/ *(rw,sync,no_root_squash),如下图: 下面讲解一下上面输入的内容都代表什么意思: /home/topeet/linux:是要共享的目录; *:代表允许所有的网络段访问; rw:是可读写权限; sync:是资料同步写入内存和硬盘; no_root_squash:是 Ubuntu nfs 客户端分享目录使用者的权限,如果客户端使用的是 root 用户,那么对于 该共享目录而言,该客户端就具有 root 权限; 其他 Ubuntu nfs 常用的参数有: ro:只读访问 async :nfs 在写入数据前可以相应请求 secure: nfs 通过以下的安全 TCP/IP 端口发送 insecure: nfs 通过 1024 以上的端口发送 wdelay:如果多个用户要写入 NFS 目录,则归组(默认) no_wdelay:如果多个用户要写入 NFS 目录,则立即写入,当使用 async 时,无需此设置 hide:在 nfs 共享目录中不共享妻子目录 no_hide:共享 nfs 目录的子目录 subtree_check:如果共享/usr/bin 之类的子目录时,强制 nfs 检查父目录的权限(默认 ) no_subtree_check:和上面相对,不检查父目录权限 all_squash:共享文件的 UID 和 GID 映射匿名用户 anonymous,适合公用目录 no_all_squash:保留共享文件的 UID 和 GID(默认) root_squash root:用户的所有请求映射成如 anonymous 用户一样的权限(默认) no_root_squash root:用户具有根目录的完全管理访问权限 anonuid=xxx:指定 nfs 服务器/etc/passwd 文件中匿名用户多的 UID anongid=xxx:指定 nfs 服务器/etc/passwd 文件中匿名用户的 GID 接下来重启 portmap 服务,输入/etc/init.d/portmap restart 命令,如下图: 运行结果如下图: 然后重启 nfs 服务,输入/etc/init.d/nfs-kernel-server restart 命令,如下图: 运行结果如下图: 现在 Ubuntu nfs 服务器端的配置就完成了,下面我们可以在虚拟机 Ubuntu 本机上验证一下,例如我们把 /home/topeet/linux/app/system 挂载到/mnt 目录下,需要输入 mount -t nfs localhost:/home/topeet/linux/app/system /mnt 命令,如下图: 执行完上面的命令,可以使用 df 命令查看是否挂载成功,如下图: 我们可以看到上图中高亮的那一行就是我们挂载的 nfs 文件系统,这说明我们的 Ubuntu nfs 服务器端搭建成 功了。 本章节我们用前面章节制作的做小 linux 系统为例,通过 nfs 来挂载它。我们把 linux 最小文件系统放到虚拟 机 Ubuntu 的/home/topeet/linux/app 目录下,如下图: 实现 nfs 文件系统我们需要修改 linux 最小文件系统的 etc/init.d/ifconfig-eth0 文件,如下图: 使用 vi 命令修改第八行,修改为:if grep -q nfs /proc/mounts ; then,修改后如下图: 修改完成后保存并退出。 下面我们开始配置 iTOP-4412 开发板的内核。要实现 nfs 功能,需要修改内核配置来支持,打开内核源 码,输入 cp config_for_linux .config 命令生成支持 linux 最小文件系统的内核配置文件,如下图: 然后输入 make menuconfig 命令进入 linux 配置界面,如下图: 选中“Networking support” ,如下图: 然后按回车进入 Networking support 配置界面,如下图: 选中“Networking options”选项,如上图所示,然后按回车进入 Networking options 配置界面,如下图: 在 Networking options 配置界面,选中“IP: kernel level autoconfiguration” ,如下图: 然后返回到 make menuconfig 的初始界面,如下图: 然后选择“File systems”选项,如下图: 然后输入回车,进入 File systems 配置界面,如下图: 选中“Network File Systems”选项,如下图: 然后输入回车,进入 Network File Systems 配置界面,如下图: 选中“ NFS client support” , “ NFS client support for NFS version 3” , “ NFS client support for the NFSv3 ACL protocol extension” , “NFS client support for NFS version 4” , “NFS client support for NFSv4.1” , “Root file system on NFS” ,如下图: 然后返回到 make menuconfig 的初始配置界面,如下图: 然后在初始配置界面选中“Boot options” ,如下图: 按回车进入 Boot options 配置界面,然后再 Default kernel command 里面输入: root=/dev/nfs rw nfsroot=192.168.1.103:/home/topeet/linux/app/system ip=192.168.1.230:192.168.1.103:192.168.1.1:255.255.255.0:iTOP:eth0:off rootfstype=ext4 init=/linuxrc console=ttySAC2,115200",如下图: 下面讲解一下上面输入命令的命令里面的几个参数: root=/dev/nfs rw nfsroot=192.168.1.103:/home/topeet/linux/app/system 表示挂载的 nfs 服务器 ip 是 192.168.1.103,挂载的目录是/home/topeet/linux/app/system, (注意:/home/topeet/linux/是前面我 们搭建 nfs 服务器设置的) ; ip=192.168.1.230:192.168.1.103:192.168.1.1:255.255.255.0:iTOP:eth0:off 这里面,第一个 ip192.168.1.230是我们开发板的ip地址, 第二个ip192.168.1.103是nfd服务器的ip, 第三个ip192.168.1.1 是开发板的网关, 255.255.255.0 是子网掩码, iTOP 是开发主机的名字 (一般无关紧要, 可以随便填写) , eth0 是网卡设备的名称。 至此,linux 内核的配置就完成了,退出 make menuconfig 配置,会弹出保存窗口,如下图: |
|
相关推荐
|
|
飞凌嵌入式ElfBoard ELF 1板卡-CAN编程示例之开发板测试
727 浏览 0 评论
该问题是用APP给芯海科技的CST92F25芯片发指令是出现的
2430 浏览 1 评论
828 浏览 0 评论
1600 浏览 1 评论
2423 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 02:14 , Processed in 0.693902 second(s), Total 66, Slave 47 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号