【问题标题】:How to strip down my Yocto Linux?如何剥离我的 Yocto Linux?
【发布时间】:2018-01-09 11:00:28
【问题描述】:

我想在将 Yocto Linux 放入闪存之前剥离它。不需要的软件、手册页、POCO 示例代码和其他文档只会浪费资源,尤其是在只有 128MB 闪存的 i.MX28 EVK 上。

我的 local.conf 文件如下所示:

$ gedit conf/local.conf &
...
IMAGE_INSTALL_append = " poco nginx canutils vsftpd curl fcgi spawn-fcgi net-snmp util-linux ubiattach-klibc ubimkvol-klibc ubiformat-klibc minicom net-tools zeroconf avahi-autoipd mtd-utils u-boot-fw-utils ethtool"
...

我对图像“core-image-base”进行 bitbake。

我想知道,有没有办法可以删除所有不需要的文件?

有人可以帮我拆掉我的 Yocto Linux 吗?

【问题讨论】:

  • 你需要 ngix 吗?你要提供网页服务吗?它们将存储在哪里?在同一个128mb?如果不运行 ngix,你真的需要 hte fcgi 和 vsftpd 吗?这个问题可能更适合superuser.com
  • 是的,我需要所有这些。目前一切正常。

标签: linux poco yocto imx6


【解决方案1】:

当您查看 core-image-base 的配方和包含的 core-image 类(core-image-base.bbcore-image.bbclass)时,您会注意到该图像中只有 packagegroup-core-bootpackagegroup-base-extended

这些的描述:

默认情况下我们安装 packagegroup-core-boot 和 packagegroup-base-extended 包; 这给了我们工作(仅限控制台)rootfs。

这让我们假设它不应该被删除,因此您无法在“Yocto-way”上删除太多软件/文件。您可以做的是编写手动删除文件的补丁或查看如何build a tiny system with Yocto (Link to Development Manual)

您可以通过更改 local.conf 中的 DISTRO 变量来激活此分发:

DISTRO = "poky-tiny"

【讨论】:

    【解决方案2】:

    这是一个最小控制台图像的示例: 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,您可以通过在您的conf/local.conf 中指定来使用 BusyBox 的 mdev 设备管理器而不是 udev

    VIRTUAL-RUNTIME_dev_manager = "mdev"
    

    如果您在块设备上运行根文件系统,请使用 ext2 而不是 ext3 或不带日志的 ext4

    通过在 bbappend 中提供您自己的配置文件,仅使用基本小程序配置 BusyBox。

    查看 glibc 配置,可以通过 DISTRO_FEATURES_LIBC 分发配置变量进行更改。您可以在poky-tiny 分发版中找到该示例。

    考虑切换到更轻量级的 C 库。使用uclibcmusl 代替标准glibc http://www.etalabs.net/compare_libcs.html

    在local.conf中使用musl

    TCLIBC = "musl"
    

    meta-musl 添加到conf/bblayers.conf

    【讨论】:

      猜你喜欢
      • 2011-01-06
      • 1970-01-01
      • 2013-04-04
      • 2012-10-20
      • 2010-09-18
      • 1970-01-01
      • 1970-01-01
      • 2011-12-16
      • 1970-01-01
      相关资源
      最近更新 更多