全志用户层修改开机logo
参考
tina系统应用层更新开机logo_tina uboot 加载 bootlogo-CSDN博客
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 | 全志tina系统的开机logo显示方式有两种。分别是: 是uboot中读取logo到内存中,然后kernel去显示 /common/board_r.c init_sequence_r #ifdef CONFIG READ LOGO FOR KERNEL sunxi_read_bootlogo, rblock = sunxi_partition_get_size_byname( "bootlogo" ); ret = sunxi_flash_read(start block, rblock, ( void *)addr); #endif 从流程可知将boot1ogo整个分区数据都复制到内存中然后由kerne1去显示。 由上面原理可知需要此功能需要 在sdk_root/device/config/chips/{chips}/configs/方案)/linux/sys_partition_{启动介质}).fex中定义bootlogo分区 在sdk_root/device/config/chips/chips)/configs/方案)/linux/目录下存放bootlogo分区定义的downloadfile中的文件。(一般将需要的bootlogo.bmp改后缀即可。) init_sequence_r /common/board r.c sunxi_show_logo, sunxi_bmp_display( "bootlogo.bmp" ) : process_bmp_agrv(bmp head addr , name, argv) /common/cmd_sunxi_bmp.c sunxi_partition get_partno byname( "bootloader" ) sunxi_partitionget_partno byname( "boot-resource" ) do_fat_fsload(0,0,5, argv) show_bmp_on_fb(bmp head addr, FB ID 0): 从流程可知将查找bootloader或是boot-resource分区中去读取bootlogo.bmp文件。且该分区为fat文件系统。 由上面原理可知需要此功能需要 在sdk_root/device/conig/chips/chips/configs/方案/lnux/sys partition_{介质}.fex中定义bootloader或是bootresource分区,并将其中downloadfile设置为boot-resource.fex。 在sdk_root/target/allwinner/generic/boot-resource/boot-resource/下存放bootlogo.bmp. 在打包过程中{sdk_root/scripts/pack_img.sh将会生成对应分区镜像文件。 一、系统用户层更换开机logo 针对第一种方案 系统启动后直接将要升级的logo以文件形式写到对应分区。 bootlogo.fex 32bit bmp图片改后缀得来 实现: dd if =/dev/zero of=/dev/nanda /*先清空分区*/ dd if =./bootlogo.fex of=/dev/nanda (写入logo数据,/dev/nanda 是bootlogo分区) 针对第二种方案 挂在对应分区进行替换 实现: 1.内核配置: 内核打开 CONFIG_MTD_BLOCK、CONFIG_MTD_UBI_GLUEBI、CONFIG_FAT_FS 2.进入系统后可以直接挂载vfat格式(mount -t vfat 设备节点 挂载点) root@TinaLinux:/# cat /proc/mtd dev: size erasesize name mtd0: 00100000 00040000 "boot0" mtd1: 00300000 00040000 "uboot" mtd2: 00100000 00040000 "secure_storage" mtd3: 07b00000 00040000 "sys" mtd4: 01000000 0003f000 "mbr" mtd5: 001b9000 0003f000 "boot-resource" mtd6: 0003f000 0003f000 "env" mtd7: 0003f000 0003f000 "env-redund" mtd8: 00627000 0003f000 "boot" mtd9: 01a16000 0003f000 "rootfs" mtd10: 0042f000 0003f000 "rootfs_data" mtd11: 03c4b000 0003f000 "UDISK" root@TinaLinux:/# mount -t vfat /dev/mtdblock mtdblock0 mtdblock10 mtdblock2 mtdblock4 mtdblock6 mtdblock8 mtdblock1 mtdblock11 mtdblock3 mtdblock5 mtdblock7 mtdblock9 root@TinaLinux:/# mount -t vfat /dev/mtdblock5 /mnt/app/ 3.替换bootlogo.bmp文件 二、系统镜像编译阶段更换 参考上述原理,即在sdk编译打包之前替换自己的开机图片即可 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统