Friday, April 10, 2009

install netfpga on ubuntu

Here is the instruction from netfpga to install netfpga on ubuntu.

1. Install prerequites

sudo apt-get install build-essential (for compiling driver)
sudo apt-get install linux-headers-`uname -r` (for compiling driver)
sudo apt-get install ncurses-dev (for selftest)
sudo apt-get install libnet1-dev (for the reference router/selftest)
sudo apt-get install libxml-simple-perl (Used in ./nf21_run_test.pl to verify *simulator* output)
sudo apt-get install libio-interface-perl (Used to manually build a newer version of Net::PCap)
sudo apt-get install liblist-moreutils-perl (Used to manually build a newer version of Net::RawIP)
sudo apt-get install liberror-perl (for the reference router)
sudo apt-get install sun-java6-jre (for the reference router GUI)
sudo apt-get install sun-java6-jdk
sudo apt-get install jpackage-utils
sudo apt-get install libpcap0.8 (for SCONE)
sudo apt-get install libpcap0.8-dev (for SCONE)



2. Create symbol links

sudo ln /usr/bin/lspci /sbin/lspci
sudo ln /usr/bin/setpci /sbin/setpci


3. Modify the source code

projects/reference_nic/regress/test_loopback_drop/run: usleep 10;
projects/reference_nic/regress/test_loopback_drop/run: usleep 10;
projects/reference_nic/regress/test_loopback_drop/run: usleep 10;
projects/reference_nic/regress/test_loopback_drop/run: usleep 10;
projects/reference_nic/regress/test_loopback_drop/run: usleep 10;
projects/reference_nic/regress/test_loopback_drop/run: usleep 10;
projects/reference_nic/regress/test_loopback_drop/run: usleep 10;
projects/router_buffer_sizing/regress/test_time_stamp/send_pkt: `usleep 10000`;
projects/router_buffer_sizing/regress/test_store_event/send_pkt: `usleep 10000`;

replace "usleep 10;" with "sleep 0.000010;"


4. Prepare env

source /root/netfpga/NF2/bashrc_addon


5. make; make install;

6. modify grub

title Ubuntu 8.04.1, kernel 2.6.24-19-server (netfpga)
uppermem 524288
root (hd0,1)
kernel /boot/vmlinuz-2.6.24-19-server root=UUID=5c9521ed-d36d-417a-a755-36e3bb5d1887 ro quiet splash vmalloc=256M
initrd /boot/initrd.img-2.6.24-19-server
quiet


7. After reboot, testing

sudo cpci_reprogram.pl --all
sudo nf2_download ~/NF2/bitfiles/reference_nic.bit
sudo ~/NF2/bin/nf21_regress_test.pl