linux - 带有包管理的 Yocto 最小图像

标签 linux build yocto

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

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

EXTRA_IMAGE_FEATURES = "package-management"

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

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

最佳答案

我可以给你一些建议,这可能会帮助你优化 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" 并且它针对小型系统进行了很好的优化。

关于linux - 带有包管理的 Yocto 最小图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28765494/

相关文章:

android - 用 Ant 打包可穿戴应用程序

linux - 我在哪里可以找到 Yocto "sub"- 未在 OpenEmbedded 层索引中列出的包,如 "kbd-keymaps"?

linux - 如何在arm硬件上加载和启动yocto镜像?

linux - 可能的共享库冲突导致 SQLite 数据库损坏

build - 如何关闭 APK 构建中的警告/错误栏

linux - C/C++ 语言中的 Conky

android - build.xml 和 project_name.xml 的区别

linux-kernel - Yocto 设备树覆盖

linux - 从文件列表创建 .new 文件

linux - 无法执行二进制文件 : Exec format error after compiling Linux kernel