问题:如题;主要出现在内核版本在2.6.37以下的系统,内核模块可以编译和插入,但是绑定网卡总是失败(message中给出的trace是说中断问题);
后查找一些资源并对比了16的相关实现代码,发现其中有个标志送的有问题,修改后就可以正常绑定并且测试也正常,但还必须插入dca内核模块,方可运作,否则一直报io error。
具体修改如下(17和18中的代码把一部分挪到了一个叫igbuio_pci_open的地方,注意中间部分;在igbuio_pci_open开始部分,直接reuturn 0):
source file: igb_uio.c
function: igbuio_pci_probe
err = sysfs_create_group(&dev->dev.kobj, &dev_attr_grp);
if (err != 0)
goto fail_release_iomem;
udev->mode = RTEINTRMODENONE;
#if LINUXVERSIONCODE < KERNELVERSION(2, 6, 37)
udev->info.irq = -2;
#else
udev->info.irq = 0;
#endif
/* register uio driver */
err = uio_register_device(&dev->dev, &udev->info);
原文地址:http://blog.51cto.com/13345387/2089329
时间: 2024-10-10 20:44:00