linux虚拟机无法访问浏览器_从51单片机到Linux 开发板传文件利器-NFS(教程3)

250cb376b69037af5b0700dcc83e92aa.png

大家好,我是兔子。

是一个嵌入式软硬件工程师。

正在从单片机开发转岗Linux开发。

这次教大家如何通过NFS给开发板传输文件。

使用NFS,调试会很方便,需要频繁的通过pc和开发板之间通信,将修改好的文件传输到开发板中运行调试。

同时,调试内核时,也可以通过u-boot。使用nfs将内核直接加载到开发板的SDRAM/DDR中,直接运行内核而不用更新NAND里的内核。等内核调试差不多,再下载到NAND中。

1.NFS服务简介

NFS 就是 Network FileSystem 的缩写,最早之前是由sun 这家公司所发展出来的。 它最大的功能就是可以透过网络,让不同的机器、不同的操作系统、可以彼此分享个别的档案 (share files)。所以,你也可以简单的将他看做是一个文件服务器 (file server) 呢!这个 NFS 服务器可以让你的 PC 来将网络远程的 NFS 服务器分享的目录,挂载到本地端的机器当中, 在本地端的机器看起来,那个远程主机的目录就好像是自己的一个磁盘分区槽一样 (partition)!使用上面相当的便利!

2.虚拟机安装NFS服务

嵌入式Linux调试,是需要虚拟机和开发板都开启了NFS功能的,并且通过网络来通信。

(开发板上使用到的是网口,所以使用服务时,需要用网线将开发板和电脑相连)

开发板默认以及安装了NFS服务,所以我们就需要给虚拟机安装NFS服务。

1)进入虚拟机,并保证虚拟机可以连接外网。

先使用虚拟机自带的网络浏览器,打开一个国内网站,看是否可以进入。

2e68d9473a07999c69087a1d6f41540c.png

能进入,表示能连接外网。

7a7b126ee2f00f8e22efb89c48b7b6b0.png

如果不能进入,则检查一下虚拟机的配置。

06e2c2ffb57564e2ddf204f980251c3e.png

由于我的笔记本只有WIFI,没有网口。(使用WIFI上外网)

故将网络设置为NAT模式,即和PC机的windows共享WIFI网络。

c3aeda6b01ce2725ee7f477f5bf59da1.png

这样,再用浏览器验证一下,就可以上外网了。

2)下载NFS服务

在虚拟机里,按Crtl+Alt+T,进入终端。

在终端里输入命令sudo apt-get install nfs-kernel-server

表示下载并安装NFS服务。

并输入虚拟机的密码。我的虚拟机的密码为123456

f8710db5810f32f73a3e1530ef22ba24.png

可以看到,在输入安装NFS指令,并输入密码后,弹出来一堆打印数据,表示正在下载并安装。

有遇到选择的地方,输入Y即可。

3)配置NFS共享文件夹

我们需要修改NFS配置文件,配置共享文件夹的路径。

该配置文件路径为/etc/exports

使用sudo vi /etc/exports命令,打开该文件。

5a946612ebfb10a21e035fcc680b34f2.png

在最后面,添加一行

/work/nfs_root *(rw,sync,no_root_squash)

表示共享文件夹的路径,以及权限。

(在vi界面里,先输入i进入编辑模式。编辑完后,使用esc退出编辑模式,并输入:wq保存文件并退出)

vi编辑器的用法,可以移步教程2

兔子MCU:从51单片机到Linux shell基本指令及hello world编写(教程2)​zhuanlan.zhihu.com
76b5dc3ae37697fd8335e4f7d00fc112.png

d15d597681d141e1510b38487500972d.png

然后,进入根目录下的,新建work文件夹,在work文件夹下,再新建nfs_root文件夹。

就可以了。(兔子提供的虚拟机,已经组建好了NFS服务,可以移步链接去了解)

兔子MCU:从51单片机到Linux 虚拟机搭建(教程1)​zhuanlan.zhihu.com
76b5dc3ae37697fd8335e4f7d00fc112.png

1166498ecd020654549f2f806ce15579.png

986fedad6c6bd2fd4de47a5a41b1b963.png

4)重启NFS配置

这样,NFS服务就配置好了,需要重启一次,更新NFS的配置。

输入sudo /etc/init.d/nfs-kernel-server restart重启配置。

(如果不重启,配置不会生效)。

7f619d3e4cdea8c1ad573961292145af.png

这样,虚拟机端的NFS已经设置好。(设置好后,以后使用虚拟机无需再次配置)。

3.开发板和虚拟机网络通信

我们将开发板和电脑通过网线相连,测试一下网络是否连接。

1)开发板查询ip地址。

Ifconfig

4687ddc3b91cb9a3db7e29d9a9d74dfe.png

可以看到,开发板的ip是192.168.1.136,网关192.168.1.255。

2)虚拟机查询ip地址

4a201f70da9875b538c1c9f8b036e1b8.png

由于兔子的笔记本没有网口,外接了一个USB转网口。

可以看到,虚拟机的网口ip为192.168.1.101,网关是192.168.1.255

虚拟机和开发板ip不冲突,且都在同一个网段。表示网络设置无问题。

3)测试网络通信

在开发板上,使用ping命令,测试网络是否OK。

58a016f59ec6c3f3fe82b1e86264b7c8.png

可以看到开发板和虚拟机之间网络通信成功。

4.开发板挂载NFS

1)虚拟机的NFS共享文件夹新建一个文件

我在刚才设置的共享文件/work/nfs_root下,新建了一个名叫NFS_test的文件。

00fcd7c8ceaaa441ce8dcc05aab99704.png

2)开发板挂载NFS文件系统

在开发板里,输入

mount -t nfs -o nolock,vers=2 192.168.1.101:/work/nfs_root /mnt

9849f589a7697c3e0551d23f86e46904.png

表示虚拟机的ip是192.168.1.101,将虚拟机的NFS共享目录/work/nfs_root挂载到开发板的/mnt目录下。

3)查看开发板的/mnt目录

e7fffc0718fa89c5a260750a7556ee67.png

可以看到,虚拟机的文件,已经在开发板里有显示了。

说明NFS共享文件成功。我们可以对这个共享文件进行操作。

比如拷贝,编辑,删除,运行等。

至此,NFS功能已经实现。

后续调试程序,可以将需要上传到文件/程序。拷贝到虚拟机的/work/nfs_root目录。

在开发板上就可以进入挂载目录/mnt,可以直接可以使用。

0178577a35eae888225660d2a4272a60.png
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值