使用包管理Yocto最小图像

时间:2015-02-27 12:47:36

标签: linux build yocto

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

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

EXTRA_IMAGE_FEATURES = "package-management"

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

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

2 个答案:

答案 0 :(得分:3)

我可以为您推荐一些可能有助于优化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功能(如果不使用)(还可以查看更多):graphics [x11],sound [alsa],touchscreen [touchscreen],Multimedia。更改适用于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",它针对小型系统进行了优化。

答案 1 :(得分:0)

看起来这是我能做的最好的事情。

PACKAGE_CLASSES = "package_ipk"

然后编辑opkg-utils的配方,使其不依赖于python。但是,当然会打破python utils。