• 正文
  • 相关推荐
申请入驻 产业图谱

ElfBoard技术贴|如何在【RK3588】ELF 2开发板用户空间更换开机Logo

10/29 13:51
357
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

传统修改开发板开机Logo的方式需要重新编译内核,流程复杂且耗时。本文介绍了一种创新方案:通过预先在存储中划分专用的Logo分区,允许用户直接在文件系统中更新Logo图片文件,这极大地简化了定制流程,提升了开发与调试效率。

一、添加Logo分区

elf@ubuntu:~/work/ELF2-linux-source$ vi device/rockchip/.chips/elf2/parameter.txt
修改内容如下图所示:

CMDLINE: mtdparts=rk29xxnand:0x00002000@0x00004000(uboot),0x00002000@0x00006000(misc),0x00020000@0x00008000(boot),0x00040000@0x00028000(recovery),0x00010000@0x00068000(backup),0x01c00000@0x00078000(rootfs),0x00040000@0x01c78000(oem),0x00100000@0x01cb8000(logo),-@0x01db8000(userdata:grow)

注意:此处把Logo分区的大小划成了0x00100000(512M),用户可根据自己需求修改。

二、修改Uboot

1、修改u-boot/arch/arm/mach-rockchip/resource_img.c文件

elf@ubuntu:~/work/ELF2-linux-source$ vi u-boot/arch/arm/mach-rockchip/resource_img.c

搜索rockchip_read_resource_dtb

添加两句

struct blk_desc *desc = rockchip_get_bootdev();
resource_setup_logo_bmp(desc);

最终结果

int rockchip_read_resource_dtb(void *fdt_addr, char **hash, int *hash_size)
{
        struct resource_file *f = NULL;
        int ret;
        struct blk_desc *desc = rockchip_get_bootdev();
#ifdef
 CONFIG_ROCKCHIP_HWID_DTB
        if (resource_scan())
                return -ENOENT;
        f = resource_read_hwid_dtb();
#endif
        /* If no dtb match hardware id(GPIO/ADC), use the default */
        if (!f)
                f = resource_get_file(DEFAULT_DTB_FILE);
        if (!f)
                return -ENODEV;
        ret = rockchip_read_resource_file(fdt_addr, f->name, 0, 0);
        if (ret < 0)
                return ret;
        if (fdt_check_header(fdt_addr))
                return -EBADF;
        *hash = f->hash;
        *hash_size = f->hash_size;
        printf("DTB: %sn", f->name);
        resource_setup_logo_bmp(desc);
        return 0;
}
2、修改u-boot/configs/board_elf2_uboot_defconfig文件

elf@ubuntu:~/work/ELF2-linux-source$ vi u-boot/configs/board_elf2_uboot_defconfig

添加两行

CONFIG_ROCKCHIP_RESOURCE_IMAGE=y
CONFIG_ANDROID_AVB=n

注意:CONFIG_ANDROID_AVB本来就存在,直接改为CONFIG_ANDROID_AVB=n

三、编译并烧写

修改完成之后全编译并烧写。

烧写完成后启动开发板,使用fdisk -l命令查看,即可看到Logo分区:

四、更新Logo

将logo.bmp和logo_kernel.bmp放入开发板中,执行下列命令:

root@elf2-buildroot:~# cat logo.bmp > logo.img && truncate -s %512 logo.img && cat logo_kernel.bmp >> logo.img
root@elf2-buildroot:~# dd if=logo.img of=/dev/block/by-name/logo
1968+1 records in
1968+1 records out
1007670 bytes (1.0 MB, 984 KiB) copied, 0.0459117 s, 21.9 MB/s
root@elf2-buildroot:~# sync

重启之后发现Logo已经更新。

以上就是关于ELF 2开发板用户空间更换开机Logo完整操作指南,希望这些内容能切实帮助屏幕前的小伙伴,如果在实践中遇到问题,欢迎随时交流探讨!

飞凌嵌入式

飞凌嵌入式

保定飞凌嵌入式技术有限公司,创建于2006年,是一家专注嵌入式核心控制系统研发、设计和生产的高新技术企业,是国内较早专业从事嵌入式技术的企业之一。 经过十几年的发展与积累,公司拥有业内优秀的软硬件研发团队,在北京及保定建立两大研发基地,在苏州、深圳设有华东、华南技术服务中心,并在北美、欧洲以及亚太等其他国家和地区拥有国际业务网络。公司研发的智能设备核心平台广泛应用于物联网、工控、轨道交通、医疗、电力、商业电子、智能家居、安防、机器人、环境监测等诸多领域。

保定飞凌嵌入式技术有限公司,创建于2006年,是一家专注嵌入式核心控制系统研发、设计和生产的高新技术企业,是国内较早专业从事嵌入式技术的企业之一。 经过十几年的发展与积累,公司拥有业内优秀的软硬件研发团队,在北京及保定建立两大研发基地,在苏州、深圳设有华东、华南技术服务中心,并在北美、欧洲以及亚太等其他国家和地区拥有国际业务网络。公司研发的智能设备核心平台广泛应用于物联网、工控、轨道交通、医疗、电力、商业电子、智能家居、安防、机器人、环境监测等诸多领域。收起

查看更多

相关推荐