首页>文档>使用教程>Hitool配合TTL备份和烧录海思盒子教程

此组别内的文章

  • Hitool配合TTL备份和烧录海思盒子教程

需要支持?

如果通过文档没办法解决您的问题,请提交工单获取我们的支持!

Hitool配合TTL备份和烧录海思盒子教程

摘要

  • 介绍了使用海思 CPU 的机顶盒的固件备份和烧录。通过 USB-TTL 串口烧录器 CH340 连接机顶盒,使用华为海思刷机工具 HiTool 创建和修改分区表文件,备份和烧写固件,通过升级包升级系统。

 

前提要求

  • 软件:华为海思刷机工具HiTool,电视机顶盒工具开心电视助手(非必需)。
  • 硬件:电脑,USB-TTL 串口烧录器 CH340,U 盘。

获取系统信息

  1. 使用网线将接机顶盒和电脑连接到网络,使用导线连接机顶盒和 USB-TTL 串口烧录工具。
    Hitool配合TTL备份和烧录海思盒子教程
  2. 打开HiTool后点击HiBurn
    Hitool配合TTL备份和烧录海思盒子教程
  3. 设置PC 与板端配置参数。设置 本地 PC 配置下的串口 和 服务器 IP板端配置下的IP 地址 和网关串口 为 USB-TTL 串口烧录器所使用的端口号(查看方式:控制面板 -> 设备管理器 -> 端口(COM 和 LPT)),服务器 IP 为电脑的 IP 地址。 IP 地址 为机顶盒的 IP 地址,网关一般保持默认即可 。传输方式 选择 网口(推荐)
    Hitool配合TTL备份和烧录海思盒子教程
  4. 获取中央处理器型号和管脚配置表。点击 打开终端工具 ,然后点击连接,最后给机顶盒上电。启动信息中的 Reg Name 包含管脚配置表、中央处理器型号、内存规格、PCB 板层数、闪存类型。
    Hitool配合TTL备份和烧录海思盒子教程
  5. 查看分区表。对于型号为CM211-2且 CPU 为Hi3798MV300H的机顶盒,启动信息中会显示分区表信息。而对于型号为HG680-j且 CPU 为Hi3798MV100的机顶盒,启动信息中不会显示分区表,需要执行cat /proc/cmdline命令查看分区表信息。
    Hitool配合TTL备份和烧录海思盒子教程
    Hitool配合TTL备份和烧录海思盒子教程
  6. 查看挂载信息。执行mount命令查看系统中所有的挂载文件系统。
    Hitool配合TTL备份和烧录海思盒子教程
  7. 查看闪存块分区。对于型号为CM211-2机顶盒,执行cd /dev/block/platform/soc/by-namels -al命令查看闪存块分区所指向的分区名。而对于型号为HG680-j机顶盒,执行cd /dev/block/platform/hi_mci.1/by-namels -al命令查看闪存块分区所指向的分区名。对于其它机顶盒,可在/dev/block/platform下的目录的子目录中寻找by-name文件夹。
    Hitool配合TTL备份和烧录海思盒子教程
  8. 查看文件系统信息。执行df命令查看系统中分区的大小和使用量。
    Hitool配合TTL备份和烧录海思盒子教程
  9. 根据系统中分区的使用量,清理无用信息为数据备份做准备。软件卸载可使用开心电视助手软件,此软件还可以便捷的获取分区表、挂载信息、文件系统信息等。
    Hitool配合TTL备份和烧录海思盒子教程

创建和修改分区表

  1. 设置芯片型号。点击芯片 -> 切换芯片 -> Hi3798MV100 。
    Hitool配合TTL备份和烧录海思盒子教程
  2. 点击 烧写 eMMC,点击表格右侧的绿色的加号以创建新的分区。
  3. 点击名称项,根据分区表输入分区名,并遵循闪存块分区中的区块顺序(从mmcblk0p1mmcblk0p17)。
  4. 点击文件项里面的右侧的文件夹图标(选中时出现),在弹出的对话框中选择文件路径并在输入文件名后点击打开,建议文件名与分区名一致。
  5. 点击长度项,根据分区表设置对应分区的大小。
  6. 点击文件系统项,根据挂载信息选择对应分区的文件系统。此项只影响烧录的速度。
  7. 勾选要操作的分区前面的复选框。
  8. 点击eMMC分区表文件右侧的浏览,在弹出的对话框中选择文件路径并在输入文件名后点击打开,然后点击保存。建议文件名包含设备的 CPU 型号和闪存类型。
    Hitool配合TTL备份和烧录海思盒子教程

备份固件

方法一:TTL+HiTool

  1. 在创建和修改分区表的最后一步点击上载
  2. 弹出对话框后关闭机顶盒电源。
  3. 开启机顶盒电源。
  4. 等待对话框中的上载的进度条结束。
    Hitool配合TTL备份和烧录海思盒子教程

