关于Netmap打patch时报错的解决方法二

12 篇文章 1 订阅

还是关于打patch的问题。

这次我还是编译ixgbe的驱动,可make的时候总提示 “/home/netmap/LINUX/ixgbe/ixgbe_main.c:1530:39: 错误:‘budget’未声明(在此函数内第一次使用)” 的问题。

没办法只能把ixgbe_main.c和patch文件一行一行对了,这一对还真发现了大问题。

默认的patch和实际的系统驱动对不上,在ixgbe_main.c的函数ixgbe_alloc_rx_buffers中没有“budget”,而"budget"应该在函数ixgbe_clean_rx_irq中。

找一个比较符合的patch进行修改,或者干脆直接把符合的patch改名成默认寻找的patch。

不管怎么样总算是能够编过了。


接下来又遇到一个新的问题,在使用“insmod ixgbe/ixgbe.ko”时,报如下错误:
"insmod: error inserting 'ixgbe.ko': -1 Unknown symbol in module"

这个就头痛了,使用dmesg -c将dmesg清空。再次使用“insmod ixgbe/ixgbe.ko”,用dmesg查看,错误如下:

[  903.973212] ixgbe: Unknown symbol mdio_mii_ioctl (err 0)
[  903.973564] ixgbe: Unknown symbol mdio45_probe (err 0)
又查了半天,下面是google找到的解决方法:

It is not a build problem: the ixgbe module depends on other modules, which you 
can find with 'modinfo ixgbe/ixgbe.ko | grep ^depends:'. Since we are using 
insmod, we need to load the dependencies by ourselves:

modprobe mdio
modprobe ptp
modprobe dca
insmod ./netmap.ko
insmod ./ixgbe/ixgbe.ko
使用
modinfo ixgbe/ixgbe.ko | grep ^depends:
可以查看ixgbe.so的所有依赖,其中就有mdio, ptp, dca

按照上面的命令使用modprobe把mdio, ptp, dca依次加上

再用

insmod ./netmap.ko
insmod ./ixgbe/ixgbe.ko
就可以了。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

高晓伟_Steven

相逢即是有缘,动力源于金钱。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值