基于虚拟机的网络文件系统的挂载

一、硬件平台

1.电脑

台式机、笔记本或一体机

2.开发板

JZ2440MINI2440TQ2440

3.网线

建议使用交叉网线,即买开发板的时候送的网线,以便数据能够正常的相互传输,也可以自己制作一条。当然,在用路由器和开发板相连时,可以使用直连线;如果是电脑和开发板相连,则必须用交叉线。

4.路由器
其实也可以不用路由器,直接将电脑和开发板用交叉网线相连,但是那样就不能上网了,传资料不太方便,所以建议配一个路由器。

5.mimiOTG线或者串口线(买开发板时自带的)


二、软件平台

1.主机 windows 7 或者windows XP均可

2.客机 Vmware下的Linux,如ubunturedhat


三、主机和客机实现双机互Ping

1.主机联网设置

a.使用路由器,让电脑可以正常上网。这点,无需多少,否则,也不会看到这篇文档。注意,联网设置好了之后,在本地连接中,选择手动设置IP,如192.168.1.11,其他的会正常产生,如下图:


在命令提示符中,输入ipconfig,会显示本机的IP改为了192.168.1.11,如下图:

b. 关闭电脑上的防护墙。至于怎么关闭,自己上百度。(提示:到控制面板上面查找)

2.虚拟机Vmware设置

在虚拟机的ubuntu中,选择桥接(也可以选择NET模式,不过不太方便,这里只介绍桥接bridge模式),虚拟机中的选择:编辑à虚拟网络设置à选择“Host Virtual Network Mapping”,在VMnet0中选择自己电脑对应的网卡,不要选择自动获取,即“Bridge to an automatically chosen adapter”,否则,互ping失败。具体设置如下图:

3.客机ubuntu联网设置

ubuntu的命令终端中,输入ifconfig查看系统的IP,看是否与主机windows下的IP处于同一网段(同一网段是指网络号相同的一系列IP地址,对于此时主机IP192.168.1.11,因为是一个C类地址,故我们只需要设置客机IP192.168.1.***即可,***1255之间,不为11),我们设置为192.168.1.108,可以使用命令或者图形化界面配置,至于怎么配置,大家上百度很简单就搜到了。

设置好了之后,可以用ifconfig命令进行查看自己的IP,如下图:

4.双机互Ping

设置好了主机和客机的IP及其相关联网配置之后,就可以实现双机互Ping了。在windows的命令提示符下输入ping + 客机IP ping 192.168.1.108 ,如果出现下图所示的现象,则说明ping成功,否则失败。

Linux的命令终端下输入Ping + 主机IP,即ping 192.168.1.11,如果出现下图所示,则说明ping 成功,否则失败。


四、客机配置

为了实现文件能正确的上传,我们还得在客机ubuntu中开启并配置一些相关的服务。

1.安装、配置、启动FTP服务

执行下列命令,安装后即会自动运行:

sudo apt-get install vsftpd

修改vsftpd的配置文件/etc/vsftpd.conf,将下面几行前面的“#”去掉。

#local_enable=YES//表示允许本地用户登录

#write_enable=YES //表示允许上传文件

修改完毕之后,执行以下命令重启FTP服务:

sudo/etc/init.d/vsftpdrestart

2.安装、配置、启动ssh服务

执行下列命令,安装后即会自动运行:

sudo apt-get install openssh-server

使用默认配置即可。

3.安装、配置、启动NFS服务

执行下列命令,安装后即会自动运行:

sudo apt-get install nfs-kernel-serverportmap

其配置文件为/etc/exports,在里面增加以下内容,以后通过网络文件系统访问/work/nfs_root/first_fs目录。

/work/nfs_root/first_fs *(rw,sync,no_root_squash) 如下图:

修改完毕之后执行以下命令重启NFS服务:

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

以上三个服务使用apt-get安装之后已经启动,并且以后每次都会开机启动。如果想取消,则可以在Linux的启动菜单执行“System”->“系统管理”->“网络命令,在对话框中取消。

五、开发板配置

1.确保开发板的内核中带有网卡驱动,而且可以正常使用。注意,这点尤为重要。在这个上面,我花了很长时间,要不是有群里面的兄弟和韦老大的帮忙,估计现在我还在弄那个什么网络文件系统。如果你的内核中没有网卡驱动,则会出现,在u-boot下可以ping通客机,但是到了文件系统阶段,就ping不通了,就会一直卡在那儿不动,如图:

