社区
Linux_Kernel
帖子详情
怎么使ko文件的version magic通过?
happyzeng79
2011-06-09 08:34:06
小弟我碰到一郁闷问题,在虚拟机上安装了一个内核版本是 2.6.35.6.PAE的linux系统,
在该系统上编译好了一个.ko的驱动文件,把该ko驱动文件复制到一目标机上,该目标机器上的内核版本是2.6.35.6,
少了一个PAE,奇怪的是这两个系统均是使用同一光盘安装的.所以在目标机上insmod my.ko文件不成功,
报告错误 version magic error ,请问各位有什么好方法解决这问题吗?
...全文
1716
6
打赏
收藏
怎么使ko文件的version magic通过?
小弟我碰到一郁闷问题,在虚拟机上安装了一个内核版本是 2.6.35.6.PAE的linux系统, 在该系统上编译好了一个.ko的驱动文件,把该ko驱动文件复制到一目标机上,该目标机器上的内核版本是2.6.35.6, 少了一个PAE,奇怪的是这两个系统均是使用同一光盘安装的.所以在目标机上insmod my.ko文件不成功, 报告错误 version magic error ,请问各位有什么好方法解决这问题吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
fuhao270
2011-09-23
打赏
举报
回复
请问如何把编译好的KO文件下载的目标机(嵌入式设备)中,可不可以下到FLASH里面?
happyzeng79
2011-06-12
打赏
举报
回复
谢谢 lanyang123456兄的热心帮忙了.
happyzeng79
2011-06-12
打赏
举报
回复
[Quote=引用 2 楼 lanyang123456 的回复:]
目标机?指的是嵌入式设备吗?
在新的系统下重新编译模块,再加载该模块
或者 insmod -f my.ko
[/Quote]
不是嵌入式设备了。我是使用了我的电脑,在电脑上通过虚拟机安装了一个linux系统,安装好后,内核版本显示大致是:2.6.35.6.PAE 这样了,目标机是另外一台电脑,我使用同样的安装光盘,通过usb光驱安装了系统,安装过程比较奇怪的是,竟然自动的只给我进行了最小化的安装,安装后没有图形界面,只有文字界面模式,当然也没有安装开发工具了,然后显示的内核版本是: 2.6.35.6了,少了 PAE 的字样.所以我也不能在新的系统下编译模块. 然后也使用 insmod -f my.ko来加载驱动模块也不成功,还是会进行versiong magic.按道理,使用了 -f 强制加载理应成功的。感觉怪事多多。
happyzeng79
2011-06-12
打赏
举报
回复
[Quote=引用 1 楼 li32768 的回复:]
编译驱动时候内核路径指定为目标机的那个内核代码,就是指定交叉编译的内核路径。在Linux内核源码中,有个./include/linux/vermagic.h的文件中有定义幻数
[/Quote]
谢谢li32768兄,我找了./include/linux/vermagic.h此头文件,然后根据此头文件的所包含的一头文件(绝对路径): /usr/src/kernerls目录/include/generated/utsrelease.h,修改这个头文件所设定的版本号即可了。
翔云123456
2011-06-11
打赏
举报
回复
目标机?指的是嵌入式设备吗?
在新的系统下重新编译模块,再加载该模块
或者 insmod -f my.ko
li32768
2011-06-11
打赏
举报
回复
编译驱动时候内核路径指定为目标机的那个内核代码,就是指定交叉编译的内核路径。在Linux内核源码中,有个./include/linux/vermagic.h的文件中有定义幻数
笔记整理—linux驱动开发部分(2)模块信息与编译
整理一下学习的内容,个人观点可能存在错误。本章介绍了一个驱动大概是如何组成的,以及如何进行编译的,这只是其中的一个部分,驱动开发是一个很庞大的过程。
别再重装系统了!记一次Ubuntu 20.04下RM500U-CN 5G模块驱动安装的“踩坑”与“填坑”实录
本文详细记录了在Ubuntu 20.04系统下安装RM500U-CN 5G模块驱动的完整过程,包括硬件识别问题、驱动编译技巧、模块加载方法以及跨设备兼容性解决方案。通过实战经验分享,帮助开发者避免常见陷阱,提升Linux驱动安装效率。
编译zynq linux内核,简单字符驱动测试以及常见错误记录
Linux 内核下载 先从官网下载 linux 源码,可以从该网址 https://github.com/Xilinx/linux-xlnx/tags 下载 linux 源码,注意 linux 源码的版本要跟petalinux的 linux版本一样,例如笔者的版本是4.19.0,且peta-linux 版本是2019.2,就应当下载xlnx_rebase_v4.19_2019.2版本。 笔者第一次下载的版本为v4.19,如图所示,未下载含日期的版本,就会导致内核编译
强制修改.
ko
文件
中的内核版本号与内核对应
当需要一个
ko
在一个内核下编译,insmod到另一个内核时, 1、include/config/kernel.release
文件
中为内核版本号,将其改为所需版本。 2、include/generated/utsrelease.h
文件
中 #define UTS_RELEASE “XXX” 将xxx改为自己所需内核版本号 。 3、include/linux/ver
magic
.h
文件
改为与另......
kernel与.
ko
的
version
magic
匹配
转:http://blog.chinaunix.net/uid-24708340-id-5057664.html 我是直接在源码下打了个git 最近做一个底层源码版本管理的工作:本地调试OK的内核源码,驱动源码,
文件
系统等,作为一个工程上传至SVN服务器,以便同事们可以方便共享同步代码; 1.问题:本地编译的一整套底层代码down到设备跑都正常,但是由这套代码上传SVN服务器而后chec
ko
ut出来的代码编译的
文件
,则出现驱动
文件
加载不上的情况(驱动以模块方式加载),打印如下 log:
version
ma
Linux_Kernel
4,469
社区成员
17,458
社区内容
发帖
与我相关
我的任务
Linux_Kernel
Linux/Unix社区 内核源代码研究区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章