OpenHarmony开发者论坛
标题:
8G内存版本的Dayu200烧录OH4.x后开机异常
[打印本页]
作者:
润开鸿_梁开祝
时间:
2024-3-14 09:49
标题:
8G内存版本的Dayu200烧录OH4.x后开机异常
[md]2023年下半年,我们收到不少小伙伴的反馈,他们的Dayu200开发板在烧录系统镜像(不管是自己编译的还是每日构件上的镜像)之后,系统起不来:**黑屏、不响应任何操作、串口日志发现大量的rga2异常**
```
[ 25.413650] rga2: init reg fail
[ 25.428346] rga2_mmu: Failed to map src attachment
[ 25.428396] rga2_mmu: src0: can't map dma-buf
[ 25.428405] rga2: fail to get dma buffer info!
[ 25.428414] rga2: init reg fail
```
但我手上的Dayu200开发板(2G内存版本)却无论如何都无法确认到这样的异常。后经排查,确认小伙伴手上的
**8G内存版本的Dayu200会存在上述异常**,只是我手上没有8G内存版本的Dayu200,不好确认现象。
研发针对OpenHarmony 3.2-Release版本,给出了一个“boot_linux_dayu200_64bit_8G_3.2-Release.img”内核镜像,替换烧录该内核镜像即可修复异常,不过该内核镜像不适用于OpenHarmony 4.x版本;后继又给出了一个“uboot_dayu200_64bit_8G.img”的uboot镜像,只替换烧录该uboot镜像也可修复异常,且该uboot镜像适用于OpenHarmony 3.x和4.x版本,在2G内存的Dayu200上也可正常使用。
小伙伴们可以把这个“uboot_dayu200_64bit_8G.img”的uboot镜像复制到 //device/board/hihope/rk3568/loader/ 目录下,替换掉原有的 uboot.img 即可;如果不替换的话,那就修改一下://device/board/hihope/rk3568/kernel/build_kernel.sh 文件,在如下位置增加一行代码:
```
cp ${KERNEL_OBJ_TMP_PATH}/resource.img ${2}/resource.img
cp ${3}/loader/MiniLoaderAll.bin ${2}/MiniLoaderAll.bin
cp ${3}/loader/uboot.img ${2}/uboot.img
# 增加如下一行代码
cp ${3}/loader/uboot_dayu200_64bit_8G.img ${2}/uboot_dayu200_64bit_8G.img
```
在烧录镜像的时候,可以选择不再烧录uboot或者烧录uboot_dayu200_64bit_8G.img即可。
顺便提一句,小伙伴们导入config.cfg文件,根据实际情况修改烧录镜像的真实路径之后,可以导出自己的config.cfg文件,替换掉 //device/board/hihope/rk3568/loader/config.cfg 文件即可。
近期OpenHarmony 代码仓已经提供了 4.1-Release 分支代码,我下载下来后编译出Dayu200镜像,烧录到8G内存的Dayu200开发板上,重启后会出现如下异常(烧录到2G内存的Dayu200开发板无此异常):
![dayu200_8G_4.1-Release_default.jpg](
https://forums-obs.openharmony.c ... eopz0k5bvdxxpdk.jpg
"dayu200_8G_4.1-Release_default.jpg")
**触摸无反馈,串口出现前面提到的 rga2 异常log;按下音量控制键(Mute/Vol+/Vol-)会恢复正常的桌面,但是打开应用时响应极慢,且应用功能/显示也不完整。**
单独替换烧录 uboot_dayu200_64bit_8G.img 镜像:
![dayu200_8G_4.1-Release_uboot.png](
https://forums-obs.openharmony.c ... qkhzmmeg9jd8kju.png
"dayu200_8G_4.1-Release_uboot.png")
重启后确认可正常进入桌面,触摸以及应用功能均正常。
查看内存信息:
```
C:\Users>hdc shell free
total used free shared buffers
Mem: 8024813568 971042816 7053770752 90497024 1642496
-/+ buffers/cache: 969400320 7055413248
Swap: 1073737728 0 1073737728
# 上面是异常时查看的内存信息
# 下面是烧录uboot_dayu200_64bit_8G.img后查看的内存信息
C:\Users>hdc shell free
total used free shared buffers
Mem: 3879153664 987426816 2891726848 91111424 1724416
-/+ buffers/cache: 985702400 2893451264
Swap: 1073737728 0 1073737728
```
**据Rockchip公开资料了解到**:
> “当内存 >= 4GB时, RK3566、RK3568、RK3562等芯片内的一些IP(尤其是RGA2),无法访问4GB以上空间”
>
> “可以检查一下配置的图像任务的参数,确认是否配置了仅有RGA2核心(内存访问受限制的核心)支持的功能或格式,以RK3588为例,color fill功能和YUV422/420 planar格式均是RGA2核心特有的功能和格式,因此该场景下必须分配4G以内内存空间的内存调用RGA。”
>
> “仅搭载一种RGA的芯片平台(例如仅搭载RGA2的RK3399、RK3568、Rk3566)上:当芯片平台上仅搭载内存访问受限制的核心时,则调用RGA时必须申请符合搭载核心对内存要求的内存”
>
> “当使用DRM、malloc、new等不支持指定分配4G以内内存空间的内存的内存分配器时,也可以通过修改uboot的内存映射范围来解决。
>
> uboot相关修改可以参考SDK文档中 uboot开发文档->Chapter-8 调试手段->修改DDR容量,将内存映射范围全局限制在0~4G内存空间以内即可。”
>
> “大于4GB的内存直接不上报给kernel”
>
> “**对于8GB内存的,不建议这样修改,否则内存直接变成4GB了。建议找RK处理。**”
所以目前的实际修改方案就是直接将8G内存降为4G内存来使用以避免上述问题,暂不确定后继RK是否会提供进一步的解决方案。
最后,附上 uboot_dayu200_64bit_8G.img 镜像的下载路径:
https://gitee.com/liangkzgitee/H ... ster/HiHope_DAYU200
[/md]
作者:
xinxz1732
时间:
2024-3-29 19:10
下载了这个镜像,启动问题已解决
作者:
golden-king
时间:
2024-4-8 14:01
用了这个 uboot_dayu200_64bit_8G.img镜像,每日构筑上面有部分版本的可以烧了成功,可以看到启动页并进入系统,
但是触摸屏无反应
,大部分的每日构筑都是无法进入系统,只有4.0.10.3这个版本可以进入操作系统,并且触摸屏幕有反应。
作者:
润开鸿_梁开祝
时间:
2024-5-8 15:59
回复
golden-king
: 建议你一直坚持使用Release分支的代码和镜像,尽量避免使用master分支的代码和镜像。
欢迎光临 OpenHarmony开发者论坛 (https://forums.openharmony.cn/)
Powered by Discuz! X3.5