6ull加载linux驱动模块失败解决方法

目录
  • 0x01 加载驱动模块失败
  • 0x02 解决方法
  • 总结

0x01 加载驱动模块失败

加载驱动失败描述信息如下,错误信息提示板卡中运行的 linux 内核版本是 4.1.15-g49efdaa ,架构是 ARMv7 ;而编译驱动使用的内核源码版本为 4.1.15 ,架构是 ARMv6 。说明编译驱动使用的内核版本名和架构与板卡中运行的均不一致。

root@ALIENTEK-IMX6U:~/get# insmod led.ko
[ 1634.442887] led: version magic '4.1.15 SMP preempt mod_unload modversions ARMv6 p2v8 ' should be '4.1.15-g49efdaa SMP preempt mod_unload modversions ARMv7 p2v8 '
insmod: ERROR: could not insert module led.ko: Invalid module format

0x02 解决方法

有两种解决方法:
(1) 重新编译内核、设备树并烧录到板卡中。
(2) 更改主机中的内核配置信息,使其与板卡中的一致。

重新烧录内核比较麻烦,这里使用方法二

1、在板卡终端中输入命令uname -runame -p查看板卡所运行的内核的版本和架构信息。

root@ALIENTEK-IMX6U:~/get# uname -r
4.1.15-g49efdaa
root@ALIENTEK-IMX6U:~/get# uname -p
armv7l

说明板卡中运行的 linux 内核版本为4.1.15-g49efdaa,处理器架构为ARMv7

2、进入主机中驱动模块所使用的 linux 内核的根目录,执行 make menuconfig 启动 linux 内核图形化配置界面(不能使用menuconfig的可以百度去安装相应依赖库)

如下图所示,进入System Type选项:

然后进入Multiple platform selection选项:

然后在下图的界面中取消第一条ARMv6 based platforms(ARM11)前面的*号(选中后按空格即可取消)

取消完毕后保存、退出,这样就把内核支持的架构改为了 ARMv7 。
配置完 menuconfig 后不要再输入其他的配置内核的命令,不然会冲刷掉之前的配置。

3、打开内核根目录中的 Makefile ,在EXTRAVERSION变量后添加你板卡中运行的linux内核版本号的后半部分,比如我的内核后半部分就是 -g49efdaa

更改完后保存,在 linux 内核根目录下执行make -j12重新编译内核。
内核编译完毕后重新编译驱动模块。

驱动模块编译完毕后用 NFS 下载到板卡中,输入modinfo [驱动模块名]查看驱动模块信息:

root@ALIENTEK-IMX6U:~/get# modinfo led.ko
filename:       /home/root/get/led.ko
author:         zuozhongkai
license:        GPL
srcversion:     597E1DDC8A372707B8FD0DE
depends:
vermagic:       4.1.15-g49efdaa SMP preempt mod_unload modversions ARMv7 p2v8

可见vermagic一行中显示的驱动模块所属的内核版本和处理器架构与板卡中的内核信息一致,驱动模块可以成功加载。

root@ALIENTEK-IMX6U:~/get# uname -r
4.1.15-g49efdaa
root@ALIENTEK-IMX6U:~/get# uname -p
armv7l

总结

