今天在加载igb_uio问题时,报了一个不能insert的错误,信息如下:
#insmod igb_uio.ko
insmod: ERROR: could not insert module igb_uio.ko: Unknown
dmesg显示几个函数找不到符号信息
[13327869.316584] igb_uio: Unknown symbol __uio_register_device (err 0)
[13327869.316666] igb_uio: Unknown symbol uio_event_notify (err 0)
[13327869.316710] igb_uio: Unknown symbol uio_unregister_device (err 0)
有2种排查方式:
方法一: 查看缺失的符号信息在哪个驱动模块中,可以看到在uio模块中,加载即可。
#cat /lib/modules/$(uname -r)/build/Module.symvers | grep __uio_register_device
0x312000ca __uio_register_device drivers/uio/uio EXPORT_SYMBOL_GPL
方法二: 查看igb_uio模块依赖哪些模块,如下所示,依赖uio模块,查看缺失后,可以加载即可。
#modinfo igb_uio.ko | grep dep
depends: uio