CentOS 7 安装 netmap

来源:互联网 发布:java开发人员要求 编辑:程序博客网 时间:2024/06/09 17:40

0、环境准备

       操作系统:CentOS 7.3.1611      

yum -y install rpm-build redhat-rpm-config asciidoc bison hmaccalc patchutils perl-ExtUtils-Embed pesign xmlto audit-libs-devel binutils-devel elfutils-devel elfutils-libelf-devel ncurses-devel newt-devel numactl-devel pciutils-devel python-devel zlib-devel git wget


1、确认内核版本       

uname -a

       3.10.0-514.26.1.el7.x86_64


2、下载netmap       

git clone https://github.com/luigirizzo/netmap.git


3、下载内核源码(以普通用户下载)

useradd wxxpasswd wxxsu wxxmkdir -p ~/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}echo '%_topdir %(echo $HOME)/rpmbuild' > ~/.rpmmacrosrpm -i http://vault.centos.org/7.3.1611/updates/Source/SPackages//kernel-3.10.0-514.26.1.el7.src.rpm 2>&1 | grep -v existcd ~/rpmbuild/SPECSrpmbuild -bp --nodeps --target=$(uname -m) kernel.spec


4、辅助操作

su rootmv /home/wxx/rpmbuild/BUILD/kernel-3.10.0-514.26.1.el7/linux-3.10.0-514.26.1.el7.x86_64 /usr/src/kernels/


5、下载缺失的Module.symvers文件

mkdir tempcd tempwget ftp://mirror.switch.ch/pool/4/mirror/scientificlinux/7.0/x86_64/updates/security/kernel-devel-3.10.0-514.26.1.el7.x86_64.rpmrpm2cpio kernel-devel-3.10.0-514.26.1.el7.x86_64.rpm > test.cpiocpio -i --make-directories < test.cpiocp usr/src/kernels/3.10.0-514.26.1.el7.x86_64/Module.symvers /usr/src/kernels/linux-3.10.0-514.26.1.el7.x86_64

6、编译netmap

cd /root/projects/netmap/LINUX./configure --kernel-sources=/usr/src/kernels/linux-3.10.0-514.26.1.el7.x86_64 --kernel-dir=/usr/src/kernels/linux-3.10.0-514.26.1.el7.x86_64

如果报错,按照提示操作

cd /usr/src/kernels/linux-3.10.0-514.26.1.el7.x86_64make oldconfigmake modules_preparecd -./configure --kernel-sources=/usr/src/kernels/linux-3.10.0-514.26.1.el7.x86_64 --kernel-dir=/usr/src/kernels/linux-3.10.0-514.26.1.el7.x86_64
编译
make

7、替换原来的网卡驱动
rmmod e1000insmod netmap.koinsmod e1000/e1000.kolsmod | grep e1000

8、测试

cd /root/projects/netmap/LINUX/build-apps/pkt-gen
收包测试(ens33就是网卡的名字,同eth0):

./pkt-gen -i ens33 -f rx
发包测试:

./pkt-gen -i ens33 -f tx -l 64