RK3562 开发板开机 LOGO 一键更换,独立分区 + 双模式更新全教程

原创 作者 Forlinx 2026-02-05 13:53:00 RK3562开发板 RK3562开机LOGO

一、方案介绍

本方案通过为OK3562-C开发板(基于瑞芯微RK3562处理器设计)新增独立的LOGO分区,实现开机LOGO图片的便捷更换,无需修改源码并重新编译烧写系统,大幅提升开发与调试效率,适用于Linux5.10.198+QT5.15.10版本环境。

本方案的核心设计思想是将开机LOGO资源独立存储于专用分区,与系统根文件系统分离。这种架构设计带来了以下显著优势:

  • 隔离性:LOGO更新操作不会影响系统核心文件,降低更新风险
  • 便捷性:无需重新编译整个系统,缩短产品迭代周期
  • 灵活性:支持生产环境动态更换品牌标识,满足OEM需求
  • 兼容性:适配Linux 5.10.198内核与QT5.15.10图形框架


二、修改步骤

(一)添加LOGO分区

在Ubuntu开发环境中,执行命令编辑分区配置文件,定义存储分区布局:

forlinx@ubuntu:~/work/3562/OK3562-linux-source$ vi device/forlinx/.chips/ok3562/parameter-buildroot-fit.txt

在配置文件中添加LOGO分区并调整userdata分区,完整配置内容如下:

// 添加logo分区:0x00100000@0x00cba000(logo)
// 修改userdata分区:-@0x00dba000(userdata:grow)
CMDLINE: mtdparts=:0x00002000@0x00004000(uboot),0x00002000@0x00006000(misc),0x00020000@0x00008000(boot),0x00040000@0x00028000(recovery),0x00010000@0x00068000(backup),0x00c00000@0x00078000(rootfs),0x00040000@0x00c78000(oem),0x00002000@0x00cb8000(amp),0x00100000@0x00cba000(logo),-@0x00dba000(userdata:grow)
配置说明:LOGO分区大小配置为0x00100000(对应512M),可根据实际LOGO图片大小调整;修改userdata分区起始地址,避免与LOGO分区空间重叠,保证存储分区正常使用。

(二)修改U-Boot并验证分区

由于RK3562的U-Boot源码未开源,直接使用适配本方案的修改版uboot.img(基于Linux5.10.198+QT5.15.10_用户资料_R1制作,新版本需重新验证兼容性)。

  1. 将uboot.img文件放入OK3562-linux-source/u-boot目录,替换原有文件
  2. 执行全编译操作,将编译后的镜像烧写至开发板
  3. 开发板启动后,执行验证命令查看分区信息

分区验证:

开发板启动后,执行fdisk -l命令查看分区信息,完整输出如下:

root@ok3562:/# fdisk -l
Found valid GPT with protective MBR; using GPT
Disk /dev/mmcb1k0: 30576640 sectors, 2642M
Logical sector size: 512
Disk identifier(GUID): 27330000-0000-4656-8000-71000000163b
Number  Start(sector)  End (sector)  Size   Name
   1      16384         24575       4096K  uboot
   2      24576         32767       4096K  misc
   3      32768        163839       64.0M  boot
   4     163840        425983       128M   recovery
   5     425984        491519       32.0M  backup
   6     491520       13074431      6144M  rootfs
   8    13336576      13344767      4096K  amp
   9    13344768      14393343      512M   logo
  10    14393344      30576606      7901M  userdata
验证标准:若输出中显示logo分区大小为512M,说明分区配置已成功生效。

三、LOGO更新方法

方法一:U盘自动更新

适用于批量部署场景,插入U盘自动检测并完成更新,无需人工干预命令行。

方法二:手动更新

适用于开发调试阶段,通过命令行手动执行写入操作,精确控制更新流程。

(一)U盘自动更新

准备工作:

在U盘根目录创建Forlinx_logo文件夹,将logo.bmp和logo_kernel.bmp两张LOGO图片放入该文件夹。

自动更新脚本:

编写LOGO自动更新脚本logo.sh,脚本按功能分段实现检测、打包、写入逻辑,完整代码如下:

