关于 insmod Unknown symbol error

来源:互联网 发布:淘宝店铺曼哈顿直通车 编辑:程序博客网 时间:2024/05/21 10:41

分享是一种快乐。
好久没有写字ko模块驱动,今天写了一个简单的确nand驱动,在做成KO模块,insmod时,出现了下面的问题:

micronlld_nand: module license 'unspecified' taints kernel.Disabling lock debugging due to kernel taintmicronlld_nand: Unknown symbol devm_kmalloc (err 0)micronlld_nand: Unknown symbol platform_driver_unregister (err 0)micronlld_nand: Unknown symbol mtd_device_parse_register (err 0)micronlld_nand: Unknown symbol platform_get_resource (err 0)micronlld_nand: Unknown symbol __platform_driver_register (err 0)

明明编译到内核是没有问题啊,怎么做成KO后,加载会出现上面的问题呢?
而且你在proc/kallsyms文件中是可以找到上面的这几个函数的,就说明在外部是可以调用的。

后来发现,我的驱动中没有加入下面的一句话:

MODULE_LICENSE("GPL");

这以谓着,我的驱动在没有遵循GPL协义下,如果我使用了内核中的函数,是不能单独加载的。以后写驱动先加上这一句啊,可不能再出这么低级的错误了。

0 0