2.设置u-bootIP地址即serverip,并进行Ping客机的IP

u-boot下输入print命令,查看u-bootipserver,将ip设置为同一网段,这里设置为192.168.1.110,将serverip设置为客机的ip,即192.168.1.108,执行下列命令完成:

setipaddr192.168.1.110

setserverip192.168.1.108

save

然后,在u-bootping 客机和主机,如ping主机windows有:

Ping 客机ubuntu有:

至此,开发板,主机,客机三机可以通信了。但是注意(以下语句,来自韦老师聊天记录)

如果windows有多网卡,那么这些网卡的IP的网段一定不能相同。

vmware用桥接的话,把windows网络连接里的vmnet1,vmnet8禁止掉

请确定你选用哪一个网卡来连接开发板,选择的网卡、VMWARE LINUXIP、开发板IP,三者设为同一网段。

VMWAER里,选择上述所选的网卡用作桥接。方法如下:

vmwareEdit菜单->Virtual Network Editor->Host Virtual NetworkMapping->VMnet0, 在此选择网卡。不要选择Bridge to an automatically chosen adapter, 一定要选中某个网卡。

windows里,你选用的网卡"如果是断开状态"的话,是无法PING通的如果开发板正在运行UBOOT,它是在使用网络命令的时候才使能网卡,其他时候是不使能网卡的。这意味着在UBOOT阶段没有使用网络命令时,即使你已经接了网线,但是windows的网卡仍然是断开状态。要想解决这个问题。

建议使用一个HUB或路由器,让PC、开发板的网线都接到HUB或路由器上去。UBOOT是不回应PING包的,这意味着开发板运行UBOOT时,它可以PING通别人,但是别人PING不通开发板。

3.PC机上测试下是否可以自已挂接自已:

4.单板挂接

在单板上创建一个挂接目录,再挂接。这样在服务器上改变那个目录下的文件时,单板上挂接的这个目录里也会改变。

这种方法是开发板启动之后去挂载的。

直接让开发板从 nfs 启动。修改命令行参数。

要求:

服务IP、目录。

开发板IP

linux内核的Documention\nfsroot.txt中有说明用法。

nfsroot=[<server-ip>:]<root-dir>[,<nfs-options>]

ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf>noinitrdroot=/dev/nfsnfsroot=[<server-ip>:]<root-dir>[,<nfs-options>]ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf>


[<server-ip>:] 服务器IP

<root-dir> 服务器上哪个目录设置成被单板挂载。

[,<nfs-options>] 用中括号表示的参数可以省略。尖括号的不可省略。

<client-ip> 表示单板的IP

<server-ip> 服务器IP

<gw-ip> 网关,单板和服务器同一网段。

<netmask> 子网掩码

<hostname> 不关心这个,不要。

<device> 网卡,如 eth0\eth1

<autoconf> 自动配置,这个不需要。写成 off

u-boot下执行以下命令:

set bootargs=noinitrd root=/dev/nfsnfsroot=192.168.1.108:/work/nfs_root/first_fsip=192.168.1.110:192.168.1.108:192.168.1.1:255.255.255.0::eth0:offinit=/linuxrc console=ttySAC0

设置后重启单板。

在文件系统下ping客机ubuntu,测试可不可以ping通:

ping 192.168.1.108,则出现:

说明可以ping通。然后重启单板,在文件系统下,执行ls命令,就会看到客机ubuntu上面的/work/nfs_root/first_fs里面的文件了,如下图:


至此,网络文件系统挂在成功。


六、声明

以上资料,来源于自己的学习总结和韦老大及群里面的兄弟的帮助。在这里,谢谢你们,如果没有你们最真挚,最耐心的帮助,我想,我早就放弃了。嵌入式的学习有时候很枯燥,希望大家可以坚持下去,每天进步一点,不久,就会有很大的收获。

对于以上内容,欢迎大家批评指点,如有疑问,可以来韦老师的群里,我们共同讨论,一起学习。


你可能感兴趣的:(windows,ubuntu,路由器,笔记本,控制面板)