Yocto 幾個常用鏡像差異 (以FSL官源為例)
簡述版:
core-image-minimal – 最小鏡像,不能再這個基礎上精簡,這個鏡像僅僅能啟動而很多功能還無法使用,因為缺乏應用層軟件,
core-image-base – 在core-image-minimal基礎上添加一些硬件支持的包,這個鏡像能使用所有SOC上的功能.
core-image-sato – 在core-image-base基礎上添加一個叫sato的GUI演示.
fsl-image-machine-test – 在core-image-base基礎上添加測試和跑分工具.
fsl-image-validation-imx – 在core-image-base基礎上添加GUI.
fsl-image-qt5-validation-imx – 在core-image-base基礎上添加QT5.
細緻來看就看他們的配方.
首先是core-image-minimal,他不包含任何軟件,如果包含包管理,則可以引入包管理工具.
SUMMARY = "A small image just capable of allowing a device to boot." IMAGE_INSTALL = "packagegroup-core-boot ${CORE_IMAGE_EXTRA_INSTALL}" IMAGE_LINGUAS = " " LICENSE = "MIT" inherit core-image IMAGE_ROOTFS_SIZE ?= "8192" IMAGE_ROOTFS_EXTRA_SPACE_append = "${@bb.utils.contains("DISTRO_FEATURES", "systemd", " + 4096", "", d)}"
而core-image-base默認之添加了splash這個特徵.
SUMMARY = "A console-only image that fully supports the target device \ hardware." IMAGE_FEATURES += "splash" LICENSE = "MIT" inherit core-image
在core-image-sato就添加了x11-sato和依賴的包.
DESCRIPTION = "Image with Sato, a mobile environment and visual style for \ mobile devices. The image supports X11 with a Sato theme, Pimlico \ applications, and contains terminal, editor, and file manager." HOMEPAGE = "http://www.yoctoproject.org/" IMAGE_FEATURES += "splash package-management x11-base x11-sato ssh-server-dropbear hwcodecs" LICENSE = "MIT" inherit core-image TOOLCHAIN_HOST_TASK_append = " nativesdk-intltool nativesdk-glib-2.0" TOOLCHAIN_HOST_TASK_remove_task-populate-sdk-ext = " nativesdk-intltool nativesdk-glib-2.0" QB_MEM = '${@bb.utils.contains("DISTRO_FEATURES", "opengl", "-m 512", "-m 256", d)}' QB_MEM_qemumips = "-m 256"
在fsl-image-machine-test就是添加兩個packagegroup,在系統中有很多packagegroup,他代表一類包的合集.
DESCRIPTION = "A console-only image that includes gstreamer packages, \ Freescale's multimedia packages (VPU and GPU) when available, and \ test and benchmark applications." IMAGE_FEATURES += " \ ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', '', \ bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11-base', \ '', d), d)} \ debug-tweaks \ tools-testapps \ tools-profile \ " LICENSE = "MIT" inherit core-image CORE_IMAGE_EXTRA_INSTALL += " \ packagegroup-fsl-gstreamer1.0 \ packagegroup-fsl-gstreamer1.0-full \ packagegroup-fsl-tools-gpu \ packagegroup-fsl-tools-gpu-external \ packagegroup-fsl-tools-testapps \ packagegroup-fsl-tools-benchmark \ ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', \ 'weston weston-init', '', d)} \ ${@bb.utils.contains('DISTRO_FEATURES', 'x11 wayland', \ 'weston-xwayland xterm', '', d)} \ "
比如packagegroup-fsl-tools-testapps的配方可以看到:
# Copyright (C) 2012-2014, 2016 Freescale Semiconductor # Copyright (C) 2015, 2016 O.S. Systems Software LTDA. # Released under the MIT license (see COPYING.MIT for the terms) DESCRIPTION = "Packagegroup used by FSL Community to provide a set of packages and utilities \ for hardware test." SUMMARY = "FSL Community packagegroup - tools/testapps" PACKAGE_ARCH = "${MACHINE_ARCH}" inherit packagegroup SOC_TOOLS_TEST = "" SOC_TOOLS_TEST_imx = "imx-test" SOC_TOOLS_TEST_imxgpu = "imx-test imx-gpu-viv-demos" SOC_TOOLS_TEST_qoriq = "ceetm optee-test-qoriq" RDEPENDS_${PN} = " \ alsa-utils \ alsa-tools \ dosfstools \ evtest \ e2fsprogs-mke2fs \ fsl-rc-local \ fbset \ i2c-tools \ iproute2 \ memtester \ python3-core \ python3-json \ python3-datetime \ ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'v4l-utils', '', d)} \ ethtool \ mtd-utils \ mtd-utils-ubifs \ ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'gtk+3-demo', '', d)} \ ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', \ 'weston-examples clutter-1.0-examples', '', d)} \ ${SOC_TOOLS_TEST} \ " # FIXME: i.MX6SL cannot use mesa for Graphics and it lacks GL support, # so for now we skip it. RDEPENDS_IMX_TO_REMOVE = "" RDEPENDS_IMX_TO_REMOVE_imxgpu2d = "clutter-1.0-examples" RDEPENDS_IMX_TO_REMOVE_imxgpu3d = "" RDEPENDS_${PN}_remove = "${RDEPENDS_IMX_TO_REMOVE}"
可見,Yocto的一切包含關係各自全部都是廚師按着配方幹活,可以説非常的舒服.
「其他文章」
- Yocto 幾個常用鏡像差異 (以FSL官源為例)
- ZYNQ U-Boot 代碼分析 Vivado SDK 載入調試
- Debian切換到netplan管理網絡
- 最簡單的方法入門CUDA
- Docker IPv6 – iptables 映射方法
- NDP代理模仿Routed Prefix功能
- QCOW2的幾種預分配規則創建時間對比
- 使用命令KVM小雞
- RK 純開源代碼構建
- TinyML ESP32 人檢測應用的移植和使用
- 創建並取得Mongodb Altas賬户並取得連接字符串
- 折騰4T只需5歐的Seedbox – 含FlexGet
- Hostens – 低價穩定的大盤雞
- TrustZone 用户編程模型(GPIO Toggle例子)
- RGB LED Buck Converters 電路分析
- AWS 新區非洲(開普敦) 網絡質量測試
- GitHub 教師工具箱
- I.MX RT 串口外設
- rclone 官方版無管理員OneDrive使用
- rclone 無管理員 Onedrive 使用