这是一个最小的控制台形象的例子: 食谱核心/图片/ 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
或musl
而不是标准的glibc http://www.etalabs.net/compare_libcs.html
使用MUSL的,在local.conf中
TCLIBC = "musl"
添加meta-musl
到conf/bblayers.conf
你需要ngix?你打算提供网页吗?他们将储存在哪里?在同一个128MB?如果没有运行ngix,你真的需要hte fcgi和vsftpd吗?这个问题可能更适合https://www.superuser.com – Tschallacka
是的,我需要所有这些。目前一切正常。 – BachehKaraji