chrdevbase: unknown relocation:3 insmod: cant insert ‘chrdevbase.ko‘: invalid module format

使用modinfo chrdevbase.ko  查看chrdevbase.ko 文件的信息和  uname -a 查看kernel的软件版本是保持一致的。

但是加载 chrdevbase.ko 驱动文件 会一直报错chrdevbase: unknown relocation:3

关于chrdevbase: unknown relocation:3的问题,搞了好久,网上各种说明内核不一致的问题,各种方法都试了,死活就是不可以,后面突然想到是不是当初安装arm-linux-gnueabihf-gcc 的时候是不是出现问题了,

经过排查发现arm-linux-gnueabihf-gcc的版本是 gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04) 

实际上该版本是错误的,应该是以下的版本:应该和原子哥的版本保持一致才可以。

gcc 版本 4.9.4 (Linaro GCC 4.9-2017.01)

下面分享怎么进行修改:

首先卸载 lsb-core 和 lib32stdc++6

sudo apt-get remove lsb-core lib32stdc++6

然后(检查最大的版本即可)

which arm-linux-gnueabihf-gcc-7

然后

rm -rf arm-linux-gnueabihf-gcc*

后面再次安装lsb-core 和 lib32stdc++6

sudo apt-get install lsb-core lib32stdc++6
最好重启以下电脑 reboot
然后按照流程检查以下gcc的版本
arm-linux-gnueabihf-gcc -v
得到
此时后面需要重新进行编译一下kernel和chrdevbase模块
然后将 imx6ull-alientek-emmc.dtb 和 zImage  放置到,你们个人设置的tftp的路径文件夹下
同理:chrdevbase.ko放置到对应的nfs路径下的 /lib/modules/4.1.15  chrdevbase.ko
后面重新上电开发板子,得到:
此时注册chrdevbase.ko成功!
  • 7
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值