到此这篇关于6ull加载linux驱动模块失败解决方法的文章就介绍到这了,更多相关加载linux驱动模块失败内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Linux内核设备驱动之Linux内核模块加载机制笔记整理

    #include <linux/moduleparam.h> 1. 模块参数 在驱动定义变量 static int num = 0; //当加载模块不指定num的值时则为0 module_param(变量名, 类型, 权限);类型: byte, int, uint, short, ushort, long, ulong, bool, charp,权限不能有写的权限 传参数: insmod test.ko 变量名1=值1  变量名2=值2 module_param的调用关系如下: #define

  • 6ull加载linux驱动模块失败解决方法

    目录 0x01 加载驱动模块失败 0x02 解决方法 总结 0x01 加载驱动模块失败 加载驱动失败描述信息如下,错误信息提示板卡中运行的 linux 内核版本是 4.1.15-g49efdaa ,架构是 ARMv7 :而编译驱动使用的内核源码版本为 4.1.15 ,架构是 ARMv6 .说明编译驱动使用的内核版本名和架构与板卡中运行的均不一致. root@ALIENTEK-IMX6U:~/get# insmod led.ko [ 1634.442887] led: version magic

  • jQuery Easyui使用(二)之可折叠面板动态加载无效果的解决方法

    在上篇文章给大家介绍了jQuery Easyui使用(一)之可折叠面板的布局手风琴菜单 先上代码: <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title&g

  • easyui datagrid 大数据加载效率慢,优化解决方法(推荐)

    在使用easyui datagrid途中发现加载数据的效率真的不是一般的差.经测试IE8加载300条数据就感觉明显的慢了,加载2000条数据就另人崩溃用时差不多60秒,就算在google浏览器测试结果也快不了几秒. 平时听闻easyui datagrid效率底下,自己测试才发现真是使人无法忍受. 笔者只好百度,google解决方法,发现一篇文章说改 //1.3.3版本是这样的,其它版本也是这句代码 $(_1e0).html(_1e4.join("")); 改为: $(_1e0)[0].

  • React Native 真机断点调试+跨域资源加载出错问题的解决方法

    写在前面 闲来无事,折腾了一下React Native,相比之前,开发体验好了不少.但在真机断点调试那里遇到了跨域资源加载出错的问题,一番探索总算解决,目测是RN新版本调试服务的bug. 遇到类似问题的同学应该不少,这里做下记录,有需要的可以参考下. 如何断点调试 首先,在真机上加载运行RN应用(过程略). 然后,摇动手机,弹出开发菜单,选择"Debug JS Remotely". chrome会自动打开调试界面,地址是 http://localhost:8081/debugger-u

  • 基于vue 动态加载图片src的解决方法

    好久没更博了,最近也不知道在忙啥,反正就是感觉挺忙的,在群里看到陆陆续续有刚入vue小伙伴问vue动态加载图片总是404的状况,这篇就简单的说明为什么会出现以及解决办法有哪些. 首先先说明下vue-cli的assets和static的两个文件的区别,因为这对你理解后面的解决办法会有所帮助 assets:在项目编译的过程中会被webpack处理解析为模块依赖,只支持相对路径的形式,如< img src="./logo.png">和background:url(./logo.p

  • 基于webpack-hot-middleware热加载相关错误的解决方法

    错误1:找不到__webpack_hmr GET http://127.0.0.1/__webpack_hmr 404 (Not Found) 在webpack的entry配置添加引用路径'webpack-hot-middleware/client?path=/__webpack_hmr&timeout=10000&reload=true',相关的参数最好不要省略,否则会出现无法自动刷新的问题. 处理脚本如下: // 准备webpack配置信息 let hotMiddlewareScrip

  • vue页面加载闪烁问题的解决方法

    v-if 和 v-show 的区别 v-if只会在满足条件时才会编译,而v-show不管是否满足条件始终会编译,v-show的显示与隐藏只是简单的切换CSS的display属性. 也就是说,在使用v-if时,若值为false,那么页面将不会有这个html标签生成.而v-show:不论其值是false还是true,html元素都会存在,只是简单的切换css的display属性. 使用场景 一般来说,v-if 有更高的切换消耗而 v-show 有更高的初始渲染消耗.因此,如果需要频繁切换 v-sho

  • java报错:找不到或无法加载主类的解决方法简单粗暴

    当我们在windows系统下安装完jdk时,测试案例HelloWorld:运行java命令时报错:找不到或无法加载主类 解决方法: 1.首先检查是否编译通过,生成了.class字节码文件 如果没有生成.class字节码文件,则需要执行javac编译命令编译源文件. 执行命令javac H:\javatest\HelloWorld.java(javac表示jdk内置编译命令:H:\javatest\HelloWorld.java表示源文件所在路径,这里我的测试源文件是位于H盘下,自己决定) 2.如

  • 微信小程序scroll-view实现上拉加载数据重复的解决方法

    微信小程序的 scroll-view 上拉加载更多的BUG(数据会多加载,甚至有重复数据). 问题描述:上拉一次,会多次触发触底函数 onReachBottom():换成自定义加载更多函数, 例如 loadMore(), 问题依旧存在. 生产环境:调试基础库 目前最新版本1.9.94 依旧存在这个问题. 解决方法:加状态控制变量,限制 触底函数/加载更多函数 的触发条件. 页面上拉加载更多后,看下图,有重复数据 通用前端wxml代码 search.wxml <!--pages/shop/sear

  • Visual studio 2017添加引用时报错未能正确加载ReferenceManagerPackage包的解决方法

    最近新装了2017,开始前几天还好,可是最近在添加引用时,报错 --------------------------- Microsoft Visual Studio --------------------------- 未能正确加载"ReferenceManagerPackage"包. 此问题可能是因配置更改或安装另一个扩展导致的.可通过查看文件"C:\Users\Administrator\AppData\Roaming\Microsoft\VisualStudio\1

随机推荐