十分钟搞定CENTOS7 netmap安装

netmap是作为Linux的一个内核模块存在的,使用netmap需要我们拿到netmap的源代码并结合Linux内核源代码进行编译的。

安装kernel头文件

一般我们不需要获取所有的linux代码,只需要获取linux的头文件即可。此处需要注意的是我们选取的linux系统的版本一定要和宿主机系统完全一致的版本才可以。
例如我们实验机器的系统版本如下:
十分钟搞定CENTOS7 netmap安装
使用谷歌搜索圈出的字符串可以找到
这个文件安装后就是我们要找的头文件。将该文件下载安装到机器上。
rpm -ivh kernel-devel-3.10.0-327.el7.x86_64.rpm
命令运行完kernel会安装到**/usr/src/kernels/**目录下。
十分钟搞定CENTOS7 netmap安装

获取netmap源代码

wget https://github.com/luigirizzo/netmap/archive/master.zip
解压文件:unzip master.zip
十分钟搞定CENTOS7 netmap安装

配置netmap

./configure --drivers=ixgbe --kernel-sources=/usr/src/kernels/3.10.0-327.el7.x86_64 --kernel-dir=/usr/src/kernels/3.10.0-327.el7.x86_64/
在执行这个命令过程中,出现报错情况,
十分钟搞定CENTOS7 netmap安装
根据提示,查看了config.log,发现大量的报错。应该是gcc不匹配的问题
十分钟搞定CENTOS7 netmap安装
打开configue脚本,搜索packed-not-aligned,找到那一行将内容删掉,再次执行,就可以成功了。当然升级GCC到比较新的版本应该也是可以的,centos7默认的版本是4.6有点过时。

make编译netmap

安装netmap和ixgbe

insmod netmap.ko
如果此时安装ixgbe,有可能报错,如下:
十分钟搞定CENTOS7 netmap安装
出错的原因是该模块依赖的一些模块没有被加载,查看该模块依赖的模块的办法是:
十分钟搞定CENTOS7 netmap安装
使用modprobe命令安装依赖的模块
十分钟搞定CENTOS7 netmap安装
再次运行
insmod ixgbe/ixgbe.ko就可以成功安装了
enjoy