#!/bin/bash
# 功能1:定义U盘检测与LOGO更新核心函数
check_sdcard(){
    # 循环检测U盘挂载状态
    while true; do
        # 检测U盘根目录是否存在Forlinx_logo文件夹
        if [[ -d "/run/media/sda1/Forlinx_logo" ]]; then
            cd "/run/media/sda1/Forlinx_logo"
            # 检测是否存在更新标志文件,避免重复更新
            if [[ -f "Forlinx_logo_flag" ]]; then
                echo "Forlinx_logo_flag file. Exiting."
                break
            else
                # 功能2:校验LOGO图片是否齐全,齐全则执行打包与写入操作
                if [[ -f "/run/media/sda1/Forlinx_logo/logo.bmp" && -f "/run/media/sda1/Forlinx_logo/logo_kernel.bmp" ]]; then
                    # 合并LOGO图片为镜像文件
                    cat "logo.bmp" > "logo.img"
                    # 按512字节对齐镜像文件,适配分区写入要求
                    truncate -s %512 "logo.img"
                    # 追加内核LOGO图片至镜像文件
                    cat "logo_kernel.bmp" >> "logo.img"
                    # 将镜像文件写入LOGO分区
                    dd if="logo.img" of="/dev/block/by-name/logo"
                    # 功能3:更新完成后输出提示,并创建标志文件
                    echo "Logo files copied and written to /dev/block/by-name/logo."
                    touch "Forlinx_logo_flag"
                    break;
                else
                    echo "Missing logo.bmp or logo_kernel.bmp files."
                fi
            fi
        fi
        # 每5秒检测一次,避免占用过多系统资源
        sleep 5
    done
}
# 功能4:后台启动检测函数,不阻塞系统其他进程
check_sdcard &

配置脚本开机自启:

临时生效:编辑开发板/etc/autorun.sh文件,原文件内容如下:

root@ok3562:/# cat /etc/autorun.sh
#!/bin/sh
#env
#user command
exit 0

添加脚本执行命令,修改后完整内容:

#!/bin/sh
# env
# 启动LOGO自动更新脚本
./logo.sh
sync
exit 0

保存后重启开发板,脚本即可临时生效。

永久生效:编辑buildroot/board/forlinx/ok3562/fs-overlay/etc/autorun.sh文件,添加上述脚本执行命令,重新编译烧写镜像后,脚本永久生效。

注意事项:LOGO更新成功后,U盘会自动生成Forlinx_logo_flag标志文件,防止重复更新;若需再次更新LOGO,删除该标志文件后重启开发板即可。

(二)手动更新

将logo.bmp和logo_kernel.bmp两张LOGO图片传入开发板。

执行以下命令,完成LOGO镜像打包与分区写入:

root@ok3562:/# cat logo.bmp > logo.img && truncate -s %512 logo.img && cat logo_kernel.bmp >> logo.img
root@ok3562:/# dd if=logo.img of=/dev/block/by-name/logo
7201+1 records in
7201+1 records out
3686966 bytes (3.7 MB, 3.5 MiB) copied, 0.234017 s, 15.8 MB/s
root@ok3562:/# sync

重启开发板,开机LOGO即可完成更换。


四、关键说明

本方案中分区参数以 512字节标准存储块为计数单位,配置参数0x00100000对应1048576个存储块,总容量为512M,与fdisk -l命令的验证结果完全一致,无需额外进行单位换算。

参数项 十六进制值 十进制值 计算结果
LOGO分区大小 0x00100000 1,048,576 1,048,576 × 512B = 512MB
LOGO分区起始 0x00cba000 13,344,768 对应扇区号 13,344,768
Userdata起始 0x00dba000 14,393,344 紧接LOGO分区之后

咨询立即获得专属报价

华北区负责人

华东区负责人

华南区负责人

中西区负责人

相关产品 >

  • OK3562J-C开发板

    RK3562开发板,采用核心板+底板分体式设计,CPU采用瑞芯微工业级芯片RK3562J设计,RK3562J是瑞芯微专为工业自动化及消费类电子设备打造的一款高性能、低功耗国产化应用处理器,集成了4个ARM Cortex-A53高性能核,主频高达1.8GHz。RK3562核心板采用3组80Pin板对板连接器,可插拔式设计便于产品的安装与维护。 了解详情
    OK3562J-C开发板
  • FET3562J-C核心板

    RK3562核心板,采用高性能低功耗工业级芯片RK3562J设计,RK3562J是瑞芯微专为工业自动化及消费类电子设备打造的一款高性能、低功耗国产化应用处理器,集成了4个ARM Cortex-A53高性能核,主频高达1.8GHz。RK3562核心板采用3组80Pin板对板连接器,可插拔式设计便于产品的安装与维护。 了解详情
    FET3562J-C核心板

推荐阅读 换一批 换一批