107.am40刷机折腾记3-firefly镜像的烧写

1. 平台: rk3399 am40  4g+32g

2.  内核:firefly的内核(整体镜像)

3.  交叉编译工具 :暂时不编译

4. 宿主机:ubuntu18.04

5. 需要的素材和资料:boot-am40-20231113.img(自编译)

准备的情况:

1.am40开发板

2.ttl的usb转串口,波特率是1500000.

3.12V电源输入

4. 两个公头的usb 的线(能插电脑的普通的usb接口)

5. RKDevTool_Release_v2.81(版本可以不同)+DriverAssitant_v4.5.zip

img文件(从网站上下载)

FIREFLY-RK3399_Ubuntu20.04-r240_v2.5.1d_230330.7z

一、下载firefly固件(rk3399)

1.1 找到firefly的官网

Firefly | 让科技更简单,让生活更智能

下载firefly-rk3399的固件

107.am40刷机折腾记3-firefly镜像的烧写_第1张图片

下载后解压出img文件

二、准备刷机

2.1. 电源连接好,准备上电;

2.2. ttl的串口需要连接。(镜像烧录之后,默认波特率是1500000,需注意哈),电脑中把串口软件打开,方便查看调试信息(所需软件在qq群文件中);

2.3. 公头usb连接开发板和电脑;

2.4. 开发板开关拨到ADB模式;

2.5. 上电的时候按住那个板子上的白色按钮(RKDevTool软件会提示loader模式);

2.6. 电脑安装驱动DriverAssitant(只要安装一次就够了);

2.7. 电脑打开RKDevTool_Release软件,点击“升级固件” 那一页;

107.am40刷机折腾记3-firefly镜像的烧写_第2张图片

2.8.点击“固件”按钮,弹出的对话框,选中firefly的img 文件。

  FIREFLY-RK3399_Ubuntu20.04-r240_v2.5.1d_230330.img

        时间不同,可能版本有些差异,但是不影响烧录。

三、烧录运行

3.1 启动时进入maskrom模式 

按住白色的按钮不松,一直等到出现maskrom(或者loader)的设备,再松开。

3.2  直接点击升级按钮

107.am40刷机折腾记3-firefly镜像的烧写_第3张图片

3.3 这个镜像启动不了。

启动到一定的时候,系统就卡死了,串口没有任何打印信息了。但是不用担心,就是要这个效果。

四、解决这个启动问题

4.1 解决一下recovery的问题

其中misc分区它有一个特定的数据结构,决定系统启动时进入的状态,比如revocery模式,loader模式,normal模式等。

刚刚烧完镜像,misc数据记录会让系统进入recovery模式,用于格式化数据分区,恢复出厂设置等。

但是recovery 其实也是启动不成功的,所以没必要进了,直接改为进入正常系统模式。

4.1.1 解决办法

修改misc的数据,其实我就是找一个文件把misc分区的内容覆盖掉,然后系统启动的时候,还是会读取misc分区的内容,但是很明显不符合它特定的数据结构,校验和也会失败,这个时候,它就会使用默认的正常模式启动。

4.1.2 对misc分区烧入uboot.img(仅仅是因为这个文件大小正好合适)

与下面4.2的boot.img一起烧入也是可以的。

107.am40刷机折腾记3-firefly镜像的烧写_第4张图片

只要烧入uboot即可(选择群文件中的uboot.img下载)

107.am40刷机折腾记3-firefly镜像的烧写_第5张图片

烧入之后,它就不会进入revocery,但是仍然是启动的时候卡死。

107.am40刷机折腾记3-firefly镜像的烧写_第6张图片

这个地方为None或者Normal 都是正常启动进入系统。

提示recovery表示进入recovery模式。

4.2 烧入新的boot.img

这个boot.img 是我自己制作的,能启动,但是部分功能还不完善。

只要烧入boot.img 就行。

(也可以把群文件中的uboot-115200中的文件一起烧入,烧入完之后,串口的波特率应该改为115200).

107.am40刷机折腾记3-firefly镜像的烧写_第7张图片

下载位置qq群文件

107.am40刷机折腾记3-firefly镜像的烧写_第8张图片

烧入之后,自动重启就会启动正常了。

串口的打印信息如果消失了,请注意调整波特率为115200.

五、几点说明

5.1 其实就是熟悉一下烧录的流程,整个img镜像的烧录,还有部分img的烧录方法。

5.2 boot.img 是linux5.10的内核编译而成,而且是使用的系统自带的dts文件修改的,源码在后面的文章中跟大家分享。

5.3 uboot和kernel的波特率都调整为了115200,如果串口看不到打印信息的时候,尝试修改波特率试试(只有两种:115200或者1500000).

5.4 内核的波特率由dtb文件决定,uboot的波特率由代码中设置。

5.5 其他问题,可以私聊我了(下载文件的群 Q Q:113下150载393)。

你可能感兴趣的:(linux,am40,rk3399,rk3399,linux,am40)