最近学习正点原子嵌入式驱动模块加载与卸载的时候,使用命令: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源码
2 修改编译驱动配置路径也要是上面源码编译的路径。保证开发板的内核和编译驱动的版本一致
3 将编译好的ko文件复制到/lib/modules/4.1.15
路径下,依次执行
depmod
modprobe chrdevbase.ko
如果出现:Disabling lock debugging due to kernel taint
执行:lsmod
即可
实际上根据提示是没有加载module license导致的,因此可以再程序下面加入license即可。