剥离可执行文件和库,删除仅用于开发和调试的ELF部分。strip命令由交叉编译工具链提供。默认情况下在Buildroot中完成的。
superstrip超级剥离
http://muppetlabs.com/~breadbox/software/elfkickers.html。
使用strip可以剥离出Linux未用于启动可执行文件的更多位。Buildroot停止支持它,因为它可能破坏可执行文件。 仅在保存一些字节至关重要时才尝试。
还可以尝试https://packages.debian.org/sid/mklibs上提供的mklibs:
mklibs产生精简的共享库,其中仅包含一组特定的可执行文件所需的例程。对于像OpenGL和QT这样的大型库确实很有用。它甚至可以在没有源代码的情况下工作。
在Yocto中可用,但在Buildroot中不可用(2019.02状态)。
限制:mklibs可以删除倾斜的库(由应用程序“手动”加载),因为它看不到它们。
3.5.5 快速启动画面显示
可以使用fbv显示启动画面,
http://freshmeat.sourceforge.net/projects/fbv
使用armel,可以只使用我们的静态编译二进制文件:
https://github.com/bootlin/static-binaries/tree/master/fbv/
但是在MicrochipAT91SAM9263系统上很慢为878毫秒!
为了更快地执行此操作,可以转储帧缓冲区framebuffer中的内容:
fbv -d 1/root/logo.bmp
cp /dev/fb0/root/logo.fb
lzop -9/root/logo.fb
然后尽早在initramfs中将其复制回:
lzopcat/root/logo.fb.lzo 》 /dev/fb0
编辑连载推荐:嵌入式Linux启动时间优化的秘密之一工具链/应用程序优化
编辑连载推荐:嵌入式Linux启动时间优化的秘密之二文件系统
编辑连载推荐:嵌入式Linux启动时间优化的秘密之三-内核