这一篇主要讲讲网络测试,同时也包含怎么将netperf测试工具通过petalinux工具编译进zynq中。
准备:《zynq学习笔记之petalinux (3)petalinux 创建自定义工程》的工程文件my_first_proj
netperf测试工具,点击下载netperf2.7.0
1,首先设置虚拟机的网络连接。因为我们是在虚拟机的linux系统上进行网络测试,因此需要对虚拟机的网络配置进行设置。
关机-->编辑虚拟机设置-->网络配置器-->桥接模式-->复制物理地址网络状态-->确定
2,设置虚拟机的ip地址
$ cd /etc/network/
$ sudo gedit interfaces
在interfaces文件中,加入如下内容:
auto ens33
iface ens33 inet static
address 192.168.184.10
gateway 192.168.184.254
netmask 255.255.255.0
我的主机ip是192.168.184.9,将虚拟机设置为同一网段,同时设置网关和子网掩码。保存后退出。
可以ifconfig查看ip地址
$ ifconfig
ens33 Link encap:Ethernet HWaddr 00:0c:29:31:d6:f3
inet addr:192.168.184.10 Bcast:192.168.184.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe31:d6f3/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1887970 errors:0 dropped:0 overruns:0 frame:0
TX packets:145081 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:2832030059 (2.8 GB) TX bytes:9582343 (9.5 MB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:6436 errors:0 dropped:0 overruns:0 frame:0
TX packets:6436 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1
RX bytes:476160 (476.1 KB) TX bytes:476160 (476.1 KB)
3,将下载好的netperf拖拽到linux虚拟机中并解压,我直接将它放在桌面下并解压。
$ cd ./Desktop/
$ unzip netperf-2.7.0.zip
4,将netperf进行编译和安装
$ cd ~/Desktop/
$ cd ./netperf-2.7.0/
$ mkdir arm_zynq
$ ./configure --build=arm-linux-gnueabihf --prefix=/home/zhupy/Desktop/netperf-2.7.0/arm_zynq/
$ make CC=arm-linux-gnueabihf-gcc
$ make install
运行完成后,在arm_zynq/bin文件夹下面出现了两个可执行文件,我们需要用到的是客户端的netperf这一个。
5,切换到《zynq学习笔记之petalinux (3)petalinux 创建自定义工程》的工程文件my_first_proj
$ cd ~/Desktop/petalinux_proj/my_first_proj/
6,创建用户app
$ petalinux-create -t apps --template install --name netperf --enable
INFO: Create apps: netperf
INFO: New apps successfully created in /home/zhupy/Desktop/petalinux_proj/my_first_proj/project-spec/meta-user/recipes-apps/netperf
INFO: Enabling created component...
INFO: sourcing bitbake
INFO: oldconfig rootfs
INFO: netperf has been enabled
7,将petalinux创建的netperf删掉,并将上面生成的netperf复制过去
$ cd ~/Desktop/petalinux_proj/my_first_proj/project-spec/meta-user/recipes-apps/netperf/files/ #切换目录
$ rm netperf #删除petalinux生成的netperf
$ cp ~/Desktop/netperf-2.7.0/arm_zynq/bin/netperf ./ #将上面生成的netperf执行文件复制过去
8,编译
$ cd ~/Desktop/petalinux_proj/my_first_proj/
$ petalinux-build
[INFO] building project
[INFO] sourcing bitbake
INFO: bitbake petalinux-user-image
Parsing recipes: 100% |##########################################| Time: 0:00:41
Parsing of 2467 .bb files complete (0 cached, 2467 parsed). 3260 targets, 226 skipped, 0 masked, 0 errors.
NOTE: Resolving any missing task queue dependencies
Initialising tasks: 100% |#######################################| Time: 0:00:06
Checking sstate mirror object availability: 100% |###############| Time: 0:00:49
NOTE: Executing SetScene Tasks
NOTE: Executing RunQueue Tasks
fsbl-2017.4+gitAUTOINC+77448ae629-r0 do_compile: NOTE: fsbl: compiling from external source tree /home/zhupy/petalinux/tools/hsm/data/embeddedsw
NOTE: Tasks Summary: Attempted 2458 tasks of which 2403 didn't need to be rerun and all succeeded.
INFO: Copying Images from deploy to images
NOTE: Successfully copied built images to tftp dir: /tftpboot
[INFO] successfully built project
9,按照《zynq学习笔记之petalinux (3)petalinux 创建自定义工程》的步骤生成SD卡镜像文件,拷贝到SD卡中。这样我们在开发板的client端的netperf编译到zynq中。
10,然后,我们需要在linux主机中安装和运行netserver。和上面生成netperf的步骤一样,只不过不用指定编译器。
$ cd ~/Desktop/netperf-2.7.0/
$ ./configure
$ make clean #最好先clean下
$ make
$ sudo make install
11,运行netserver
$ netserver -4
Starting netserver with host 'IN(6)ADDR_ANY' port '12865' and family AF_INET
默认的端口号为12865, -4 表示IPv4,如果想指定端口,可以使用-p命令
12,将开发板与主机通过网线直连,开发板上电,启动putty,修改开发板ip
# ifconfig eth0 192.168.184.11 netmask 255.255.255.0
# ifconfig
可以看到ip已经修改完成!
13,开始测试:(netperf -help可以查看指令帮助)
# netperf -H 192.168.184.10 -l 60
OK!!