方法二:TTL+U 盘

  1. 点击 打开终端工具 ,然后点击连接,最后给机顶盒上电。
  2. 执行df命令查看系统中分区的使用情况。
  3. 插入 U 盘(FAT32 格式)后执行df命令查看系统中分区的使用情况,新出现的/mnt/sda/sda1表示 U 盘挂载成功。
  4. 执行cd /dev/block/platform/soc/by-namels -al命令查看闪存块分区所指向的分区名。
    root@Hi3798MV300:/ # cd /dev/block/platform/soc/by-name
    root@Hi3798MV300:/dev/block/platform/soc/by-name # ls -al
    lrwxrwxrwx root    root    1970-01-01 08:00 baseparam -> /dev/block/mmcblk0p5
    lrwxrwxrwx root    root    1970-01-01 08:00 boot -> /dev/block/mmcblk0p9
    lrwxrwxrwx root    root    1970-01-01 08:00 cache -> /dev/block/mmcblk0p14
    lrwxrwxrwx root    root    1970-01-01 08:00 fastboot -> /dev/block/mmcblk0p1
    lrwxrwxrwx root    root    1970-01-01 08:00 fastplay -> /dev/block/mmcblk0p8
    lrwxrwxrwx root    root    1970-01-01 08:00 logo -> /dev/block/mmcblk0p7
    lrwxrwxrwx root    root    1970-01-01 08:00 misc -> /dev/block/mmcblk0p10
    lrwxrwxrwx root    root    1970-01-01 08:00 partition -> /dev/block/mmcblk0p2
    lrwxrwxrwx root    root    1970-01-01 08:00 pqparam -> /dev/block/mmcblk0p6
    lrwxrwxrwx root    root    1970-01-01 08:00 recovery -> /dev/block/mmcblk0p3
    lrwxrwxrwx root    root    1970-01-01 08:00 securestore -> /dev/block/mmcblk0p12
    lrwxrwxrwx root    root    1970-01-01 08:00 swdb -> /dev/block/mmcblk0p13
    lrwxrwxrwx root    root    1970-01-01 08:00 swdevinfo -> /dev/block/mmcblk0p4
    lrwxrwxrwx root    root    1970-01-01 08:00 system -> /dev/block/mmcblk0p15
    lrwxrwxrwx root    root    1970-01-01 08:00 trustedcore -> /dev/block/mmcblk0p11
    lrwxrwxrwx root    root    1970-01-01 08:00 userdata -> /dev/block/mmcblk0p16
    
  5. 执行cd /mnt/sda/sda1命令以切换当前工作目录为/mnt/sda/sda1,执行mkdir FW_BK命令以在当前工作目录创建名为FW_BK的文件夹。
  6. 使用下面的dd命令备份分区。对于比较大的分区,应执行dd if=/dev/block/platform/soc/by-name/userdata | gzip > /mnt/sda/sda1/FW_BK/userdata.bin.gz命令以先压缩后输出。
    dd if=/dev/block/platform/soc/by-name/fastboot of=/mnt/sda/sda1/FW_BK/fastboot.bin
    dd if=/dev/block/platform/soc/by-name/partition of=/mnt/sda/sda1/FW_BK/partition.bin
    dd if=/dev/block/platform/soc/by-name/recovery of=/mnt/sda/sda1/FW_BK/recovery.bin
    dd if=/dev/block/platform/soc/by-name/swdevinfo of=/mnt/sda/sda1/FW_BK/swdevinfo.bin
    dd if=/dev/block/platform/soc/by-name/baseparam of=/mnt/sda/sda1/FW_BK/baseparam.bin
    dd if=/dev/block/platform/soc/by-name/pqparam of=/mnt/sda/sda1/FW_BK/pqparam.bin
    dd if=/dev/block/platform/soc/by-name/logo of=/mnt/sda/sda1/FW_BK/logo.bin
    dd if=/dev/block/platform/soc/by-name/fastplay of=/mnt/sda/sda1/FW_BK/fastplay.bin
    dd if=/dev/block/platform/soc/by-name/boot of=/mnt/sda/sda1/FW_BK/boot.bin
    dd if=/dev/block/platform/soc/by-name/misc of=/mnt/sda/sda1/FW_BK/misc.bin
    dd if=/dev/block/platform/soc/by-name/trustedcore of=/mnt/sda/sda1/FW_BK/trustedcore.bin
    dd if=/dev/block/platform/soc/by-name/securestore of=/mnt/sda/sda1/FW_BK/securestore.bin
    dd if=/dev/block/platform/soc/by-name/swdb of=/mnt/sda/sda1/FW_BK/swdb.bin
    dd if=/dev/block/platform/soc/by-name/cache of=/mnt/sda/sda1/FW_BK/cache.bin
    dd if=/dev/block/platform/soc/by-name/system of=/mnt/sda/sda1/FW_BK/system.bin
    dd if=/dev/block/platform/soc/by-name/userdata of=/mnt/sda/sda1/FW_BK/userdata.bin

    烧录固件

