AB系统裁剪前后对比

AB系统裁剪前:

daniel@daniel-VirtualBox:~/MR813/v2.0$ du -sh out/mr813-evb2/*
64K out/mr813-evb2/boot0.img
11M out/mr813-evb2/boot.img
16M out/mr813-evb2/boot_initramfs_recovery.img
6.1G out/mr813-evb2/compile_dir
13M out/mr813-evb2/image
4.0K out/mr813-evb2/md5sums
16M out/mr813-evb2/mr813-evb2-bImage-initramfs
11M out/mr813-evb2/mr813-evb2-boot.img
16M out/mr813-evb2/mr813-evb2-boot-initramfs.img
4.5M out/mr813-evb2/mr813-evb2-Image.gz
9.8M out/mr813-evb2/mr813-evb2-Image.gz-initramfs
4.5M out/mr813-evb2/mr813-evb2-uImage
9.8M out/mr813-evb2/mr813-evb2-uImage-initramfs
67M out/mr813-evb2/packages
50M out/mr813-evb2/rootfs.img
5.8M out/mr813-evb2/rootfs_recovery.img
4.0K out/mr813-evb2/sha256sums
627M out/mr813-evb2/staging_dir
343M out/mr813-evb2/swupdate
122M out/mr813-evb2/tina_mr813-evb2_uart0.img
976K out/mr813-evb2/uboot.img

daniel@daniel-VirtualBox:~/MR813/v2.0$ du -sh out/mr813-evb2/swupdate/*
64K out/mr813-evb2/swupdate/boot0
4.0K out/mr813-evb2/swupdate/cpio_item_md5
11M out/mr813-evb2/swupdate/kernel
2.7M out/mr813-evb2/swupdate/kernel.rdiff.delta
16M out/mr813-evb2/swupdate/recovery
49M out/mr813-evb2/swupdate/rootfs
220K out/mr813-evb2/swupdate/rootfs.rdiff.delta
4.0K out/mr813-evb2/swupdate/sw-description
4.0K out/mr813-evb2/swupdate/sw-description.bk
4.0K out/mr813-evb2/swupdate/sw-subimgs-ab.cfg
4.0K out/mr813-evb2/swupdate/sw-subimgs-ab-rdiff.cfg
4.0K out/mr813-evb2/swupdate/sw-subimgs.cfg
4.0K out/mr813-evb2/swupdate/sw-subimgs-fix.cfg
124M out/mr813-evb2/swupdate/swupdate_delta
4.0K out/mr813-evb2/swupdate/swupdate.log
3.9M out/mr813-evb2/swupdate/tina-mr813-evb2-ab-rdiff.swu
61M out/mr813-evb2/swupdate/tina-mr813-evb2-ab.swu
76M out/mr813-evb2/swupdate/tina-mr813-evb2.swu
976K out/mr813-evb2/swupdate/uboot

boot0 64K
uboot 976K
kernel 11M
rootfs 50M
固件包: 122M
AB升级包整包: 61M
AB升级包差分包: 3.9M (前后版本区别仅仅是kernel下的print log不同)

AB系统裁剪过程:

uboot 下 没裁剪
后续可去掉不用的配置和cmd

kernel下 make menuconfig 下选中 downsize the kernel size (EXPERIMENTAL),主要是关闭log/debug等相关配置,然后压缩kernel,
可参考scripts/reduce-kernel-size.sh
裁剪力度不大,后续还是需要通过make kernel_menuconfig来一一裁剪。参考手册系统裁剪开发手册
可利用lichee/linux-4.9$ ./scripts/ksize来观察一下build in进去的模块大小,针对性的进行优化。

rootfs下 主要思路是删、换、压
make menuconfig 下选中downsize the root filesystem or initramfs
可参考scripts/reduce-rootfs-size.sh
选中 Binary stripping method (strip)
本次默认选中了squashfs下Compression (xz),这种压缩虽然压缩率最高,但是压缩解压很慢,非常影响启动速度,应该综合考虑下。

make编译过程中遇到了一些依赖问题,分别做了如下选择(均选择了N):
.config:4874⚠️ override: SPARSEMEM_MANUAL changes choice state
warning: (DRM) selects FB_CMDLINE which has unmet direct dependencies (HAS_IOMEM && FB && !DISP2_SUNXI)
*

  • Restart config…
  • Tracers

Tracers (FTRACE) [Y/n/?] y
Kernel Function Tracer (FUNCTION_TRACER) [N/y/?] n
Enable trace events for preempt and irq disable/enable (PREEMPTIRQ_EVENTS) [N/y/?] (NEW) N
Interrupts-off Latency Tracer (IRQSOFF_TRACER) [N/y/?] n
Preemption-off Latency Tracer (PREEMPT_TRACER) [N/y/?] n
Scheduling Latency Tracer (SCHED_TRACER) [N/y/?] n
Tracer to detect hardware latencies (like SMIs) (HWLAT_TRACER) [N/y/?] (NEW) N
Trace process context switches and events (ENABLE_DEFAULT_TRACERS) [N/y/?] n
Trace syscalls (FTRACE_SYSCALLS) [N/y/?] n
Create a snapshot trace buffer (TRACER_SNAPSHOT) [N/y/?] n
Branch Profiling

  1. No branch profiling (BRANCH_PROFILE_NONE)
    2. Trace likely/unlikely profiler (PROFILE_ANNOTATED_BRANCHES)
    3. Profile all if conditionals (PROFILE_ALL_BRANCHES)
    choice[1-3?]: 1
    Trace max stack (STACK_TRACER) [N/y/?] n
    Support for tracing block IO actions (BLK_DEV_IO_TRACE) [N/y/?] n
    Add tracepoint that benchmarks tracepoints (TRACEPOINT_BENCHMARK) [N/y/?] n
    Trace gpio events (TRACING_EVENTS_GPIO) [Y/n/?] (NEW) n
    warning: (DRM) selects FB_CMDLINE which has unmet direct dependencies (HAS_IOMEM && FB && !DISP2_SUNXI)

configuration written to .config

warning: (DRM) selects FB_CMDLINE which has unmet direct dependencies (HAS_IOMEM && FB && !DISP2_SUNXI)

AB系统裁剪后:

daniel@daniel-VirtualBox:~/MR813/v2.0$ du -sh out/mr813-evb2/*
64K out/mr813-evb2/boot0.img
9.5M out/mr813-evb2/boot.img
16M out/mr813-evb2/boot_initramfs_recovery.img
5.9G out/mr813-evb2/compile_dir
13M out/mr813-evb2/image
4.0K out/mr813-evb2/md5sums
16M out/mr813-evb2/mr813-evb2-bImage-initramfs
9.5M out/mr813-evb2/mr813-evb2-boot.img
16M out/mr813-evb2/mr813-evb2-boot-initramfs.img
4.1M out/mr813-evb2/mr813-evb2-Image.gz
9.8M out/mr813-evb2/mr813-evb2-Image.gz-initramfs
4.1M out/mr813-evb2/mr813-evb2-uImage
9.8M out/mr813-evb2/mr813-evb2-uImage-initramfs
58M out/mr813-evb2/packages
24M out/mr813-evb2/rootfs.img
5.8M out/mr813-evb2/rootfs_recovery.img
4.0K out/mr813-evb2/sha256sums
595M out/mr813-evb2/staging_dir
291M out/mr813-evb2/swupdate
70M out/mr813-evb2/tina_mr813-evb2_uart0.img
976K out/mr813-evb2/uboot.img

daniel@daniel-VirtualBox:~/MR813/v2.0$ du -sh out/mr813-evb2/swupdate/*
64K out/mr813-evb2/swupdate/boot0
4.0K out/mr813-evb2/swupdate/cpio_item_md5
9.5M out/mr813-evb2/swupdate/kernel
2.7M out/mr813-evb2/swupdate/kernel.rdiff.delta
16M out/mr813-evb2/swupdate/recovery
24M out/mr813-evb2/swupdate/rootfs
220K out/mr813-evb2/swupdate/rootfs.rdiff.delta
4.0K out/mr813-evb2/swupdate/sw-description
4.0K out/mr813-evb2/swupdate/sw-description.bk
4.0K out/mr813-evb2/swupdate/sw-subimgs-ab.cfg
4.0K out/mr813-evb2/swupdate/sw-subimgs-ab-rdiff.cfg
4.0K out/mr813-evb2/swupdate/sw-subimgs.cfg
4.0K out/mr813-evb2/swupdate/sw-subimgs-fix.cfg
124M out/mr813-evb2/swupdate/swupdate_delta
4.0K out/mr813-evb2/swupdate/swupdate.log
3.9M out/mr813-evb2/swupdate/tina-mr813-evb2-ab-rdiff.swu
35M out/mr813-evb2/swupdate/tina-mr813-evb2-ab.swu
76M out/mr813-evb2/swupdate/tina-mr813-evb2.swu
976K out/mr813-evb2/swupdate/uboot

boot0 64K
uboot 976K
kernel 9.5M
rootfs 24M
固件包: 70M
AB升级包整包: 35M

初步裁剪后 后续需要测试一下各个功能是否完善

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值