做开发,通常情况下都是把笔记本通过网线连接到Hub上网,然后开发板也通过网线接到Hub上并设置成同一网段的IP,同理虚拟机通过桥接方式也设置成跟笔记本有线网卡同一网段的IP,这样就可以实现“虚拟机<—>本机<—>开发板”之间相互ping通,实现虚拟机跟板子通讯了,这样搭建GDB环境毫无疑问是可以的。
但是有时网络不好,或者到了一个没有Hub的环境下,通过以上方式搭建GDB要么搭不起来,要么搭起来了也经常connected fail。那么在这样的条件下怎么实现GDB调试呢,或者说怎么能让虚拟机、本机与板子这三者能相互ping通?
准备环境:
一台笔记本(显然需要已经安装好虚拟机环境)
一根网线(将开发板与笔记本直连)
一套开发板(Linux/Android平台)
步骤:
1.笔记本IP地址的设置:
按照上图的连接方式来连接,这时需要设置一下笔记本的有线网卡的IP地址,如果开发板还没上电,这里显示的网线被拔出的,不过无所谓,可以设置的。
这里我设置如下,随意设置就好:
IP地址:169.254.204.54
子网掩码:255.255.0.0
默认网关:169.254.204.1
2.虚拟机IP地址的设置:
虚拟机桥接方式的设置方法,“编辑”–>“虚拟网络编辑器”,然后在“VMnet信息”选择“桥接到”自己的有线网卡(务必是有线网卡),“确定”退出。
然后到“虚拟机“ –> ”设置”里的“网络适配器”选择“自定义”到“VMnet0”,“确定”退出。
接着设置虚拟机的IP地址,我这里选择设置成静态IP地址,Ubuntu12.04环境,设置要和笔记本的同一网段。
$ sudo vi /etc/network/interfaces
auto eth0
iface eth0 inet static
address 169.254.204.52
gateway 169.254.204.1
netmask 255.255.0.0
重启一下网卡:
$ sudo /etc/init.d/networking restart
这时可以ping通笔记本和虚拟机了。
3.开发板IP地址的设置:
在命令行下输入这个命令,该命令的作用是设置网卡eth0的IP地址、子网掩码和网络的本地广播地址
busybox ifconfig eth0 169.254.204.50 netmask 255.255.0.0 broadcast 169.254.255.255 up
大功告成,此时“虚拟机<—>本机<—>开发板”三者就可以相互通信了,接下来搭建GDB环境就轻而易举了。