开发板上Linux安装驱动出现loading out-of-tree module taints kernel

风筝丶
领域专家: 嵌入式与硬件开发技术领域
2017-06-12 05:22:07
开发板是jz2440开发板(arm9)
Linux Kernel是4.8.17版本
虚拟机上是16.04的ubuntu,
busybox是1.26版本
gcc是4.4.3版本
制作好跟文件后,开发板设置为从服务器上启动根文件.
安装驱动程序是发现:
/ # ls
bin first_drv.ko linuxrc root tmp
dev firstdrvtest mnt sbin usr
etc lib proc sys
/ # insmod first_drv.ko
first_drv: loading out-of-tree module taints kernel.
/ # lsmod
lsmod: can't open '/proc/modules': No such file or directory
/ # random: crng init done
/ # insmod first_drv.ko
insmod: can't insert 'first_drv.ko': File exists
/ #

安装不了驱动程序啊,为什么啊?
值得一提的是,为了让busybox编译成功,我把:
Linux System Utilities->blkdiscard
Linux System Utilities->nsenter
Coreutils->sync
在make menuconfig时都取消选中了.
求助大佬了

驱动程序部分如下:

static struct file_operations first_drv_fops = {
.owner = THIS_MODULE, /* 这是一个宏,推向编译模块时自动创建的__this_module变量 */
.open = first_drv_open,
.write = first_drv_write,
};


int major;
static int first_drv_init(void)
{
major = register_chrdev(0, "first_drv", &first_drv_fops); // 注册, 告诉内核

firstdrv_class = class_create(THIS_MODULE, "firstdrv");

//firstdrv_class_dev = class_device_create(firstdrv_class, NULL, MKDEV(major, 0), NULL, "xyz"); /* /dev/xyz */
firstdrv_class_dev = device_create(firstdrv_class, NULL, MKDEV(major, 0), NULL, "xyz"); /* /dev/xyz */

gpfcon = (volatile unsigned long *)ioremap(0x56000050, 16);
gpfdat = gpfcon + 1;

return 0;
}

static void first_drv_exit(void)
{
unregister_chrdev(major, "first_drv"); // 卸载

//class_device_unregister(firstdrv_class_dev);
device_destroy(firstdrv_class_dev,MKDEV(major, 0));
class_destroy(firstdrv_class);
iounmap(gpfcon);
}

module_init(first_drv_init);
module_exit(first_drv_exit);


MODULE_LICENSE("GPL");
...全文
6543 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
风筝丶 2017-06-14
  • 打赏
  • 举报
回复
引用 5 楼 jklinux 的回复:
试试,我也不确定…………
谢谢回帖,我把它写在这了 http://blog.csdn.net/guet_kite/article/details/73175991
风筝丶 2017-06-13
  • 打赏
  • 举报
回复
引用 1 楼 jklinux 的回复:
first_drv.ko 已经加载成功了,可以lsmod查看
loading out-of-tree module taints kernel 这个与你内核编译时的配置有关,但这里不会有影响

lsmod: can't open '/proc/modules': No such file or directory这个问题是你没有指定 /proc目录的文件系统格式有关或者没有/proc目录:
" mount -t proc none /proc "//放到系统启动脚本/etc/init.d/rcS里,

感谢回帖,之前insmod不成功,是因为:cann't run rcS,加上执行权限就好了
不过即使说的是驱动加载成功了,lsmod能看到刚刚安装的驱动,但是在insmod照样出现:loading out-of-tree module taints kernel
是内核配置那里不对吗?是哪里呢?能否说下?
附上一张配置Kernel时的部分menuconfig:
jklinux 2017-06-13
  • 打赏
  • 举报
回复
first_drv.ko 已经加载成功了,可以lsmod查看 loading out-of-tree module taints kernel 这个与你内核编译时的配置有关,但这里不会有影响 lsmod: can't open '/proc/modules': No such file or directory这个问题是你没有指定 /proc目录的文件系统格式有关或者没有/proc目录: " mount -t proc none /proc "//放到系统启动脚本/etc/init.d/rcS里,
jklinux 2017-06-13
  • 打赏
  • 举报
回复
试试,我也不确定…………
风筝丶 2017-06-13
  • 打赏
  • 举报
回复
引用 2 楼 Guet_Kite 的回复:
[quote=引用 1 楼 jklinux 的回复:] first_drv.ko 已经加载成功了,可以lsmod查看 loading out-of-tree module taints kernel 这个与你内核编译时的配置有关,但这里不会有影响 lsmod: can't open '/proc/modules': No such file or directory这个问题是你没有指定 /proc目录的文件系统格式有关或者没有/proc目录: " mount -t proc none /proc "//放到系统启动脚本/etc/init.d/rcS里,
感谢回帖,之前insmod不成功,是因为:cann't run rcS,加上执行权限就好了 不过即使说的是驱动加载成功了,lsmod能看到刚刚安装的驱动,但是在insmod照样出现:loading out-of-tree module taints kernel 是内核配置那里不对吗?是哪里呢?能否说下? 附上一张配置Kernel时的部分menuconfig: [/quote] 我百度了下,好像是和CONFIG_MODULE_SIG这个配置有关 Enable loadable module support这个应该是支持模块的配置,真的要去掉吗????
jklinux 2017-06-13
  • 打赏
  • 举报
回复
引用 2 楼 Guet_Kite 的回复:
[quote=引用 1 楼 jklinux 的回复:] first_drv.ko 已经加载成功了,可以lsmod查看 loading out-of-tree module taints kernel 这个与你内核编译时的配置有关,但这里不会有影响 lsmod: can't open '/proc/modules': No such file or directory这个问题是你没有指定 /proc目录的文件系统格式有关或者没有/proc目录: " mount -t proc none /proc "//放到系统启动脚本/etc/init.d/rcS里,
感谢回帖,之前insmod不成功,是因为:cann't run rcS,加上执行权限就好了 不过即使说的是驱动加载成功了,lsmod能看到刚刚安装的驱动,但是在insmod照样出现:loading out-of-tree module taints kernel 是内核配置那里不对吗?是哪里呢?能否说下? 附上一张配置Kernel时的部分menuconfig: [/quote] make menuconfig
  • Enable loadable module support --->
  • [ ] Module versioning support [ ] Source checksum for all modules 取消这两项试试

1,324

社区成员

发帖
与我相关
我的任务
社区描述
主要是开发驱动技术
社区管理员
  • 驱动程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