出现这个错误之后发现驱动加载不上是因为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再传输就不会错了。
驱动直接运行成功