出现错误的原因:在编译驱动出现这种ERROR"xxx函数" [***.ko] undefined!错误原因:一般是xxx函数找不到,或者说没定义,驱动编译的时候相关的函数没有找到!
有以下解决方法:
- 先找到调用报错信息中的"xxx函数”的.c文件,然后找定义的“xxx函数“的头文件没包含或者是路径不对,或者添加EXPORT_SYMBOL或者EXPORT_SYMBOL_GPL(xx函数)导出到内核符号表。
- 定义相关函数或者用EXPORT_SYMBOL(xxx函数)的.c文件的当前路径的Makefile里面的编译规则没有加上相关的.o文件的依赖。
- 同路径的Makfile的编译规则是obj-y或者是obj-m而在make ARCH=arm menuconfig时没有选择对应的编译成y或者m,导致没有编译进去,xx.c调用此.c定义的函数找不到。