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) 编辑 收藏 举报