【问题标题】:Yocto minimal image with package management带有包管理的 Yocto 最小镜像
【发布时间】:2015-04-30 04:33:47
【问题描述】:

我正在尝试使用 Yocto 项目构建尽可能小的 linux 映像。我还希望对目标进行包管理,以便能够添加和更新正在运行的系统的部分。

我可以通过将它添加到我的 conf/local.conf 来启用包管理:

EXTRA_IMAGE_FEATURES = "package-management"

使用 rpm,它会引入基于 python 的 smartpm 包管理器,从而使图像变大。所以我尝试使用 ipk 包,但这仍然取决于 python。

有谁知道如何以尽可能少的开销在 Yocto 中包含包管理?

【问题讨论】:

  • 你试过PACKAGE_CLASSES = "package_deb"吗?还有一个包类package_tar,但不知道有没有像*BSD下这样的安装程序支持这样的tar install/deinstall。
  • @volker,谢谢,我试过 deb。 package_ipk 现在是我的主要负责人。

标签: linux build yocto


【解决方案1】:

我可以给你一些建议,这可能会帮助你优化 rootfs 的大小:

  • 尽可能优化 linux 内核二进制文件并删除不必要的包(文件系统、设备驱动程序、网络等)。

    $ bitbake -c menuconfig virtual/kernel //configure as per your requirement
    $ bitbake -c savedefconfig virtual/kernel //savedefconfig
    $ bitbake -f virtual/kernel
    
  • 配置 Busybox 并移除未使用的东西:

    $ bitbake -c menuconfig busybox
    
  • 如果不使用,请删除那些 Distro 功能(并检查更多):图形 [x11]、声音 [alsa]、触摸屏 [触摸屏]、多媒体。更改适用于conf/local.conf 文件。示例:DISTRO_FEATURES_remove = "x11 alsa touchscreen bluetooth opengl wayland "

  • 选择合适的系统初始化管理器:systemd 或 sysvinit
  • 从映像中删除了未使用的包。示例PACKAGE_EXCLUDE = "perl5 sqlite3 udev-hwdb bluez3 bluez4"
  • 对于小型嵌入式设备首选PACKAGE_CLASSES = "package_ipk",它针对小型系统进行了很好的优化。

【讨论】:

    【解决方案2】:

    看来这是我能做的最好的了。

    PACKAGE_CLASSES = "package_ipk"
    

    然后编辑 opkg-utils 的配方使其不依赖于 python。不过,当然会破坏 python 实用程序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-29
      • 1970-01-01
      • 2023-02-12
      • 1970-01-01
      相关资源
      最近更新 更多