转自: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
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