看韦东山老师的70天linux驱动开发课程,拿出很久之前买的JZ2440开发板。
在课程中,会用到bootloder,kernel,视频中用到的是imx6ull,rk3xxx板子,为此我专门买了开fly RK3399开发板,手中还有基友送的tiny4412,想着学好这三块板子,应该差不多入门了。
第一关:
教程中用到都linux版本是
为了适配,我准备给手中的三块板子,都更新到linux4.4.154版本。
首先,我给JZ2440移植bootloder,教程看的是这个,感谢大佬无私分享。
uboot研读笔记 | 00 - 嵌入式Linux系统中Bootloader的作用和基本运行原理-CSDN博客
在经历各种坑以后,终于移植成功并更新到了JZ2440上,能够通过网络FTP下载uboot,kernel(官方提供的uImage_4.3)。
但这不是我想要的,开始尝试移植linux kernel4.4.154
首先下载源码Index of /pub/ (kernel.org)。
下载完上传至虚拟机上,教程看的是这个,感谢大佬无私分享。
Linux内核移植笔记 | 01 - 移植Linux 3.4.2 内核到JZ2440(配置编译内核,设置machid启动内核)-CSDN博客
然后卡住了。
在编译,运行命令make uImage时,报错信息
我本身的编译环境是
我尝试过使用gcc-5编译,期间查看源码,发现根本没有这个字符(⊙﹏⊙)
然后我上网各种查,中间基友帮我chatGPT了一下,说是as版本太低了,更新binutils版本就可以,但是更新完,说我的版本已经是最新的了,还是没有解决,凸(艹皿艹 ),这坑,深不可测。
先记录到这,等我解决了,接着写。。。。。
———————————————————————————————————————————
很难,这问题卡我一周,不止一周,,,放着,,,,放着,,,,
———————————————————————————————————————————
我准备换个思路,移植一下Linux 4.9.88,然而报错信息跟Linux4.4.154一样。
,,,,然后我不死心,又编译了一下韦东山老师资料盘里的linux-3.4.2,按照
Linux内核移植笔记 | 01 - 移植Linux 3.4.2 内核到JZ2440(配置编译内核,设置machid启动内核)-CSDN博客
编译下来是没有问题的。这,,,,,TMD
换个思路,看看有没有人移植过Liunx 4.4.154,然而都是RK3399有关,而且没有移植过程,,,那再看看有没有人移植过Linux 4.9.88,擦,,,,让我找到了(万分感谢这位大佬)
移植最新的内核linux-4.9到开发板JZ2440全过程笔记_mips-linux-gnu-ld: failed to merge target specific-CSDN博客
在移植过程中,大佬也遇到编译不过的情况,然后更换工具链,就可以了,,,,我看到工具链是友善之臂的,这迎来重大转机,工具链下载地址(广州友善电子计算机科技有限公司 (friendlyelec.com.cn))
知识点来了:
在ubuntu中的命令框内,用gcc -v查询的并不是编译内核时的gcc 版本,,,编译内核版本查询,需要使用arm-linux-gcc -v
———————————————————————————————————————————终于,终于,,,,,,,,,,,编译出内核了,,,不但linux 4.9.88,linux4.4.154也编译了出来,,,(念念不忘,必有回响)