嵌入式驱动模块的加载与卸载

最近学习正点原子嵌入式驱动模块加载与卸载的时候,使用命令:modprobe chrdevbase.ko 出现

hrdevbase: version magic '4.1.15 SMP preempt mod_unload modversions ARMv6 p2v8 ’ should be '4.1.15 SMP preempt mod_unload modversions ARMv7 p2v8 ’

在这里插入图片描述

问题原因:这种报错是内核版本和模块版本不一致,所以导致加载不成功
温馨提示:这里的内核版本不是ubuntu的内核版本,所以不要花时间给虚拟机里面的ubuntu降版本。
解决步骤
1 将nfs和tftpboot里面的设备树和zImage都换成同一个源码编译出来的设备树和zImage。我这里用的是教程里的。推荐大家用10、开发板教程对应的uboot和linux源码
嵌入式驱动模块的加载与卸载_第1张图片
嵌入式驱动模块的加载与卸载_第2张图片
嵌入式驱动模块的加载与卸载_第3张图片
嵌入式驱动模块的加载与卸载_第4张图片
2 修改编译驱动配置路径也要是上面源码编译的路径。保证开发板的内核和编译驱动的版本一致
嵌入式驱动模块的加载与卸载_第5张图片
嵌入式驱动模块的加载与卸载_第6张图片
3 将编译好的ko文件复制到/lib/modules/4.1.15路径下,依次执行

depmod
modprobe chrdevbase.ko

如果出现:Disabling lock debugging due to kernel taint
执行:lsmod即可
嵌入式驱动模块的加载与卸载_第7张图片
实际上根据提示是没有加载module license导致的,因此可以再程序下面加入license即可。
嵌入式驱动模块的加载与卸载_第8张图片

你可能感兴趣的:(嵌入式Linux学习,linux,嵌入式硬件)