方法一:TTL+HiTool

  1. 解压系统固件包TTL-hi3798mv100-202301.zip
  2. 点击eMMC分区表文件右侧的浏览,在弹出的对话框中选择海纳思系统固件包中的 eMMC 分区表文件后点击打开
  3. 勾选需要烧录的分区前面的复选框。
  4. 点击烧写
  5. 弹出对话框后关闭机顶盒电源。
  6. 开启机顶盒电源。
  7. 等待对话框中的烧写的进度条结束。
    Hitool配合TTL备份和烧录海思盒子教程

方法二:TTL+U 盘

  1. 点击 打开终端工具 ,然后点击连接,最后给机顶盒上电。
  2. 执行df命令查看系统中分区的使用情况。
  3. 插入 U 盘(FAT32 格式)后执行df命令查看系统中分区的使用情况,新出现的/mnt/sda/sda1表示 U 盘挂载成功。
  4. 执行cd /dev/block/platform/soc/by-namels -al命令查看闪存块分区所指向的分区名。
    root@Hi3798MV300:/ # cd /dev/block/platform/soc/by-name
    root@Hi3798MV300:/dev/block/platform/soc/by-name # ls -al
    lrwxrwxrwx root    root    1970-01-01 08:00 baseparam -> /dev/block/mmcblk0p5
    lrwxrwxrwx root    root    1970-01-01 08:00 boot -> /dev/block/mmcblk0p9
    lrwxrwxrwx root    root    1970-01-01 08:00 cache -> /dev/block/mmcblk0p14
    lrwxrwxrwx root    root    1970-01-01 08:00 fastboot -> /dev/block/mmcblk0p1
    lrwxrwxrwx root    root    1970-01-01 08:00 fastplay -> /dev/block/mmcblk0p8
    lrwxrwxrwx root    root    1970-01-01 08:00 logo -> /dev/block/mmcblk0p7
    lrwxrwxrwx root    root    1970-01-01 08:00 misc -> /dev/block/mmcblk0p10
    lrwxrwxrwx root    root    1970-01-01 08:00 partition -> /dev/block/mmcblk0p2
    lrwxrwxrwx root    root    1970-01-01 08:00 pqparam -> /dev/block/mmcblk0p6
    lrwxrwxrwx root    root    1970-01-01 08:00 recovery -> /dev/block/mmcblk0p3
    lrwxrwxrwx root    root    1970-01-01 08:00 securestore -> /dev/block/mmcblk0p12
    lrwxrwxrwx root    root    1970-01-01 08:00 swdb -> /dev/block/mmcblk0p13
    lrwxrwxrwx root    root    1970-01-01 08:00 swdevinfo -> /dev/block/mmcblk0p4
    lrwxrwxrwx root    root    1970-01-01 08:00 system -> /dev/block/mmcblk0p15
    lrwxrwxrwx root    root    1970-01-01 08:00 trustedcore -> /dev/block/mmcblk0p11
    lrwxrwxrwx root    root    1970-01-01 08:00 userdata -> /dev/block/mmcblk0p16
    
  5. 使用下面的dd命令烧录分区。备份的固件所在的位置为FW_BK文件夹。对于比较大的分区,应执行gzip -dc /mnt/sda/sda1/FW_BK/userdata.bin.gz | dd of=/dev/block/platform/soc/by-name/userdata命令以先解压后输出。
    dd if=/mnt/sda/sda1/FW_BK/fastboot.bin of=/dev/block/platform/soc/by-name/fastboot
    dd if=/mnt/sda/sda1/FW_BK/partition.bin of=/dev/block/platform/soc/by-name/partition
    dd if=/mnt/sda/sda1/FW_BK/recovery.bin of=/dev/block/platform/soc/by-name/recovery
    dd if=/mnt/sda/sda1/FW_BK/swdevinfo.bin of=/dev/block/platform/soc/by-name/swdevinfo
    dd if=/mnt/sda/sda1/FW_BK/baseparam.bin of=/dev/block/platform/soc/by-name/baseparam
    dd if=/mnt/sda/sda1/FW_BK/pqparam.bin of=/dev/block/platform/soc/by-name/pqparam
    dd if=/mnt/sda/sda1/FW_BK/logo.bin of=/dev/block/platform/soc/by-name/logo
    dd if=/mnt/sda/sda1/FW_BK/fastplay.bin of=/dev/block/platform/soc/by-name/fastplay
    dd if=/mnt/sda/sda1/FW_BK/boot.bin of=/dev/block/platform/soc/by-name/boot
    dd if=/mnt/sda/sda1/FW_BK/misc.bin of=/dev/block/platform/soc/by-name/misc
    dd if=/mnt/sda/sda1/FW_BK/trustedcore.bin of=/dev/block/platform/soc/by-name/trustedcore
    dd if=/mnt/sda/sda1/FW_BK/securestore.bin of=/dev/block/platform/soc/by-name/securestore
    dd if=/mnt/sda/sda1/FW_BK/swdb.bin of=/dev/block/platform/soc/by-name/swdb
    dd if=/mnt/sda/sda1/FW_BK/cache.bin of=/dev/block/platform/soc/by-name/cache
    dd if=/mnt/sda/sda1/FW_BK/system.bin of=/dev/block/platform/soc/by-name/system
    dd if=/mnt/sda/sda1/FW_BK/userdata.bin of=/dev/block/platform/soc/by-name/userdata

    升级固件

  • 方法一:使用 TTL+HiTool+U 盘。烧写recoveryrecovery,烧写emmcmisc,然后重启机顶盒以进入恢复模式,最后在恢复模式中选择apply update from external storage后选择 U 盘中的update.zip刷机包进行刷机。
  • 方法二:使用 TTL+U 盘或者ADB+U 盘。使用dd命令输出recoveryrecoveryemmcmisc,然后执行reboot命令以重启进入恢复模式,最后在恢复模式中选择apply update from external storage后选择 U 盘中的update.zip刷机包进行刷机。
  • 方法三:使用ADB或TTL或TTL+HiTool烧写recovery后安装原生版本的设置软件包,进入原生版本的设置后选择本地升级以升级系统。升级包必须被命名为update.zip并位于 U 盘的根目录。软件包一般被命名为SWProductCheck.apk,可在卡刷救砖相关教程中搜寻。
  • 方法四:把fastboot.binbootargs.binrecovery.img三个文件复制到U盘根目录。短接强制刷机的短接点,然后打开机顶盒的电源,等待几秒后松开短接。机顶盒就会加载U 盘中的fastboot.bin并引导 U 盘中的recovery.img进入恢复模式,最后在恢复模式中选择apply update from external storage后选择 U 盘中的update.zip刷机包进行刷机。
  • 方法五:把fastboot.binbootargs.binrecovery.img三个文件复制到U盘根目录。使用ADB或TTL或TTL+HiTool擦除fastboot.bin分区。重启后机顶盒就会加载U 盘中的fastboot.bin并引导 U 盘中的recovery.img进入恢复模式,最后在恢复模式中选择apply update from external storage后选择 U 盘中的update.zip刷机包进行刷机。

