我在之前的篇文章中提到过Natmap执行完./configure之后,执行make命令时会因为patch的问题导致不能生成驱动文件。

这里写一下解决方法:

在执行完make后如果不成功一般都会报如下错误:

cp -Rp /root/rpmbuild/BUILD/kernel-3.10.0-229.el7/linux-3.10.0-229.el7.centos.x86_64/drivers/net/ethernet/intel/ixgbe ixgbe
patch --posix --quiet --force -p1 < patches/diff--ixgbe--31300--99999;
3 out of 8 hunks FAILED -- saving rejects to file ixgbe/ixgbe_main.c.rej
make: *** [get-ixgbe] Error 1

这是说你系统驱动里的ixgbe_main.c文件在打patch时某些行与patch所给的对不上了。

可以通过查看“netmap/LINUX/对应驱动/”目录下的*_main.c_rej查看是哪些位置不对。

我这里就是查看“netmap/LINUX/ixgbe/ixgbe_main.c.rej”文件。

根据这个文件将对应的*_main.c文件补充完整。

我这时就是将ixgbe_main.c文件补充完整。

这时的驱动文件就是我们打完patch以后的文件了,也就是make时需要的最终文件。

现在进行最关键的一步

将ixgbe_main.c拷贝到系统源码目录对应的驱动下,我这里是在源码目录下的“/usr/src/kernels/linux-3.10.0-327.el7.centos.x86_64/drivers/net/ethernet/intel/ixgb/”目录下。

然后将netmap/LINUX/patches/目录下对应的patch文件内容清空。

我这里就是将patches/diff--ixgbe--31300--99999这个文件清空。

好了,现在再用make命令编译就不会报patch的错,而且patch也正常打上了。

Logo

更多推荐