Skip to content

Reference Operating System

Rafael Jacaúna edited this page Aug 18, 2015 · 1 revision

Introduction

NetFPGA-10G development should be possible on any Linux distribution which supports the Xilinx ISE Design Suite. We currently build under 13.4. Xilinx provides a list of officially-supported Linux distributions for ISE Design Suite 13.4 here.

We have adopted** Fedora 14 (x86_64)** as our reference operating system for software development with NetFPGA-10G. Install images for Fedora are available from mirrors.fedoraproject.org. We adopted this Linux distribution as our reference operating system because it has a modern Linux kernel with features required by the NetFPGA-10G Network Interface driver.

We are providing this guide to setting up a Fedora 14 machine for NetFPGA-10G development to help users get up and running as easily as possible. Note however that we cannot undertake to support users who adopt this (or any other) Linux distribution for their development work.

Installing Fedora 14

  • Choose a mirror server near you from those listed on mirrors.fedoraproject.org
  • Navigate to fedora/linux/releases/14/Fedora/x86_64/iso/
  • Download the 3.3GB DVD ISO installation image (Fedora-14-x86_64-DVD.iso)
  • Burn the image to blank DVD and boot your PC from it
  • Be sure to enable "Software Development" in the "Tasks" list during the installation as shown below - this ensures that essential development tools are installed
  • Complete the installation and add any device drivers that are required to make your system usable.
  • Disable SELinux as it interferes with Xilinx tools. Edit /etc/sysconfig/selinux
    # vim /etc/sysconfig/selinux
    and set the value of SELINUX to disabled.
  • Configure gdm to allow root login. To do this, comment the following line (prepending a #): auth required pam_succeed_if.so user != root quiet
    in the following files.
       # vim /etc/pam.d/gdm 
       # vim /etc/pam.d/gdm-password 
       # vim /etc/pam.d/gdm-fingerprint 
  • After this, logout and login as root. A warning message pops up indicating the vulnerabilities of providing a root login in the gdm. Accept this message.
  • Delete the user account.
       # userdel <username>
  • Configure services disabling those not required and enabling those required.
       chkconfig abrtd off 
       chkconfig avahi-daemon off 
       chkconfig bluetooth off 
       chkconfig cpuspeed off 
       chkconfig nfslock off 
       chkconfig pcscd off 
       chkconfig rpcgssd off 
       chkconfig rpcidmapd off 
       chkconfig sendmail off 
       chkconfig ip6tables off 
       chkconfig NetworkManager off - WARNING: This service can disable the nic of your workstation! If this happens, change the option to "on" and reboot system.
       chkconfig httpd on 
       chkconfig network on WARNING: This service can disable the nic of your workstation! If this happens, change the option to "off" and reboot system.
  • Tweak all network interface configuration files /etc/sysconfig/network-scripts/ifcfg-*:
       set NM_CONTROLLED to no
       set ONBOOT to yes
  • Disable IPv6. Edit /etc/sysctl.conf adding the line:
       # Disable ipv6 altogether
       net.ipv6.conf.all.disable_ipv6=1

Additional Required Installation Packages

Once you have a working Fedora 14 system, a number of additional software packages must be installed. These are required for hosting the NetFPGA-10G card and building the reference NIC driver. You should use Fedora's built-in package manager (yum) to install these packages where possible. If yum can't find a package for you, use the links provided below to obtain RedHat installation package files (RPMs) which you can install manually using rpm -i . Note that if you use yum behind a HTTP proxy server, you may need to modify yum's configuration file (/etc/yum.conf) to add a line like this:

proxy=http://(proxy address):(port number)/

(Replace with the IP address or name of the HTTP proxy server. Replace with the port number for HTTP requests.)

First step is to do

       # yum update

Install the following mandatory packages.

Package Version How to Install Used for
gcc gcc-c++ updated version yum install gcc gcc-c++ installing gcc and gcc+ compiler
lrzsz lrzsz.x86_64 0.12.20-27.fc12 Download an RPM from pkgs.org
minicom minicom.x86_64 2.5-3.fc14 yum install minicom RS-232 link to NetFPGA-10G card
libusb-devel libusb-devel.x86_64 yum install libusb-devel Third-party driver for Xilinx JTAG programming cable
glibc.i686 glibc.i686 2.12.90-17 yum install glibc.i686 32-bit statically-linked Microblaze compiler and binutils
scapy scapy.noarch 2.0.0.10-4.fc14 yum install scapy NetFPGA-10G simulations
xterm xterm yum install xterm used for isim simulation
       yum install libXp emacs java-devel libnet-devel iperf screen vnc-server mplayer openmotif

Installing Xilinx ISE Design Suite on Fedora 14

The Xilinx ISE Design Suite is not officially supported on the Fedora 14 (x86_64) distribution. However, a number of installation steps can be followed to allow the tools to install and run correctly. There are two main issues which need to be overcome:

  • When enabled, the security features in SELinux prevent the Xilinx ISE Design Suite installer from running; the SELinux enforcement mode must be set to "Permissive" or SELinux must be disabled entirely
  • The newer Linux kernel in Fedora 14 prevents the proprietary driver for the USB JTAG programming cable from installing correctly; a third-party replacement driver must be used

Follow these steps to install the Xilinx ISE Design Suite:

  1. In Fedora's System menu, select Administration -> SELinux Management.
  2. Set the SELinux Current Enforcing Mode to Permissive to turn off the security features in SELinux, which conflict with the ISE Design Suite installation. Note that the SELinux default may revert to Enforcing on the next boot. You may wish to disable SELinux entirely by selecting Disabled from the System Default Enforcing Mode menu.

    If local policy demands that SElinux should be enforcing, or you simply prefer to run with SElinux enabled, check /var/log/messages for SElinux security messages. Examine each warning message as directed, and then set the security policy with the appropriate permissions for the Xilinx tools. You can also do it from CLI by modifying /etc/sysconfic/selinux
  3. Download the ISE Design Suite Linux installation tarball from the Xilinx website's Downloads section.
  4. Follow the installation instructions in the Xilinx ISE Design Suite Installation and Licensing Guide. Select "System Edition" to install the complete set of tools.
  5. Disable "Install Cable Drivers". So untick the option shown in the image.
  6. Install the tools to the default location in /opt/Xilinx/.
  7. Please untick the box indicating " import tool preference from previous version ". This is necessary to run the Xilinx tool chain in batch mode.
  8. If you intend to use a Xilinx USB JTAG programming cable, download the libusb-based third-party driver written by Michael Gernoth, which is available from rmdir.de/~michael/xilinx/
  9. Attach your Xilinx USB JTAG programming cable to the computer and follow all the installation instructions in the README included with the third-party driver. Please refer below
tar -xvf usb-driver-HEAD-xxxxxxx.tar.gz 
cd usb-driver-HEAD-xxxxxxx
source /opt/Xilinx/13.4/ISE_DS/settings64.sh
make
./setup_pcusb
cp libusb-driver.so /usr/local/lib/libusb-jtag-driver.so
export LD_PRELOAD=/usr/local/lib/libusb-jtag-driver.so
  1. To run the Xilinx tools, start a new shell and run the Xilinx ISE Design Suite settings script:
    source /opt/Xilinx/13.2/ISE_DS/settings64.sh
    This defines a number of environment variables needed to run the ISE Design Suite.
  2. Launch Xilinx ISE 13.2 using:
    ise &
  3. Launch Impact, the Xilinx FPGA and CPLD programming tool, using:
    impact &

Building the NetFPGA-10G Reference NIC driver

If you plan to use the NetFPGA-10G card in hosted mode as an ethernet NIC, you will need to compile and install the included driver. Go to the Driver Getting Started page for instructions.

Other Linux Distributions

We've tested NetFPGA-10G on Fedora 14. We cannot provide support for users on this or any other Linux distribution. NetFPGA-10G development should be possible on any Linux distribution which supports the Xilinx ISE Design Suite, although you may not be able to build and use the NetFPGA-10G NIC driver with older Linux kernels.

For users on Red Hat Enterprise Linux 4.x/5.x or CentOS 4.x/5.x, you will need to install at least the following packages before attempting NetFPGA-10G development. In the case of each package, search with yum before looking for source code or pre-built RPMs in other places.

  • python, version 2.5 or newer. The system python installation in RedHat 4/5 and CentOS 4/5 is old, but should not be replaced to avoid interfering with the operation of yum and other system components. We recommend obtaining the source for python 2.7 from python.org/download/. Compile python and install it to a local directory, ensuring that the main binary is named python27 or equivalent to prevent it from interfering with the machine's older pre-installed version. Be sure that the shell script located in tools/scripts/link_py_interpreter.sh within the NetFPGA-10G repository correctly locates your python 2.7 binary.
  • scapy, a program for manipulating packets, available from www.secdev.org/projects/scapy/
  • fxload, for downloading to EZ-USB-powered devices, available as an RPM from pkgs.org, among other places
  • minicom, for serial communication with a NetFPGA-10G board over the RS232 interface
  • gcc
  • gcc-c++
  • bison
  • byacc
  • flex
  • glibc.i686 (on 64-bit systems)
  • kernel-devel
  • libusb-devel
  • libpcap-devel
  • libnet-devel

This is not an exhaustive list.

Clone this wiki locally