通过设备树修改BPU保留内存大小[ion_cam size] (X3, X3 Module)

在设备树中设置ion_cam size

此教程使用2.0.0以上系统镜像, 在RDK X3 硬件1.0板卡, 硬件2.0板卡, RDK X3 Module(SD卡), RDK X3 Module(eMMc)均测试通过.

主要为了方便大家在X3上运行端侧的语言大模型:https://developer.horizon.cc/nodehubdetail/181982806623334400

1、串口或者ssh终端登录RDK X3

2、确认当前硬件使用的dtb文件

  • RDK X3 (旭日X3派) v1.0硬件板卡是 hobot-x3-pi.dtb
  • RDK X3 v2.0硬件板卡是 hobot-x3-pi_v2_1.dtb
  • RDK X3 Module是 hobot-x3-cm.dtb

可以通过查询当前设备使用的设备树命令确定

cat /sys/firmware/devicetree/base/model
  • RDK X3 (旭日X3派) v1.0硬件板卡会显示以下内容
Hobot X3 PI
  • RDK X3 v2.0硬件板卡会显示以下内容
Hobot X3 PI V2.1
  • RDK X3 Module会显示以下内容
Hobot X3 CM

3、使用以下命令把dtb文件转成方便阅读的dts文件:

  • RDK X3 (旭日X3派) v1.0硬件板卡
dtc -I dtb -O dts -o edit_file.dts /boot/hobot/hobot-x3-pi.dtb 
  • RDK X3 v2.0硬件板卡
dtc -I dtb -O dts -o edit_file.dts /boot/hobot/hobot-x3-pi_v2_1.dtb
  • RDK X3 Module
dtc -I dtb -O dts -o edit_file.dts /boot/hobot/hobot-x3-cm.dtb

其中,/boot/hobot/hobot-x3-pi.dtb 是要编辑的DTB文件的路径。该命令将DTB文件转换为DTS文件(设备树源文件)。 在文本编辑器中,可以编辑DTS文件并保存更改。

4、将 ion_cma size 设置为 1.7GB,可以将其更改为下面的示例。

vim edit_file.dts

如果您使用编辑器为vim,您可以在命令模式下, 键入/ion_cma来搜索以下内容, 应该第一下就能搜索到, 随后回车, 键入i进入编辑模式即可.

系统默认设置如下, 为0x2a000000也就是672MB

ion_cma {
    compatible = "shared-dma-pool";
    alloc-ranges = <0x00 0x4000000 0x00 0x2a000000>;
    alignment = <0x00 0x100000>;
    size = <0x00 0x2a000000>;
    reusable;
};

注意, alloc-rangessize两个字段都要修改, 以下内容为设置为 1.7GB, 供参考

ion_cma {
        compatible = "shared-dma-pool";
        alloc-ranges = <0x00 0x4000000 0x00 0x6a400000>;
        alignment = <0x00 0x100000>;
        size = <0x00 0x6a400000>;
        reusable;
};

计算方法

672 MB:
( 2 a 000000 ) H E X = ( 704643072 ) D E C = 102 4 2 × 672 (2a000000)_{HEX} = (704643072)_{DEC} = 1024^2 \times 672 (2a000000)HEX=(704643072)DEC=10242×672
1500 MB (≈1.5GB)
( 5 d c 00000 ) H E X = ( 1572864000 ) D E C = 102 4 2 × 1500 (5dc00000)_{HEX} = (1572864000)_{DEC} = 1024^2 \times 1500 (5dc00000)HEX=(1572864000)DEC=10242×1500
1700 MB (≈1.7GB)
( 6 a 400000 ) H E X = ( 1782579200 ) D E C = 102 4 2 × 1700 (6a400000)_{HEX} = (1782579200)_{DEC} = 1024^2 \times 1700 (6a400000)HEX=(1782579200)DEC=10242×1700

5、保存修改后,使用以下命令将 DTS 文件转换回 DTB 格式。在执行此操作之前,请备份原始文件。

  • RDK X3 (旭日X3派) v1.0硬件板卡
dtc -I dts -O dtb -o /boot/hobot/hobot-x3-pi.dtb edit_file.dts
  • RDK X3 v2.0硬件板卡
dtc -I dts -O dtb -o /boot/hobot/hobot-x3-pi_v2_1.dtb edit_file.dts
  • RDK X3 Module
dtc -I dts -O dtb -o /boot/hobot/hobot-x3-cm.dtb edit_file.dts

会报一些errors和warmings, 如果您是安装本文来修改的, 一般是不用管的.

edit_file.dts:257.21-268.5: Warning (simple_bus_reg): /soc/serial@0xA5000000: simple-bus unit address format error, expected "a5000000"
edit_file.dts:270.21-281.5: Warning (simple_bus_reg): /soc/serial@0xA5001000: simple-bus unit address format error, expected "a5001000"
edit_file.dts:283.21-294.5: Warning (simple_bus_reg): /soc/serial@0xA5002000: simple-bus unit address format error, expected "a5002000"
edit_file.dts:296.21-307.5: Warning (simple_bus_reg): /soc/serial@0xA5003000: simple-bus unit address format error, expected "a5003000"
edit_file.dts:309.18-339.5: Warning (simple_bus_reg): /soc/usb@0xB2000000: simple-bus unit address format error, expected "b2000000"

保存后,建议将其转换回 dts 文件并确认修改是否正确,以避免因笔误等原因导致修改的值不符合预期。

6、最后,重启您的系统以使更改生效

如果是2.1.0的系统, 可使用以下命令来查看[ION Memory Size]是否修改成功. 其他系统可以通过转换回 dts 检查

sudo rdkos_info -s
================ RDK System Information Collection ================

[Hardware Model]:
        Hobot X3 PI (Board Id = 5)

[CPU And BPU Status]:
        =====================1=====================
        temperature-->
                CPU      : 43.6 (C)
        cpu frequency-->
                      min       cur     max
                cpu0: 240000    1200000 1200000
                cpu1: 240000    1200000 1200000
                cpu2: 240000    1200000 1200000
                cpu3: 240000    1200000 1200000
        bpu status information---->
                     min        cur             max             ratio
                bpu0: 400000000 1000000000      1000000000      0
                bpu1: 400000000 1000000000      1000000000      0

[Total Memory]:         3.8Gi
[Used Memory]:          879Mi
[Free Memory]:          1.8Gi
[ION Memory Size]:      672MB


[RDK OS Version]:
        2.1.0

[RDK Kernel Version]:
        Linux ubuntu 4.14.87 #3 SMP PREEMPT Tue Jan 2 10:07:24 CST 2024 aarch64 aarch64 aarch64 GNU/Linux

[RDK Miniboot Version]:
        U-Boot 2018.09-g40785bca (May 27 2022 - 16:30:48 +0800)

[RDK Packages List]:
        hobot-audio-config/unknown,now 2.0.0-20240117105936 arm64 [installed]
        ...
        hobot-wifi/unknown,now 2.1.0-20240102181558 arm64 [installed]

注意事项:

  • 修改DTB文件可能会影响您的系统的稳定性和安全性。在修改DTB文件之前,请确保您了解您要更改的内容的含义,并备份原始DTB文件以防止意外错误。
  • /boot/hobot/ 下文件由地平线软件包管理,如果升级了系统软件,则用户的修改会被重置为默认配置(672MB)

7、不小心改坏了进不进去系统怎么办?

重新烧录镜像到SD卡或eMMC即可.

  • 29
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值