Sorry, you need to enable JavaScript to visit this website.

Building Iperf with SDK for MicroZed board

5 posts / 0 new
fd9750's picture
Building Iperf with SDK for MicroZed board


I am quite new to using a MicroZed board and have very little experience with Linux etc...

Nevertheless I got the SDK installed, managed to create/build/debug a few sample applications and things appear to be going well.

As I will be need to implement an application on it which will need to pump large amounts of data across the 1000Mb ethernet link I thought iperf would be a good way to start, at least to get to know my way around using TCP/IP under Linux.
So I downloaded iperf and tried to build it using the SDK without much success becuase I got large amounts of errors. I checked it out a bit and found that "HAVE_CONFIG_H" was missing. I added that to the Symbols list for the iperf project and got a different result.

However, now it complains it is missing "config.h" which is very logical because there is a "config.win32.h" in the downloaded files but no "config.h"(it is probably a windows related file or soemthing). After a bit of additional searching I gather "config.h" is something generated for a particular board setup so that raises a few questions:

- is there a suitable "config.h" out there anywhere for the microzed board?
- Is it possible at all to build iperf for the MicroZed board using the XILINX SDK? I have read on this website that it would be impossible to really build a C++ application like it using the SDK?
- If yes: is there a downloadable ready to build anywhere for building iperf on the MicroZed board?

Any help/suggestion/useful info would be very much appreciated.

zedhed's picture
Building Iperf with SDK for MicroZed board

Hi fd9750,

I think you will find that well established open source projects like Iperf are easier to build outside SDK by simply utilizing the ARM cross toolchain provided with SDK and building on a Linux machine.

I was able to build Iperf a while back and a pre-built binary is provided as part of the "Open Source Linux Ethernet Performance Test Tutorial" which is posted under the MicroZed Reference Designs/Tutorials page:

Take a look at that tutorial since it should work well for the measurements you are looking to make.



fd9750's picture
Hi Kevin,

Hi Kevin,

You are right: the tutorial helped but in the end I managed to build it from within the SDK as well.
I followed all instructions in the tutorial up to and including building it via make (on a virtual CentOs 6.5 machine).
After that I copied the whole set of files from the virtual Unix machine to the windows machine which is running the Xilinx SDK.
I imported everything into the SDK workspace as an existing C/C++ project with makefile and tried to build it.
Initially that did not work because the GNUWin library which is used by the SDK to run all the Linux tools did not contain an "ar" utility.
I found one, put it in the GNUWin folder and from that moment on it works a treat.
By tweaking a few compiler flags in the makefile I can now even do full source level debugging.

It makes life so much easier I am wondering why the guys who make the tutorials did not make one on how to do this.


harbojo's picture
We've successfully built

We've successfully built iperf into our system and are using it to stress test the EMACPS Ethernet port.

What we did was, using the XSDK GUI, select "PetaLinux SDK", then, select "Application/System Configuration" and wait for the menu to appear. When it does, then, using the arrow keys, move the cursor down to "Benchmarking Tools". When that menu appears, select the "iperf" entry, then exit the "Benchmarking Tools" menu, followed by exiting the "Application/System Configuration" menu. Afterward, at the XSDK GUI, re-select "PetaLinux SDK" and select "Build All" and wait for it to complete. You will find "iperf" in your rootfilesystem's /bin directory ready to use.

Gary Anson's picture
Gary Anson
How did you select the PetaLinux SDK?

I'm trying to get the performance test going and I cannot find the PetaLinux SDK you refer to.
Any help would be greatly appreciated.
I also want to put the lwIP on the PetaLinux build. Does anyone know how to do that?
BTW. I'm pretty much a noob so please be kind :)