这是一个最小控制台映像的示例:recipes-core/images/core-image-small.bb
DESCRIPTION = "Minimal console image."
IMAGE_INSTALL= "\
base-files \
base-passwd \
busybox \
sysvinit \
initscripts \
${ROOTFS_PKGMANAGE_BOOTSTRAP} \
${CORE_IMAGE_EXTRA_INSTALL} \
"
IMAGE_LINGUAS = " "
LICENSE = "MIT"
inherit core-image
IMAGE_ROOTFS_SIZE ?= "8192"
这个配方生成一个大约 6.4MB 的图像。如果您通过添加DISTRO = "poky-tiny"
到您conf/local.conf
的图像来使用 poky-tiny,则图像将约为 4MB。
要构建它,您需要添加
INSANCE_SKIP_glibc-locale = "installed-vs-shipped"
您还可以使用PACKAGE_CLASSES ?= package_ipk
包管理器,因为它是最轻量级的,并且package-management
完全从您的生产根文件系统中删除了功能。
如果您选择packagegroup-core-boot
在您的图像中使用,您可以使用 BusyBox 的 mdev 设备管理器而不是 udev,方法是在您的conf/local.conf
VIRTUAL-RUNTIME_dev_manager = "mdev"
如果您在块设备上运行根文件系统,请使用 ext2 而不是 ext3 或不带日志的 ext4
通过在 bbappend 中提供您自己的配置文件,仅使用基本的小程序配置 BusyBox。
查看 glibc 配置,可以通过DISTRO_FEATURES_LIBC
分发配置变量进行更改。您可以在发行版中找到该示例poky-tiny
。
考虑切换到更轻量级的 C 库。使用uclibc
ormusl
代替标准 glibc http://www.etalabs.net/compare_libcs .html
在 local.conf 中使用 musl
TCLIBC = "musl"
添加meta-musl
到conf/bblayers.conf