尽pipeEXPORT_SYMBOL模块插入“模块中的未知符号”

我正在编译并插入r8169 realtek以太网驱动程序。 我的内核版本是

ebin@sony:~$ uname -r 4.2.0-rc3-custom 

我有我的本地磁盘,用于安装当前的内核相同的完整源代码。 当我运行make -C /lib/modules/ uname -r /build M= pwd modules时,模块编译成功
但是当我插入模块,它显示

 ebin@sony:~/linux_testing/linux-stable/drivers/net/ethernet/realtek$ sudo insmod r8169.ko insmod: ERROR: could not insert module r8169.ko: Unknown symbol in module ebin@sony:~/linux_testing/linux-stable/drivers/net/ethernet/realtek$ dmesg [16717.311216] r8169: Unknown symbol mii_ethtool_gset (err 0) 

当我通过消息来源,我发现

 EXPORT_SYMBOL(mii_ethtool_gset); 

已经在mii.c导出了。 所以我想这不是未标记的问题。 让我知道如果我必须提供任何其他信息。 请帮忙。

Solutions Collecting From Web of "尽pipeEXPORT_SYMBOL模块插入“模块中的未知符号”"

正如Vadim Stupakov在评论中所说,将modulee.symvers文件放在模块源目录中解决了我的问题。 从这个文档

 modulee versioning is enabled by the CONFIG_MODVERSIONS tag, and is used as a simple ABI consistency check. A CRC value of the full prototype for an exported symbol is created. When a module is loaded/used, the CRC values contained in the kernel are compared with similar values in the module. if they are not equal, the kernel refuses to load the module. modulee.symvers contains a list of all exported symbols from a kernel build. 

根据我的理解, modulee.symvers是在make modulesmake modules 。 我错过了那个文件。 当我将相应的modulee.symvers放入模块构建目录中时,模块按我的预期工作,没有任何错误。