解决“chardevbase: version magic ‘4.1.15 SMP preempt mod_unload modversions ARMv6 p2v8 ‘ s”

本文讲述了作者在学习嵌入式驱动模块加载时遇到的versionmagic版本问题,通过修改Makefile中的EXTRAVERSION和使用makemenuconfig调整ARM版本,成功解决了modprobechardevbase.ko时的模块格式错误。
摘要由CSDN通过智能技术生成

在学嵌入式驱动模块加载与卸载的时候,出现以下的问题:

/lib/modules/4.1.15-g3dc0a4b # modprobe chardevbase.ko
[ 5327.239564] chardevbase: version magic '4.1.15 SMP preempt mod_unload modversions ARMv6 p2v8 ' od_unload modversions ARMv7 p2v8 '
[ 5327.256403] chardevbase: version magic '4.1.15 SMP preempt mod_unload modversions ARMv6 p2v8 ' od_unload modversions ARMv7 p2v8 '
modprobe: can't load module chardevbase.ko (chardevbase.ko): invalid module format

对此查阅了相关资料,成功解决此问题!

大佬分析的透彻,并给出了解决方案,一次性解决!

insmod提示version magic '4.1.15 SMP preempt mod_unload modversions ARMv6 p2v8 ' should be '4.1.15-gbedf008 SMP pr...-OpenEdv-开源电子网主要修改两个地方,我重新编译了linux-imx-rel_imx_4.1.15_2.1.0_ga_alientek(整个过程和记录:正点原子i.MX6ULL嵌入式Linux uboot编译-CSDN博客编译过程类似)

第一步:把version magic '4.1.15 根据提示修改为4.1.15-g3dc0a4b,在解压文件里面的Makefile中进行修改并保存

gedit Makefile

 "EXTRAVERSION ="原本为空,填上自己对应的版本号 “EXTRAVERSION = -g3dc0a4b",并保存退出,即可

 

 第二步:利用make menuconfig修改ARMv6为ARMv7。

首先还是新建build文件

//在解压后的linux-imx-rel_imx_4.1.15_2.1.0_ga_alientek里面打开终端,新建一个build.sh
touch build.sh
gedit build.sh

输入以下内容:

#!/bin/sh 
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean 
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- imx_v7_mfg_defconfig 
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig 
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- all -j8 

保存后,给予文件权限,并编译

chmod 777 build.sh 
./build.sh

弹出设置界面,选择systerm Type

并在里面找到Multiple platform selection ,空格选中/取消,取消ARMv6,保证ARMv7选中,保存并退出

结束后ZImage已经生成(合理怀疑之前这样操作未生成和这个版本有关)

将~/linux/IMX6ULL/Llinux/linux-imx-rel_imx_4.1.15_2.1.0_ga_alientek/arch/arm/boot下的ZImage和dts文件夹下的imx6ull-alientek-emmc.dtb两个文件分别放到nfs、tftpboot两个文件夹下(参考博客:嵌入式驱动模块的加载与卸载_version magic '4.1.15 smp preempt mod_unload modve-CSDN博客

再重新执行代码

cd lib/modules/4.1.15-g3dc0a4b
depmod
modprobe chrdevbase.ko

出现以下情况

在代码里面加入

再重新进入一次,用lsmod命令查看,成功啦

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值