转自:http://blog.csdn.net/tryscan/article/details/4072499

1、 操作系统安装:

经过多次安装测试安装CentOS 5系统,采用完整版光盘安装,因为安装nistnet需要编译内核

2、 下载相关软件包

◇ linux-2.6.18.8.tar.gz

下载地址如:http://www.kernel.org/pub/linux/kernel/v2.6/

◇ nistnet.2.0.12c.tar.gz

下载地址如:http://www-x.antd.nist.gov/cgi-bin/nistnet-distribution

3、 编译内核

# tar zxvf linux-2.6.18.8.tar.gz

# cd /usr/src/

# ln –s /root/ linux-2.6.18.8/ linux

# cd linux

# make mrproper //删除不稳定的.o文件和.config文件

# make menuconfig

Device Drivers --->

| Character devices -->

| Enhanced Real Time Clock Suppot --M //按M键,设置

# make dep //连接程序代码和函数库

# make clean //删不必要的模块

# make bzImage //生成内核文件

# cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.18-8_new //注意正确路径

# make modules //编译外挂模块

# make modules_install //安装编译完成的模块

# make install(若是miss一些module还是要回到menuconfig添加上去,不然可能启动不了)

# mkinitrd /boot/initrd-2.6.18-8_new.img 2.6.18.8

# vi /boot/grub/grub.conf //添加启动项,内容如下:

title Centos (2.6.18-8_new)

root (hd0,0)

kernel /vmlinuz-2.6.18-8_new ro root=/dev/VolGroup00/LogVol00 rhgb quiet

initrd /initrd-2.6.18-8_new.img

//注意default=x (x为以上添加的选项,从0开始)

# init 6

4、 安装NistNet

# tar zxvf nistnet.2.0.12c.tar.gz

# ln –s nistnet-3.0a nistnet

# cd nistnet

# ./ configure

# make

#*********************此处会出现error需要作以下修改**********************

1)、~/nistnet-3.0a/kernel/knistnet.c

找到916、961、972、1003行,添加参数NULL,如:

return ippt->func(skb, dev, ippt);à return ippt->func(skb, dev, ippt,NULL);

2)、/lib/modules/2.6.18.8/build/include/asm/rwsem.h

找到104、156、198、224、249行,(不知道汇编的具体含义)注释掉,如:

LOCK_SECTION_START("") à // LOCK_SECTION_START("")

3)、/lib/modules/2.6.18.8/build/include/asm/semaphore.h

找到105、130、155、179行,(不知道汇编的具体含义)注释掉,如:

LOCK_SECTION_START("") à // LOCK_SECTION_START("")

#*********************再重新编译******************************************

# make

# make install

5、 测试安装是否成功

# cd ~nistnet/

# ./Load nistnet

# cnistnet –u

 

关于nistnet的具体使用,此处不做过多说明,参见http://snad.ncsl.nist.gov/nistnet/usage.html

--------------------------------------以上为原文章的部分内容--------------------------

写些自己遇到的问题,以作日后参考查阅。

1. 先安装必要的包。

yum install  libXext-devel libXaw-devel libXpm-devel libXmu-devel libXdmcp-devel imake ncurses-devel gcc

2.开始上面步骤编译内核,在menuconfig这一步还要选上。

-> Device Drivers
-> SCSI device support
-> SCSI low-level drivers

下的CentOS 5.4上安装NistNet_target

3.后面编译中还遇到一个错误(别随便注释),实在不知道怎么解决了。直接注释还是可以成功的。

 

4.第一次启动cnistnet没有问题。重启过机器后会出现:cnistnet -u on: No such file or directory

解决方法:

mknod /dev/hitbox c 62 0
mknod /dev/nistnet c 62 1
chown root /dev/hitbox
chown root /dev/nistnet
mknod /dev/mungebox c 63 0
chown root /dev/mungebox
mknod /dev/spybox c 64 0
chown root /dev/spybox

5.要做路由功能记得开启。

echo 1 >  /proc/sys/net/ipv4/ip_forward