传统修改开发板开机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: %s\n", 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 Q2 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完整操作指南,希望这些内容能切实帮助屏幕前的小伙伴,如果在实践中遇到问题,欢迎随时交流探讨!
关注
6072文章
45274浏览量
661315关注
5177文章
20014浏览量
325854免责声明:本文为转载,非本网原创内容,不代表本网观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
如有疑问请发送邮件至:bangqikeconnect@gmail.com