windows下直连开发板网络配置

最近开始学习百问科技的imx6ull mini开发板,比较头疼的是开发环境的网络配置。

我的路由器位于卧室,而我习惯于在客厅开发,期望可以随时随地的开发,不受位置的限制。

基于正点原子的教程,我使用虚拟机安装debian系统,然后将笔记本和开发板直接相连的方式来开发。

因此还需要有线网卡,但是我的电脑只有无线网卡,还需要购买usb有线网卡与开发板直连。

初步设想笔记本用无线网卡上网,而开发板和虚拟机debian系统使用有线网口借助于无线网口上网。

虚拟机debian系统通过桥接到有线网口以便与开发板通信。

而虚拟机debian系统本身也需要上网,所以还需要对虚拟机配置nat网络连接以便连接外网。

 

硬件要求: 笔记本(已安装了debian系统的virtualbox)、imx6ull mini开发板、网线、usb有线网卡(电脑未含有线网卡时才需要)

 

预备工作:

首先先将usb网卡插入笔记本,网线一端连接网卡,另一端连接开发板,查看相关网络接口状态,确保处于已连接状态。

在设备管理器下可以看到有线网卡型号是ASIX AX88179 USB 3.0网卡。

将windows上有线网口的ip地址设置为192.168.10.100,后面打算将开发板配置为192.168.10.150,将虚拟机桥接网口设置为192.168.10.200,这三者必须位于同一个网段。

此外,实验前需要关闭windows和debian防火墙。debian默认未安装防火墙可忽略。

 

下面开式工作。

根据前面的计划,需要在虚拟机下设置两个网,第一个网卡个用NAT来访问外部网络。

 第二个网卡桥接到ASIX AX88179 USB3.0网卡。

 此时启动virtualbox debian虚拟机,可以看到两个网络接口enp0s3(NAT), enp0s8(桥接)。

需要配置桥接网络接口的ip地址(/etc/network/interfaces):

修改enp0s8配置如下:

auto enp0s8
iface enp0s8 inet static
address 192.168.10.200
netmask 255.255.255.0

配置完毕后执行sudo /etc/init.d/networking restart使能网络配置。

使用"ip addr"得到网络ip地址如下:

 

 在windows系统找到usb网卡对应网络连接,设置ip地址为192.168.10.100.

 

此时可以启动开发板电源,进入开发板uboot,执行下面命令:

setenv ipaddr 192.168.10.150
setenv gatewayip 192.168.10.1
setenv netmask 255.255.255.0
setenv serverip 192.168.56.200
saveenv

执行ping 192.168.10.200(虚拟机系统ip):

=> ping 192.168.10.200
ethernet@02188000 Waiting for PHY auto negotiation to complete... done
Using ethernet@02188000 device
host 192.168.10.200 is alivec

执行ping 192.168.10.100(windows中usb网口对应ip)也可以得到类似效果。

而此时虚拟机无法ping 192.168.10.150(开发板uboot ip),这是正常情况,因为uboot中网络功能有限。 

 

uboot下执行boot,然后进入linux系统。

在开发板linux系统下执行ifconfig eth0 192.168.10.150,然后ping 192.168.10.200(虚拟机ip),一切ok。

当前还有个奇怪的问题,每次需要先进入uboot ping 任一ip,然后进去开发板linux系统才可以ping 通windows主机和虚拟机。

还可以将开发板ip配置为固定ip,直接修改/etc/network/interfaces重启开发板即可:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 192.168.10.150
netmask 255.255.255.0
gateway 192.168.10.1

而直接进入linux开发板不能ping通windows主机和虚拟机,这个问题以后再研究。

 

下面在虚拟机debian系统配置tftp和nfs。

首先配置tftp,需要先安装下面工具:

sudo apt install xinetd tftp-hpa tftpd-hpa

安装完xinetd后,会自动生成/etc/xinetd.conf(若未生成需要自己创建),内容如下:

# Simple configuration file for xinetd
#
# Some defaults, and include /etc/xinetd.d/

defaults
{

# Please note that you need a log_type line to be able to use log_on_success
# and log_on_failure. The default is the following :
# log_type = SYSLOG daemon info

}

includedir /etc/xinetd.d

然后在debian下创建tftp文件夹:

mkdir /home/host/100ask/linux/tftp
chmod 777 /home/host/100ask/linux/tftp

tftpd安装后,需要修改/etc/default/tftpd-hpa(注意红色部分为自己的tftp文件夹):

host@debian:~$ cat /etc/default/tftpd-hpa
# /etc/default/tftpd-hpa

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/home/host/100ask/linux/tftp"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="--secure"

创建/etc/xinetd.d/tftp(注意红色部分设置成自己的tftp文件夹):

server tftp
            {
                socket_type = dgram
                wait = yes
                disable = no
                user = root
                protocol = udp
                server = /usr/sbin/in.tftpd
                server_args = -s /home/host/100ask/linux/tftp -c
                #log_on_success += PID HOST DURATION
                #log_on_failure += HOST
                per_source = 11
                cps =100 2
                flags =IPv4
                }

然后可以重启tftpd和xinetd服务:

sudo service tftpd-hpa restart
sudo service xinetd restart

此时在虚拟机debian系统/home/host/100ask/linux/tftp创建hello.c,内容任意,然后在开发板下执行下面命令:

tftp -g -r hello.c 192.168.10.200

可以在开发板下找到这个文件,可以进一步确认文件内容是否一致。

 

下面配置NFS。

首先在虚拟机debian系统下安装nfs(sudo apt install nfs-kernel-server).

然后在虚拟机debian系统下创建nfs文件夹:

mkdir /home/host/100ask/linux/nfs
chmod 777 /home/host/100ask/linux/nfs

配置nfs服务文件夹(sudo vim /etc/exports):

# /etc/exports: the access control list for filesystems which may be exported
#               to NFS clients.  See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes       hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4        gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes  gss/krb5i(rw,sync,no_subtree_check)
#
/home/host/100ask/linux/nfs *(rw,sync,no_root_squash)

然后重启nfs服务(sudo /etc/init.d/nfs-kernel-server restart)

可以用showmount命令查看nfs服务状态(sudo showmount -e),输出结果如下:

host@debian:~$ sudo showmount -e
Export list for debian:
/home/host/100ask/linux/nfs *

此时可以在nfs文件下创建文件mytest.c,内容任意。

在开发板linux系统下挂在nfs文件夹:

mkdir get
mount -t nfs nolock,nfsvers=3 192.168.10.200:/home/host/100ask/linux/nfs get

此时可以查看get文件夹下是否有mytest.c以及内容是否和服务器上该文件内容一致。确认完毕后,执行umount get卸载nfs文件系统。

 

小结:

本文参考博客园文章进行配置,只是虚拟机debian系统使用virtualbox host only网口配置时无法在host only和usb 网口对应接口建立桥接,所以改用了直接桥接usb网口。

 

参考文章:

virtualbox网络配置实现PC、虚拟机、开发板互ping - fuzidage - 博客园

VirtualBox虚拟机配置双网卡同时链接内外网 - 知乎

 

posted on 2024-10-25 08:07  qiaoqiao2003  阅读(51)  评论(0编辑  收藏  举报

导航