Page 1 of 1

生成的镜像文件中update.img的作用是什么?

Posted: 2024-02-23 16:11
by Dawnlord
生成的镜像文件中update.img的作用是什么?
我发现我目前生成的镜像如果不使用SocToolKit工具把update.img也下载到开发板中,系统就无法正常启动

Re: 生成的镜像文件中update.img的作用是什么?

Posted: 2024-02-24 7:27
by Crocodile
Dawnlord wrote: 2024-02-23 16:11 生成的镜像文件中update.img的作用是什么?
我发现我目前生成的镜像如果不使用SocToolKit工具把update.img也下载到开发板中,系统就无法正常启动
您好,可以描述一下您把 update.img 下载到开发板的操作吗?
在网盘中提供的 update.img 是对其他所有镜像打包并添加相应偏移详细和大小信息的固件,可以通过 固件制作 中的解包操作获取到内部信息。
在windows平台,瑞芯微的其他系列芯片中通常在芯片进入 loader 模式后使用 RKDevTool 工具将 update.img 下载入芯片中,在 luckfox-pico 上这种方式还未进行测试。
在linux平台,可以使用 upgrade_tool 工具烧录镜像,详细可以参考
https://wiki.luckfox.com/zh/Luckfox-Pic ... Burn-Image

Re: 生成的镜像文件中update.img的作用是什么?

Posted: 2024-02-24 10:42
by Dawnlord
Crocodile wrote: 2024-02-24 7:27
Dawnlord wrote: 2024-02-23 16:11 生成的镜像文件中update.img的作用是什么?
我发现我目前生成的镜像如果不使用SocToolKit工具把update.img也下载到开发板中,系统就无法正常启动
您好,可以描述一下您把 update.img 下载到开发板的操作吗?
在网盘中提供的 update.img 是对其他所有镜像打包并添加相应偏移详细和大小信息的固件,可以通过 固件制作 中的解包操作获取到内部信息。
在windows平台,瑞芯微的其他系列芯片中通常在芯片进入 loader 模式后使用 RKDevTool 工具将 update.img 下载入芯片中,在 luckfox-pico 上这种方式还未进行测试。
在linux平台,可以使用 upgrade_tool 工具烧录镜像,详细可以参考
https://wiki.luckfox.com/zh/Luckfox-Pic ... Burn-Image
我主要是想测试自己build出来的镜像批量烧录的可行性,所以做了一点测试
我使用的是pico mini B,具体情况是这样的:
首先,我通过buildroot配置增加了软件包 (同时删掉了一些软件包,但是删掉的最后烧录完还在我不知道为什么)
然后,build SDK生成镜像包,从Linux中拷贝到windows系统
然后,我做了如下三种测试,每次烧录前都会给SPI Flash清空:
1. build后直接烧录镜像,这种情况下不能启动,要再次在windows的瑞芯微工具把update.img升级到芯片中,才能正常启动,并看到我增加的软件包
2. 先烧录官方的镜像,可以正常启动,然后在windows的瑞芯微工具把update.img升级到芯片中,能正常启动,并看到我增加的软件包
3. 清空Flash之后,直接用windows的瑞芯微工具把update.img升级到芯片中,能正常启动,并看到我增加的软件包

三种情况下最后都能启动,看到我添加的软件包,(但是删掉的软件包还在,删掉指的是在menuconfig中用n关掉的)

您那边能对这个操作流程做出一些指导和解释吗?

Re: 生成的镜像文件中update.img的作用是什么?

Posted: 2024-02-26 7:51
by Crocodile
Dawnlord wrote: 2024-02-24 10:42
Crocodile wrote: 2024-02-24 7:27
Dawnlord wrote: 2024-02-23 16:11 生成的镜像文件中update.img的作用是什么?
我发现我目前生成的镜像如果不使用SocToolKit工具把update.img也下载到开发板中,系统就无法正常启动
您好,可以描述一下您把 update.img 下载到开发板的操作吗?
在网盘中提供的 update.img 是对其他所有镜像打包并添加相应偏移详细和大小信息的固件,可以通过 固件制作 中的解包操作获取到内部信息。
在windows平台,瑞芯微的其他系列芯片中通常在芯片进入 loader 模式后使用 RKDevTool 工具将 update.img 下载入芯片中,在 luckfox-pico 上这种方式还未进行测试。
在linux平台,可以使用 upgrade_tool 工具烧录镜像,详细可以参考
https://wiki.luckfox.com/zh/Luckfox-Pic ... Burn-Image
我主要是想测试自己build出来的镜像批量烧录的可行性,所以做了一点测试
我使用的是pico mini B,具体情况是这样的:
首先,我通过buildroot配置增加了软件包 (同时删掉了一些软件包,但是删掉的最后烧录完还在我不知道为什么)
然后,build SDK生成镜像包,从Linux中拷贝到windows系统
然后,我做了如下三种测试,每次烧录前都会给SPI Flash清空:
1. build后直接烧录镜像,这种情况下不能启动,要再次在windows的瑞芯微工具把update.img升级到芯片中,才能正常启动,并看到我增加的软件包
2. 先烧录官方的镜像,可以正常启动,然后在windows的瑞芯微工具把update.img升级到芯片中,能正常启动,并看到我增加的软件包
3. 清空Flash之后,直接用windows的瑞芯微工具把update.img升级到芯片中,能正常启动,并看到我增加的软件包

