【I.MX6ULL】6ull 加载 linux 驱动模块失败
文章目录
- @[toc]
- 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 -r
和uname -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
【I.MX6ULL】6ull 加载 linux 驱动模块失败相关推荐
- 加载linux驱动模块时,终端提示一堆内存错误
一.问题描述 在写好一个linux驱动模块,在开发板上运行的时候,出现以下提示: WARNING: CPU: 0 PID: 100 at fs/sysfs/dir.c:31 sysfs_warn_du ...
- linux直接运行程序加载动态库失败,扣丁学堂Linux培训详解程序运行时加载动态库失败解决方法...
今天扣丁学堂Linux培训老师给大家介绍一下关于Linux程序运行时加载动态库失败的解决方法,希望对同学们学习有所帮助,下面我们一起来看一下吧. Linux下不能加载动态库问题 当出现下边异常情况 . ...
- Linux驱动 | 加载.ko驱动模块的两种方法(insmod与modprobe)
文章目录 1.加载驱动模块 2.查看已加载的驱动模块列表 3.卸载驱动模块 假设要加载的驱动程序模块名为SHT21.ko 1.加载驱动模块 方法一 进入SHT21.ko驱动模块文件所在的目录,然后直接 ...
- 新中新 金龙一卡通 TPE_StartTPE 加载授权文件失败 JAVA
用JAVA的JNA调用TPE.dll文件的TPE_StartTPE接口的时候一直提示加载授权文件失败,问他们技术,他们说放项目根目录,一直想着根目录了,调试了好几天都不行.其实不然,说错了,还是另外一 ...
- cad2006激活未找到html文件,解决cad提示“cad加载自定义文件失败 未找到acad”的方法...
下图所示的提示界面大家是不是觉得很熟悉呢?这个错误提示是出现在autocad程序中的错误之一.相比无法安装等情况这个故障的解决方法比较简单,首先我们来看看具体故障:有用户在双击打开Autocad的时候 ...
- WebView监听网页加载成功与失败
问题说明: 现在好多APP在应用中会内嵌webview,好多时候需要监听webview是否加载成功与失败.当加载成功的时候会回调WebViewClient的onPageFinished方法:当加载失败 ...
- android xml 加载错误提示,加载uixml文件失败 打开wps时显示“加载XML文件失败1
打开wps时显示"加载XML文件失败." 打开wps时显示"加载XML文件失败1 关闭所有打开的Word文档: 开始 → 运行 → 粘贴上面复制的命令 → 确定. 在打开 ...
- 2020.4.23工作记录————Regsvr32加载控件失败:“请确保该二进制存储在指定路径中。。。”
工作记录----Regsvr32加载控件失败: 之前的OCX控件今天我因为工作需要又重新写了个新的,跟之前不同的是这次的控件链接了第三方的动态库,但是在OCX控件生成完成后我使用管理员身份运行cmd对 ...
- 64位 regsrv win10_Win10手动注册注册表提示regsvr32加载控件失败解决方案
regsvr32加载控件失败怎么办?当我们在使用计算机时,有时候会发现有些注册表没有注册,需要手动进行注册,但是在cmd命令中,输入命令regsvr32 xx.dll,运行提示模块数据加载失败,这怎么 ...
- 加载动态库失败(loadLibrary返回为空)的几种解决办法
如果遇到了以下几种问题,也许可以在本文找到解决方法: 一.版本更新后,原本正常的功能突然无法使用了: 二.VS编译的时候,弹出"xxx(win32):已加载"xx.dll" ...
最新文章
- 48.聊一聊constexpr变量
- 刷新后 页面 保持滚动条位置
- H - Square Card HDU - 7063
- gson-2.2.api简单
- Android App图片轮播效果的组件化
- 算法分类整理+模板①:矩阵快速幂
- python turtle 椭圆_【python turtle如何画椭圆】
- 神经网络仿真实验matlab,神经网络及其matlab实现
- java web 留言板设计_JSP+Servlet+JavaBean传统方式实现简易留言板制作(注册、登录、留言)...
- ArcMap进行标记符号制作
- 重装系统,只需一行命令,一键激活win10家庭版。清理电脑缓存垃圾。
- 石头剪刀布程序流程图_民间传统体育游戏 | 石头剪刀布
- 网关的作用(两个内网主机通信原理)
- Roguelike随机地下城 | 二、设置门和优化最终房间的选择
- Crack Theory for IPA
- Leetcode Hot-100
- 大数据的分析技术,主要有哪些?
- 获取crumbIssuer
- java 排名算法_排行榜的算法
- bummed out