这一阵子一直在看LINUX驱动和内核方面的书,有关ZEDBOARD的资料已经好久没看了,刚好队友的算法已经看的差不多了,需要在ZEDBOARD上实现算法,所以自己就想拾起以前的东西,不过看来看去倍感陌生啊!^_^ ……
本篇主要记录笔者在zedboard上是如何进行配置网络并通过ftp协议来访问开发板,并提出了如何在开发板上挂载FTP服务器的问题。
1、准备
硬件:zedboard开发板,USB Cable线,双绞线,SD卡
软件:
系统:WIN7-SP1-64BIT
可访问的FTP服务器地址,笔者的FTP服务器地址为10.0.5.118
硬件连接方法:
1)、使用USB Cable线将主机和zedboard(通过USB-UART口)连接起来
2)、在SD卡中拷贝LINUX启动文件,下载Linux Hardware Design for ISE 14.4,网址http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,400,1028&Prod=ZEDBOARD
解压缩后将SD_image中的文件全部拷贝到SD卡上
3)、按照ZEDBOARD的说明,设置启动引脚
4)、连接电源
5)、通过双绞线将zedboard连接到局域网中
6)、打开电源
2、运行超级终端,配置串口参数,115200b8N1,将主机和ZEDBOARD连接起来
3、成功启动后如图1所示:
图1
在终端zynq>中输入ifconfig查看本机的IP配置,
图2
默认情况如图2所示,digilent官方将IP配置为静态地址192.168.1.10,如果想要将zedboard连接上网络的话,我们可以利用LINUX下的网络配置方法,设置静态IP地址或者使用DHCP进行动态分配IP地址(这个笔者因为没有这个环境,故以静态IP地址为例),使其连接到internet上。
3、设置静态IP地址
在终端中按如下格式设置ip地址和子网掩码
ipconfig eth0 静态IP地址 netmask 255.255.255.0
静态IP地址为读者自己的IP地址,子网掩码一般情况下都是255.255.255.0。这样就设置好了IP地址,同理可以使用ifconfig查看下设置是否成功,如图3所示,
图3
可以看出,设置成功,下一步我们需要为其设置网关,让其可以知道怎么出去。
4、设置网关
默认情况下,路由表如图4所示:
图4
可以看出,网关Gateway的值为*,即默认的0.0.0.0,经过第三步的设置我们现在可以查看下系统为我们设置的默认网关为多少,在命令行中输入route,如图5所示:
图5
可以看到默认情况下,系统的网关为0.0.0.0,可是我们想要连上互联网,一般情况下这样是不行的,那么怎么办呢,还是老方法,设置默认网关,更改成可以出去的网关地址,以10.0.5.1为例,设置方法如下:
route add default gw 10.0.5.1
完成后查看设置是否生效,输入命令route -n,具体如图6所示
图6
说明设置成功,此时我们可以先ping下百度,查看是否连通,具体如图7所示,可以看到此时仍然无法ping通,这是为何呢?
图7
5、配置DNS服务器
这就涉及到计算机网络方面的知识了,ping的时候需要有一个域名服务器DNS,将字符串形式的IP解析成计算机可以理解的IP地址,这样才能够使得两台不同IP地址的计算机进行通信,而linux下域名服务器的设置是通过系统配置文件resolv.conf来读取数据的,我们切换到/etc下,使用ls查看文件,如图8所示,
图8
可以看出在此嵌入式linux中并没有这个文件,不要紧,我们使用命令vi resolv.conf来新建一个,进入后先按i键进入编辑模式,如图9所示进行编辑域名服务器,
图9
推荐使用图9所示的DNS配置,8.8.8.8为谷歌的DNS服务器地址,当然如果你知道DNS服务器地址,可以将其8.8.8.8替换成你的DNS服务器地址即可。编辑完成后,按下ESC键退出编辑模式,然后输入:wq退出。
此时,可以再ping下百度,如图10所示:
图10
可以看出已经可以ping通了,另外www.baidu.com后面的括号中的IP地址即为百度的服务器地址,说明DNS服务器解析地址成功。最后一步我们需要连接到FTP服务器上,并通过FTP服务器来下载必需的文件等。
6、连接FTP服务器
在Digilent中已经集成了FTP守护进程,故我们可以方便的使用FTP来访问开发板,方法如下:
在windows的命令行上输入
ftp 10.0.5.16(此处为笔者的zedboard开发板IP地址,请读者按自己的实际情况更换地址)
输入完成之后,会弹出一个窗口,请输入用户名,直接输入root即可:
如图11所示:
图11
可以看到,已经挂载完成,输入ls,查看是否已经可以访问文件系统,但是这个只是在主机里面来挂载zedboard,笔者想能不能在zedboard里面来挂载FTP服务器呢??在上述的终端中输入bye断开连接,然后下载ftp软件,交叉编译,并将需要的动态库拷贝到开发板的lib库中,发现了一个问题,如图12所示
图12
这个是因为根文件系统只有8M,而我们的动态库的大小超过了文件系统,这个问题留待下一节解决,敬请期待!