三种情况下最后都能启动,看到我添加的软件包,(但是删掉的软件包还在,删掉指的是在menuconfig中用n关掉的)

您那边能对这个操作流程做出一些指导和解释吗?

您好,可以提供一下您将 update.img 烧录到芯片上使用瑞芯微工具套件的截图吗?
update.img 内包含了一个镜像中需要的boot.img env.img idblock.img等,这是对 update.img 进行解包的打印信息
update_unpack.jpg
从您的测试中我觉得和系统的正常启动主要是 update.img 烧录成功的原因,update.img 将原本镜像覆盖了。

Re: 生成的镜像文件中update.img的作用是什么?

Posted: 2024-02-26 10:23
by Dawnlord
Crocodile wrote: 2024-02-26 7:51
Dawnlord wrote: 2024-02-24 10:42
Crocodile wrote: 2024-02-24 7:27

您好,可以描述一下您把 update.img 下载到开发板的操作吗?
在网盘中提供的 update.img 是对其他所有镜像打包并添加相应偏移详细和大小信息的固件,可以通过 固件制作 中的解包操作获取到内部信息。
在windows平台,瑞芯微的其他系列芯片中通常在芯片进入 loader 模式后使用 RKDevTool 工具将 update.img 下载入芯片中,在 luckfox-pico 上这种方式还未进行测试。
在linux平台,可以使用 upgrade_tool 工具烧录镜像,详细可以参考
https://wiki.luckfox.com/zh/Luckfox-Pic ... Burn-Image
我主要是想测试自己build出来的镜像批量烧录的可行性,所以做了一点测试
我使用的是pico mini B,具体情况是这样的:
首先,我通过buildroot配置增加了软件包 (同时删掉了一些软件包,但是删掉的最后烧录完还在我不知道为什么)
然后,build SDK生成镜像包,从Linux中拷贝到windows系统
然后,我做了如下三种测试,每次烧录前都会给SPI Flash清空:
1. build后直接烧录镜像,这种情况下不能启动,要再次在windows的瑞芯微工具把update.img升级到芯片中,才能正常启动,并看到我增加的软件包
2. 先烧录官方的镜像,可以正常启动,然后在windows的瑞芯微工具把update.img升级到芯片中,能正常启动,并看到我增加的软件包
3. 清空Flash之后,直接用windows的瑞芯微工具把update.img升级到芯片中,能正常启动,并看到我增加的软件包

三种情况下最后都能启动,看到我添加的软件包,(但是删掉的软件包还在,删掉指的是在menuconfig中用n关掉的)

您那边能对这个操作流程做出一些指导和解释吗?

您好,可以提供一下您将 update.img 烧录到芯片上使用瑞芯微工具套件的截图吗?
update.img 内包含了一个镜像中需要的boot.img env.img idblock.img等,这是对 update.img 进行解包的打印信息
update_unpack.jpg
从您的测试中我觉得和系统的正常启动主要是 update.img 烧录成功的原因,update.img 将原本镜像覆盖了。
您这个解释和我的猜测差不多,我的截图如下:(方便的话能解释一下buildroot配置软件包出现的问题的处理办法吗)
QQ图片20240226182237.png

Re: 生成的镜像文件中update.img的作用是什么?

Posted: 2024-02-26 11:53
by Luckfox Taylor
使用官方推荐的烧录软件,不要测试其它软件了,RK可能针对不同类型的闪存设备进行烧录操作时使用的偏移量和扇区大小的设定是不一样的。
另外清除旧的软件包,删除buildroot/buildroot-2023.02.6里面的output重新make试试。

Re: 生成的镜像文件中update.img的作用是什么?

Posted: 2024-02-26 12:44
by Dawnlord
Luckfox Taylor wrote: 2024-02-26 11:53 使用官方推荐的烧录软件,不要测试其它软件了,RK可能针对不同类型的闪存设备进行烧录操作时使用的偏移量和扇区大小的设定是不一样的。
另外清除旧的软件包,删除buildroot/buildroot-2023.02.6里面的output重新make试试。
但是我就是下载的官方的烧录软件啊 :?: 你可以看我上面的截图
后面这个删除output我试过,重新打包后还是清不掉

Re: 生成的镜像文件中update.img的作用是什么?

Posted: 2024-02-27 2:40
by Eng38
Dawnlord wrote: 2024-02-26 12:44 后面这个删除output我试过,重新打包后还是清不掉
经测试,清除 buildroot 重新编译可以清除旧的软件包

Code: Select all

cd <SDK目录>/sysdrv/source/buildroot/buildroot-2023.02.6/
make clean
make
cd <SDK目录>
./build.sh