OMAPL138和Ubuntu1004的nfs开发环境搭建.docx
- 文档编号:3572559
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:16
- 大小:787.31KB
OMAPL138和Ubuntu1004的nfs开发环境搭建.docx
《OMAPL138和Ubuntu1004的nfs开发环境搭建.docx》由会员分享,可在线阅读,更多相关《OMAPL138和Ubuntu1004的nfs开发环境搭建.docx(16页珍藏版)》请在冰豆网上搜索。
OMAPL138和Ubuntu1004的nfs开发环境搭建
目录
1安装nfs服务包2
2配置nfs4
3重启nfs服务6
4本地nfs服务器测试6
4.1显示已共享的nfs本地目录7
4.2挂载本地nfs共享目录7
4.3查看本地nfs挂载情况7
4.4卸载本地nfs共享目录8
5开发板挂载nfs服务器共享目录8
5.1查看PC机Windows主机的IP地址8
5.2修改开发板的IP地址9
5.3设置Ubuntu虚拟机IP地址10
5.4开发板和Ubuntu虚拟机ping测试13
5.5开发板挂载Ubuntu虚拟机nfs服务器共享目录14
5.6卸载开发板的nfs挂载目录16
6nfs起根文件系统17
6.1在uboot中设置网络环境变量17
6.2在uboot中设置tftp内核下载环境变量18
6.3在uboot中设置nfs网络文件系统加载环境变量19
6.4测试nfs网络文件系统20
1安装nfs服务包
安装软件前务必保证虚拟机可以上网。
虚拟机要访问网络必须在“VirtualMachinesetting”菜单下选择NetworkAdapter->Networkconnection->NAT:
Usedtosharethehost'sIPaddress,设置如下图:
图1
在终端输入以下命令安装nfs服务包:
Host#sudoapt-getinstallnfs-kernel-server
图2
安装成功如下图所示:
图3
2配置nfs
nfs允许挂载的目录和权限需要在文件/etc/exports中进行定义。
使用以下命令打开/etc目录下的nfs配置文件exports:
Host#sudogedit/etc/exports
在文件最后加入如下内容:
/home/tl/*(rw,sync,no_root_squash)
修改完成如下图所示:
图4
保存并退出编辑,下面解释一下设置的含义其中:
/home/tl:
共享目录
*:
允许所有的网络段访问
rw:
访问者具有可读写权限
sync:
资料同步写入内存和硬盘
no_root_squash:
nfs共享目录访问者具有root权限
nfs常用参数有:
ro:
只读访问
rw:
读写访问sync所有数据在请求时写入共享
asyncnfs:
在写入数据前可以响应请求
securenfs:
通过1024以下的安全TCP/IP端口发送
insecurenfs:
通过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_squashroot:
用户的所有请求映射成如anonymous用户一样的权限(默认)
no_root_squasroot:
用户具有根目录的完全管理访问权限
anonuid=xxx:
指定nfs服务器/etc/passwd文件中匿名用户的UID
3重启nfs服务
执行以下命令重启nfs服务器:
Host#sudo/etc/init.d/portmaprestart
Host#sudo/etc/init.d/nfs-kernel-serverrestart
成功安装如下图:
图5
4本地nfs服务器测试
4.1显示已共享的nfs本地目录
执行以下命令查看nfs共享目录:
Host#showmount–e
图6
4.2挂载本地nfs共享目录
Host#sudomount-tnfslocalhost:
/home/tl//opt/
进入/opt目录可以看到原来在/home/tl目录下的所有内容,如下图:
图7
4.3查看本地nfs挂载情况
在命令行终端执行“df”命令可以查看系统的所有挂载目录,如下图所示:
图8
4.4卸载本地nfs共享目录
通过以下命令将本地挂载的nfs共享系统从挂载点/opt卸载:
Host#sudoumount/opt/
图9
5开发板挂载nfs服务器共享目录
开发板和Windows主机先通过直连网线插到路由器,这样Winsows主机、虚拟机、开发板就相当于在同一个局域网了。
若没有路由器,也可以通过交叉网线将开发板和Windows主机互联。
5.1查看PC机Windows主机的IP地址
在Windows主机<开始>菜单栏的最下方输入“cmd”,然后按回车进入dos操作界面,再输入执行"ipconfig"查看Windows主机的IP地址,如下图所示:
图10
可以看到“本地连接”IPv4字段是:
192.168.0.2,这是主机的IP地址,子网掩码是:
255.255.255.0,不同主机的IP是不一样的。
5.2修改开发板的IP地址
开发板上电,进入开发板系统后设置IP的前三个字段和Windows主机的一样,最后一个字段务必不能相同,同时设置子网掩码为一致。
只有前三个在字段和子网掩码相同,Windows主机、Ubuntu虚拟机、开发板三者之间才能互相ping通。
例如,针对Windows主机的IP:
192.168.0.2,子网掩码:
255.255.255.0,可以设置开发板的IP地址为:
192.168.0.8,子网掩码:
255.255.255.0,设置命令如下:
Target#ifconfigeth0192.168.0.8netmask255.255.255.0
可以通过ifconfig命令查看修改后的IP和子网掩码等信息,操作如下图:
图11
一种更简便的方法是使用“udhcpc”命令让开发板自动获取路由器给它分配的IP,如下图所示:
图12
5.3设置Ubuntu虚拟机IP地址
在设置之前先将虚拟机和主机的网络连接方式设置为桥接,点击虚拟机"VM->Setting",弹出以下设置界面:
图13
点击“NetworkAdapter->NetworkConnection->Bridged”选项,如下图所示:
图14
点击OK,完成设置。
进入虚拟机Ubuntu系统后设置IP的前三个字段和Windows主机的一样,最后一个字段务必不能相同,同时设置子网掩码为一致。
只有前三个在字段和子网掩码相同,Windows主机、Ubuntu虚拟机、开发板三者之间才能互相ping通。
例如,针对Windows的IP:
192.168.0.2,子网掩码:
255.255.255.0,可以设置虚拟机的的IP地址为:
192.168.0.5,子网掩码:
255.255.255.0。
执行以下命令配置IP:
Host#sudoifconfigeth0192.168.0.5netmask255.255.255.0
通过ifconfig命令查看修改后的IP和子网掩码等信息,结果如下图:
图15
5.4开发板和Ubuntu虚拟机ping测试
在虚拟机执行以下命令,Linux系统的ping命令不会像Windows一样自动停止显示,需要执行“Ctrl+C”命令才能停止。
Host#ping192.168.0.8
成功ping通的结果如下图:
图16
在开发板输入以下命令,测试开发板和虚拟机的网络连通性:
Target#ping192.168.0.5
成功ping通的结果如下图:
图17
5.5开发板挂载Ubuntu虚拟机nfs服务器共享目录
在开发板执行以下命令在根目录下建立nfs挂载目录:
Target#mkdir-p/nfs
在开发板中当前执行以下命令挂载nfs服务器共享目录到开发板的/nfs目录:
Target#mount-tnfs-onolock192.168.0.5:
/home/tl/nfs
-tnfs:
挂载类型(type)是nfs。
-onolock:
不加文件锁,nfsmount默认选项包括文件锁(lock),依赖于portmap提供的动态端口分配功能。
192.168.0.5:
/home/tl:
虚拟机的IP地址是192.168.0.5,共享目录是虚拟机的/home/tl。
若是提示如下错误,很可能是开发板还没有安装nfs客户端。
图18
请先在开发板执行以下命令安装nfs客户端,再重新挂载,务必保证开发板可以上网。
Target#opkginstallnfs-utils-client
图19
挂载成功后,进入开发板/nfs目录,可以看到Ubuntu虚拟机nfs服务器共享目录下的所有文件了,结果如下图所示:
图20
使用以下命令在开发板的/nfs目录建立nfs测试文件“nfs-test”:
Target#touchnfs-test
可以看到开发板已经出现了“nfs-test”测试文件,在使用vi编译器在“nfs-test”文件输入“testnfs”,保存并退出vi编译器,如下图所示:
图21
这时可以看到在虚拟机的nfs共享目录中有“nfs-test”文件产生了,使用“cat”命令查看其内容,如下图:
图22
说明开发板通过nfs挂载虚拟机的共享目录已经成功,并且可读可写,以后就可以通过nfs服务器来传输文件了,比U盘传输更加便捷。
5.6卸载开发板的nfs挂载目录
执行以下命令离开开发板/nfs目录,并卸载nfs挂载目录:
Target#cd
Target#umount/nfs/
再查看/nfs目录,可以看到里面的挂载内容已经没有了,说明卸载成功,操作和显示如下图:
图23
6nfs起根文件系统
6.1在uboot中设置网络环境变量
开发板上电后,按任意键进入uboot命令行,输入以下命令设置虚拟机TFTP服务器的IP地址变量serverip:
U-Boot>setenvserverip192.168.0.5
输入以下命令设置开发板的IP地址变量ipaddr:
U-Boot>setenvipaddr192.168.0.8
另外一个变量ethaddr已经在uboot里面写好了,无需设置。
设置会提示无法覆盖,如下图所示:
图24
执行以下命令保存环境变量:
U-Boot>saveenv
保存后重新上电就不用再次设置了,提示如下图:
图25
执行以下命令测试网络的连通性:
U-Boot>ping192.168.0.5
若提示“host*.*.*.*isalive”说明网络畅通,如下图所示:
图26
6.2在uboot中设置tftp内核下载环境变量
务必保证虚拟机tftp服务器已经搭建好,同时保证有内核文件uImage在虚拟机的tftp服务器目录“/home/tl/tftpboot”,如下图所示:
图27
设置tftp内核下载环境变量命令如下:
U-Boot>setenvbootcmd'tftpc0700000uImage;bootmc0700000'
U-Boot>saveenv
操作如下图所示:
图28
设置以下环境变量以后,开发板每次启动都会从服务器tftpboot目录下载uImage内核镜像,测试内核非常方便。
6.3在uboot中设置nfs网络文件系统加载环境变量
务必保证虚拟机nfs服务器已经搭建好,在uboot中设置nfs网络文件系统加载环境变量:
U-Boot>setenvbootargsroot=/dev/nfsrwnfsroot=192.168.0.5:
/home/tl/omapl138/rootfs
nfsaddrs=192.168.0.8:
192.168.0.5:
192.168.0.1:
255.255.255.0
console=ttyS2,115200n8mem=128M
U-Boot>printenv
U-Boot>saveenv
操作如下图所示:
图29
以下为参数解释:
root=/dev/nfsrw:
使用nfs起根文件系统,权限为可读可写。
nfsroot=192.168.0.5:
/home/tl/omapl138/rootfs:
挂载的是IP地址为192.168.0.5的虚拟机nfs服务器/home/tl/omapl138/rootfs目录下的文件系统。
nfsaddrs=192.168.0.8:
192.168.0.5:
192.168.0.1:
255.255.255.0:
设置nfs的网络IP参数,格式是nfsaddrs=(开发板IP:
虚拟机nfs服务器IP:
同网段的网关:
子网掩码)。
6.4测试nfs网络文件系统
不用插SD卡,开发板上电,即可直接进入开发板系统根目录,发现开发板文件系统内核和虚拟机中/home/tl/omapl138/rootfs目录下的内容一样,证明nfs起根文件系统成功了。
通过tftp下载内核和nfs起根文件系统,形成一个最流行,也是最便捷的一种调试方法。
以下为两端的截图。
开发板端:
图30
虚拟机nfs文件系统目录:
图31
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- OMAPL138 Ubuntu1004 nfs 开发 环境 搭建