q7223124 2024-04-18 15:13 采纳率: 0%
浏览 119
已结题

全志H618ROM新增分区

全志H618ROM修改 需求: 根目录新增ider目录,为2G大小,给完整读写权限,三清需要保留此文件夹,即恢复出厂时,此文件夹不能做变化 但ota时需要覆盖

  • 写回答

21条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-04-18 15:13
    关注
    获得0.45元问题酬金

    引自免费微信小程序:皆我百晓生

    针对您提出的全志H618 ROM修改需求,即在根目录下新增一个名为“ider”的分区,大小为2GB,并赋予其完全读写权限,确保三清时该文件夹得以保留,但在进行OTA更新时允许其被覆盖,以下是详细的解决方案步骤:

    步骤一:修改设备树(DTB)

    1. 定位设备树源文件:首先找到与您的全志H618 SoC对应的设备树源文件(.dts.dtsi)。通常,这些文件位于Linux内核源码的arch/arm/boot/dts/目录下,具体路径可能因设备型号而异。

    2. 添加新分区节点:在设备树中添加一个新的分区节点,定义其名称、类型、起始地址、大小等属性。例如:

      &__dtb_fdt_begin {
          partitions {
              compatible = "fixed-partitions";
              #address-cells = <1>;
              #size-cells = <1>;
      
              ider_partition: partition@100000000 {
                  label = "ider";
                  type = "ider";
                  reg = <0x100000000 0x8000000>; /* 2GB starting from 0x100000000 */
              };
          };
      };
      

      请根据实际的内存映射情况调整分区的起始地址(reg属性中的第一个值),确保新分区不会与其他已存在的分区冲突。

    步骤二:更新内核配置

    1. 启用必要的内核选项:确保内核编译时启用了对EXT4文件系统的支持以及所需的块设备驱动程序(如SD/MMC控制器驱动等)。

    2. 配置MTD分区支持:确保内核中已启用CONFIG_MTD_PARTITIONS选项,以便系统能够识别并管理新的分区。

    步骤三:构建定制内核与设备树

    1. 编译内核:使用修改后的设备树源文件和配置选项重新编译内核。

    2. 编译设备树:将修改后的设备树源文件编译为.dtb文件。

    3. 打包固件:将新编译的内核镜像、设备树文件以及其他必要的组件打包成最终的ROM固件。

    步骤四:修改启动脚本

    1. 挂载新分区:在系统启动过程中,需要在适当的启动脚本(如init.rcfstab)中添加对新分区的挂载指令。例如,在fstab中添加以下行:

      /dev/block/mmcblk0pX    /ider    ext4    defaults    0    0
      

      其中,mmcblk0pX应替换为实际的分区设备节点,可通过fdisk -l或类似命令在启动时查询确定。设置文件系统类型为ext4,并给予默认的挂载选项。

    2. 赋予读写权限:确保在启动过程中或首次挂载后为“ider”目录设置正确的权限,以允许完全读写:

      chmod 777 /ider
      

    步骤五:处理OTA更新

    1. OTA包制作:在生成OTA更新包时,确保包含对“ider”分区内容的更新。这通常由OTA打包工具自动完成,只要确保在打包时指定包含“ider”分区即可。

    2. OTA更新逻辑:在OTA更新过程中,系统应识别到“ider”分区并执行覆盖操作。大多数OTA机制会自动处理所有已定义的分区更新,无需额外处理。

    综上所述,通过上述五个步骤,您可以成功在全志H618 ROM中新增一个名为“ider”的2GB分区,赋予其完全读写权限,确保在三清时保留该文件夹,同时在进行OTA更新时允许其被覆盖。请注意,实际操作中需根据您的硬件平台、内核版本和现有启动脚本的具体情况进行适当调整。

    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 4月26日
  • 创建了问题 4月18日

悬赏问题

  • ¥30 STM32 INMP441无法读取数据
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境