野火Linux内核编译

续上集野火Linux开发板insmod出现insmod: ERROR: could not insert module hellomodule.ko: Invalid module format的解决方法_黑摸仙小月的博客-CSDN博客

出现这个错误之后发现驱动加载不上是因为linux系统版本不匹配,所以摸索着怎么重新编译一个内核。

以下是我的操作步骤(有不太对劲的地方也请大家指正)

1.获取内核源码

github:

git clone -b ebf_4.19.35_imx6ul https://github.com/Embedfire/ebf_linux_kernel.git

gitee:

git clone  https://gitee.com/Embedfire/ebf_linux_kernel_6ull_depth1

在开发板通过

cat /proc/version 

得到开发板目标内核版本后到github下载对应的版本

https://github.com/Embedfire/ebf_linux_kernel.git

然后再拉到本地(下载太慢可以在windows挂个机场,下载完成后再传到虚拟机里面)

再把野火gitee构建好的工程拉到本地。

接下来我们可以看到这样的结构

make_deb.sh就OK啦~

 编译成功

再试试看我们的hellow_world驱动能不能成功跑起来

(结果并没有跑起来。。。。。我太乐观了)

接下来就只能再重新编译一个固件烧录到板子里面了,估计还是内核版本不匹配的原因。

事实证明名字改成一样,内核版本也改成一样符号表也不一定能匹配上

补:这里一开始应该是内核不匹配

后来我在野火的教程地址更新了一下内核,再用他们提供是内核来编也是不行

偶然间想着校验一下MD5

结果发现竟然是 这个tftp工具的问题。我真是服了。

后面用挂载 NFS 网络文件系统(PC虚拟机与开发板实现文件互通)_黑摸仙小月的博客-CSDN博客

这个方法挂载nfs再传输就不会错了。

驱动直接运行成功

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值