注意事项

  • 关于芯片型号:魔百盒 CM211-2 的 CPU 型号有 MV100、MV300、MV300H。实际的 CPU 型号以reg name中包含 CPU 型号或芯片本身的丝印为准。
  • 关于reg name:芯片待烧录固件的fastboot中的reg name与机顶盒现有的fastboot中的reg name在管脚配置表和中央处理器型号上应保持一致,否则无法烧录fastboot。启动信息中显示的reg name仅供参考,实际的管脚配置表以机顶盒现有的fastboot中的reg name包含的管脚配置表为准。
    Hitool配合TTL备份和烧录海思盒子教程
  • 关于HiBurn中的传输方式:无论传输方式选择串口还是网口,烧写fastboot时,实际上都是通过串口来传输数据,因此非常慢。
  • 关于HiBurn中的文件系统:如果实际上存在文件系统但软件中的文件系统被设置为none时,在进行烧写操作时,分区镜像将会以二进制的形式进行传输;如果设置为一个确定的文件系统,如ext3/4时,在进行烧写操作时,分区镜像将会以压缩包的形式进行传输,即对镜像先压缩后传输,最后解压并写入分区。因此,在进行烧写操作时,设置文件系统可以减少分区镜像传输所需要的时间,最终加快总体的烧写速度。对于上载操作,无论是否设置软件中的文件系统,上载的分区镜像总是以二进制的形式进行传输,不会改变上载速度。
  • 关于压缩:userdata分区的镜像大小会超过 4GB,超过 FAT32 文件系统限制,所以需要压缩。在使用dd命令时,结合分区的大小和使用量来决定是否进行压缩可以有效的节省空间占用和传输时间。
  • 关于终端内容被覆盖丢失:点击窗口 -> 首选项 ,点击终端后修改终端缓存行数。
  • 关于使用 HiTool 烧录和备份固件失败:点击窗口 -> 首选项,然后点击HiBurn,修改TFTP设置和命令设置。根据控制台的报错信息来修改对应的参数。有时重新操作一次也会恢复正常。
    Hitool配合TTL备份和烧录海思盒子教程
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索