全志用户层修改开机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编译打包之前替换自己的开机图片即可

  

 

posted @   小城熊儿  阅读(184)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
点击右上角即可分享
微信分享提示