执行 insmod hello_drv.ko 安装失败,提示找不到 __class_create、device_create 等符号
[root@imx6ull:/mnt]# insmod hello_drv.ko
[ 8515.802796] hello_drv: Unknown symbol __class_create (err 0)
[ 8515.810520] hello_drv: Unknown symbol class_destroy (err 0)
[ 8515.829999] hello_drv: Unknown symbol device_create (err 0)
[ 8515.841301] hello_drv: Unknown symbol device_destroy (err 0)
insmod: ERROR: could not insert module hello_drv.ko: Unknown symbol in module
但在模块目录下 lib/modules/4.9.88/ 的ko文件能找到对应符号。
通过对比发现,在驱动文件中,忘记对模块进行授权声明导致,驱动中添加以下一行即可:
MODULE_LICENSE("GPL");