From 799543474481325b72d3032a3b456ef635e9eb04 Mon Sep 17 00:00:00 2001 From: Max Krummenacher Date: Mon, 2 Dec 2019 18:46:45 +0100 Subject: images: add a new console/graphical/verification image This is meant to replace the current demo images. The console and graphical image can be used as a base to create tailored images to the requirment of a specific use case. The verification image is meant to test the BSP. It provides the tools to exercise the CPU / GPU / VPU and the various SOC peripherals. Related-to: ELB-1284 Signed-off-by: Max Krummenacher --- recipes-images/images/console-tdx-image.bb | 36 ++-- recipes-images/images/graphical-tdx-image.bb | 26 +++ recipes-images/images/packagegroup-tdx-cli.bb | 194 +++++++++++++++++++++ .../images/packagegroup-tdx-graphical.bb | 142 +++++++++++++++ recipes-images/images/verification-tdx-image.bb | 26 +++ 5 files changed, 406 insertions(+), 18 deletions(-) create mode 100644 recipes-images/images/graphical-tdx-image.bb create mode 100644 recipes-images/images/packagegroup-tdx-cli.bb create mode 100644 recipes-images/images/packagegroup-tdx-graphical.bb create mode 100644 recipes-images/images/verification-tdx-image.bb diff --git a/recipes-images/images/console-tdx-image.bb b/recipes-images/images/console-tdx-image.bb index c8fc120..cb9634e 100644 --- a/recipes-images/images/console-tdx-image.bb +++ b/recipes-images/images/console-tdx-image.bb @@ -1,23 +1,28 @@ -SUMMARY = "Toradex Embedded Linux Console Demo" +inherit core-image + +SUMMARY = "Toradex Embedded Linux Console Image" SUMMARY_append_apalis-tk1-mainline = " (Mainline)" DESCRIPTION = "Image without graphical interface" LICENSE = "MIT" -inherit core-image - -#start of the resulting deployable tarball name +#Prefix to the resulting deployable tarball name export IMAGE_BASENAME = "Console-Image" MACHINE_NAME ?= "${MACHINE}" IMAGE_NAME = "${MACHINE_NAME}_${IMAGE_BASENAME}" -SYSTEMD_DEFAULT_TARGET = "graphical.target" +# Copy Licenses to image /usr/share/common-license +COPY_LIC_MANIFEST ?= "1" +COPY_LIC_DIRS ?= "1" -IMAGE_FEATURES += " \ - ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', '', \ - bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', \ - '', d), d)} \ -" +add_rootfs_version () { + printf "${DISTRO_NAME} ${DISTRO_VERSION} (${DISTRO_CODENAME}) \\\n \\\l\n" > ${IMAGE_ROOTFS}/etc/issue + printf "${DISTRO_NAME} ${DISTRO_VERSION} (${DISTRO_CODENAME}) %%h\n" > ${IMAGE_ROOTFS}/etc/issue.net + printf "${IMAGE_NAME}\n\n" >> ${IMAGE_ROOTFS}/etc/issue + printf "${IMAGE_NAME}\n\n" >> ${IMAGE_ROOTFS}/etc/issue.net +} +# add the rootfs version to the welcome banner +ROOTFS_POSTPROCESS_COMMAND += " add_rootfs_version;" IMAGE_LINGUAS = "en-us" #IMAGE_LINGUAS = "de-de fr-fr en-gb en-us pt-br es-es kn-in ml-in ta-in" @@ -30,20 +35,15 @@ CONMANPKGS ?= "connman connman-plugin-loopback connman-plugin-ethernet connman-p IMAGE_INSTALL += " \ packagegroup-boot \ packagegroup-basic \ + packagegroup-base-tdx-cli \ + packagegroup-machine-tdx-cli \ + packagegroup-wifi-tdx-cli \ udev-extra-rules \ ${CONMANPKGS} \ ${ROOTFS_PKGMANAGE_PKGS} \ timestamp-service \ - ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', \ - 'weston weston-init wayland-terminal-launch', '', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'x11 wayland', \ - 'weston-xwayland xterm', \ - bb.utils.contains('DISTRO_FEATURES', 'x11', \ - 'x-window-xterm', '', d), d)} \ " -require recipes-images/images/tdx-extra.inc - IMAGE_DEV_MANAGER = "udev" IMAGE_INIT_MANAGER = "systemd" IMAGE_INITSCRIPTS = " " diff --git a/recipes-images/images/graphical-tdx-image.bb b/recipes-images/images/graphical-tdx-image.bb new file mode 100644 index 0000000..b472701 --- /dev/null +++ b/recipes-images/images/graphical-tdx-image.bb @@ -0,0 +1,26 @@ +require console-tdx-image.bb + +SUMMARY = "Toradex Embedded Linux Graphical Image" +SUMMARY_append_apalis-tk1-mainline = " (Mainline)" +DESCRIPTION = "Image with a graphical interface, either using weston or X11" + +LICENSE = "MIT" + +#Prefix to the resulting deployable tarball name +export IMAGE_BASENAME = "Graphical-Image" + +SYSTEMD_DEFAULT_TARGET = "graphical.target" + +IMAGE_FEATURES += " \ + ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', '', \ + bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', \ + '', d), d)} \ +" + +IMAGE_INSTALL += " \ + ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', \ + 'weston weston-init weston-examples wayland-terminal-launch', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11 wayland', \ + 'weston-xwayland xterm', \ + bb.utils.contains('DISTRO_FEATURES', 'x11', 'x-window-xterm', '', d), d)} \ +" diff --git a/recipes-images/images/packagegroup-tdx-cli.bb b/recipes-images/images/packagegroup-tdx-cli.bb new file mode 100644 index 0000000..8c03834 --- /dev/null +++ b/recipes-images/images/packagegroup-tdx-cli.bb @@ -0,0 +1,194 @@ +SUMMARY = "Packagegroups which provide cmdline releated packages" + +PACKAGE_ARCH = "${MACHINE_ARCH}" + +inherit packagegroup + +PROVIDES = "${PACKAGES}" +PACKAGES += " \ + packagegroup-base-tdx-cli \ + packagegroup-benchmark-tdx-cli \ + packagegroup-devel-tdx-cli \ + packagegroup-machine-tdx-cli \ + packagegroup-networking-tdx-cli \ + packagegroup-utils-tdx-cli \ + packagegroup-utils-large-tdx-cli \ + packagegroup-wifi-tdx-cli \ + packagegroup-wifi-fw-tdx-cli \ + packagegroup-wifi-fw-large-tdx-cli \ +" + +RDEPENDS_packagegroup-tdx-cli = "\ + packagegroup-base-tdx-cli \ + packagegroup-benchmark-tdx-cli \ + packagegroup-devel-tdx-cli \ + packagegroup-machine-tdx-cli \ + packagegroup-networking-tdx-cli \ + packagegroup-utils-tdx-cli \ + packagegroup-utils-large-tdx-cli \ + packagegroup-wifi-tdx-cli \ + packagegroup-wifi-fw-tdx-cli \ + packagegroup-wifi-fw-large-tdx-cli \ +" + +SUMMARY_packagegroup-base-tdx-cli = "Recommended for any image" +RRECOMMENDS_packagegroup-base-tdx-cli = "\ + can-utils \ + dosfstools \ + e2fsprogs-mke2fs \ + iproute2 \ + libgomp \ + libgpiod-tools \ + libsoc \ + mtd-utils \ + u-boot-fw-utils \ + util-linux-fstrim \ +" + +SUMMARY_packagegroup-benchmark-tdx-cli = "Benchmarking tools" +RRECOMMENDS_packagegroup-benchmark-tdx-cli = "\ + hdparm \ + iperf3 \ + lmbench \ + memtester \ + nbench-byte \ + rt-tests \ + tinymembench \ +" + +SUMMARY_packagegroup-devel-tdx-cli = "Tools useful during development" +RRECOMMENDS_packagegroup-devel-tdx-cli = "\ + devmem2 \ + evtest \ + gdbserver \ + i2c-tools \ + ldd \ + less \ + perf \ + serial-test \ + spitools \ + strace \ +" + +SUMMARY_packagegroup-machine-tdx-cli = "Machine specific tools" +RRECOMMENDS_packagegroup-machine-tdx-cli = "\ +" +RRECOMMENDS_packagegroup-machine-tdx-cli_mx6 = "\ + bmode-usb \ + gpio-export \ +" +RRECOMMENDS_packagegroup-machine-tdx-cli_mx6ull = "\ + bmode-usb \ + mtd-utils-ubifs \ + mwifiexap \ +" +RRECOMMENDS_packagegroup-machine-tdx-cli_mx7 = "\ + mtd-utils-ubifs \ +" +RRECOMMENDS_packagegroup-machine-tdx-cli_mx8 = "\ + mwifiexap \ +" +RRECOMMENDS_packagegroup-machine-tdx-cli_tegra124 = "\ + hdmi-hotplug \ + lvds-tegra124 \ + kernel-modules \ +" +RRECOMMENDS_packagegroup-machine-tdx-cli_tegra124m = "\ + hdmi-hotplug \ + lvds-tegra124 \ + kernel-modules \ +" + +SUMMARY_packagegroup-networking-tdx-cli = "Networking specific tools" +RRECOMMENDS_packagegroup-networking-tdx-cli = "\ + avahi-autoipd \ + curl \ + linuxptp \ + nfs-utils-client \ + ppp \ + ptpd \ +" + +SUMMARY_packagegroup-utils-tdx-cli = "Useful utilities" + +# Entropy source daemon +RANDOM_HELPER = "rng-tools" +RANDOM_HELPER_tegra124 = "haveged" +RANDOM_HELPER_tegra124m = "haveged" + +USB_GADGET_imx = " \ + libusbgx \ + libusbgx-examples \ +" +USB_GADGET_tegra124 = "usb-rndis-systemd" +USB_GADGET_tegra124m = "" + +RRECOMMENDS_packagegroup-utils-tdx-cli = "\ + alsa-utils \ + alsa-utils-aplay \ + alsa-utils-amixer \ + bluez-alsa \ + bzip2 \ + e2fsprogs \ + e2fsprogs-resize2fs \ + e2fsprogs-tune2fs \ + ethtool \ + grep \ + lsof \ + minicom \ + mmc-utils-cos \ + pciutils \ + procps \ + ${RANDOM_HELPER} \ + stress-ng \ + sqlite3 \ + tdx-oak-sensors \ + ${USB_GADGET} \ + util-linux \ +" +RRECOMMENDS_packagegroup-utils-tdx-cli_append_mx6 = " \ + mimetypes \ +" +RRECOMMENDS_packagegroup-utils-tdx-cli_append_mx8 = " \ + cpuburn-a53 \ +" +RRECOMMENDS_packagegroup-utils-tdx-cli_append_tegra124 = " \ + tegrastats \ +" + +SUMMARY_packagegroup-utils-large-tdx-cli = "Useful utilities, but large footprint" +RRECOMMENDS_packagegroup-utils-large-tdx-cli = "\ + aspell \ + file \ + joe \ + packagegroup-dotnet-deps \ +" + +SUMMARY_packagegroup-wifi-tdx-cli = "Useful Wi-Fi utilities and firmware" +BACKPORTS = "" +BACKPORTS_tegra124 = "backports" +RRECOMMENDS_packagegroup-wifi-tdx-cli = "\ + ${BACKPORTS} \ + hostapd \ + wireless-regdb-static \ +" + +SUMMARY_packagegroup-wifi-fw-tdx-cli = "Wi-Fi firmware" +RRECOMMENDS_packagegroup-wifi-fw-tdx-cli = "\ + linux-firmware-ath10k \ + linux-firmware-sd8686 \ + linux-firmware-sd8688 \ + linux-firmware-sd8787 \ + linux-firmware-sd8797 \ + linux-firmware-sd8887 \ + linux-firmware-sd8997 \ + linux-firmware-ralink \ + linux-firmware-rtl8192cu \ + linux-firmware-rtl8188eu \ +" + +SUMMARY_packagegroup-wifi-fw-large-tdx-cli = "Wi-Fi firmware with large footprint" +RRECOMMENDS_packagegroup-wifi-fw-large-tdx-cli = "\ + linux-firmware-ath9k \ + linux-firmware-iwlwifi \ +" diff --git a/recipes-images/images/packagegroup-tdx-graphical.bb b/recipes-images/images/packagegroup-tdx-graphical.bb new file mode 100644 index 0000000..959cb59 --- /dev/null +++ b/recipes-images/images/packagegroup-tdx-graphical.bb @@ -0,0 +1,142 @@ +SUMMARY = "Packagegroups which provide graphical/display/multimedia releated packages" + +PACKAGE_ARCH = "${MACHINE_ARCH}" + +inherit packagegroup + +PROVIDES = "${PACKAGES}" +PACKAGES += " \ + packagegroup-drm-utils-tdx-graphical \ + packagegroup-gstreamer-tdx-graphical \ + packagegroup-gpu-tdx-graphical \ + packagegroup-x11-components-tdx-graphical \ + packagegroup-x11-utils-tdx-graphical \ +" + +RRECOMMENDS_packagegroup-tdx-graphical = " \ + packagegroup-gstreamer-tdx-graphical \ + packagegroup-gpu-tdx-graphical \ + ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', '', \ + bb.utils.contains('DISTRO_FEATURES', 'x11', \ + 'packagegroup-x11-components-tdx-graphical \ + packagegroup-x11-utils-tdx-graphical', \ + '', d), d)} \ +" +RRECOMMENDS_packagegroup-tdx-graphical_append_mx8 = " \ + packagegroup-drm-utils-tdx-graphical \ +" +RRECOMMENDS_packagegroup-tdx-graphical_append_tegra124m = " \ + packagegroup-drm-utils-tdx-graphical \ +" + +SUMMARY_packagegroup-drm-utils-tdx-graphical = "Utilities for DRM, Direct Rendering Manager" +RRECOMMENDS_packagegroup-drm-utils-tdx-graphical = " \ + libdrm-tests \ +" + +SUMMARY_packagegroup-gstreamer-tdx-graphical = "gstreamer packages" +RRECOMMENDS_packagegroup-gstreamer-tdx-graphical = "\ + gstreamer1.0 \ + gstreamer1.0-plugins-base \ + gstreamer1.0-plugins-good \ + gstreamer1.0-plugins-bad \ +" +GSTREAMER_MX6QDL = " \ + gstreamer1.0-plugins-base-ximagesink \ + gstreamer1.0-plugins-imx \ +" +RRECOMMENDS_packagegroup-gstreamer-tdx-graphical_append_mx6dl = " ${GSTREAMER_MX6QDL}" +RRECOMMENDS_packagegroup-gstreamer-tdx-graphical_append_mx6q = " ${GSTREAMER_MX6QDL}" +RRECOMMENDS_packagegroup-gstreamer-tdx-graphical_colibri-imx6ull = "" +RRECOMMENDS_packagegroup-gstreamer-tdx-graphical_append_mx7 = " imx-gst1.0-plugin" +RRECOMMENDS_packagegroup-gstreamer-tdx-graphical_append_mx8 = " \ + imx-gst1.0-plugin \ + imx-gst1.0-plugin-gplay \ + imx-gst1.0-plugin-grecorder \ + packagegroup-fsl-gstreamer1.0-full \ + gst-examples \ +" +RRECOMMENDS_packagegroup-gstreamer-tdx-graphical_tegra124 = " \ + ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "gstreamer1.0-libav", "", d)} \ + gstreamer1.0-plugins-bad-videoparsersbad \ + gstreamer \ + gst-plugins-base \ + gst-plugins-good \ + libgstcodecparsers-1.0 \ + libgstnvegl \ + libgstomx-0.10 \ + libgstomx-1.0 \ +" + +SUMMARY_packagegroup-gpu-utils-tdx-graphical = "Utilities for GPU (OpenGL...)" +IMAGE_INSTALL_OPENCL_IMX = " \ + clpeak \ + libopencl-imx \ +" +RRECOMMENDS_packagegroup-gpu-tdx-graphical = " \ + glmark2 \ +" +IMAGE_INSTALL_MX6QDL = " \ + packagegroup-fsl-gpu-libs \ +" +RRECOMMENDS_packagegroup-gpu-tdx-graphical_append_mx6dl = " ${IMAGE_INSTALL_MX6QDL}" +RRECOMMENDS_packagegroup-gpu-tdx-graphical_append_mx6q = " \ + ${IMAGE_INSTALL_MX6QDL} \ + ${IMAGE_INSTALL_OPENCL_IMX} \ +" +RRECOMMENDS_packagegroup-gpu-tdx-graphical_mx6ull = "" +RRECOMMENDS_packagegroup-gpu-tdx-graphical_append_mx8 = " \ + tinycompress \ + libvdk-imx \ + vulkan-headers \ + vulkan-loader \ + vulkan-tools \ + ${IMAGE_INSTALL_OPENCL_IMX} \ +" +RRECOMMENDS_packagegroup-gpu-tdx-graphical_remove_mx8mm = " \ + vulkan \ + ${IMAGE_INSTALL_OPENCL_IMX} \ +" +RRECOMMENDS_packagegroup-gpu-tdx-graphical_append_mx8qm = " \ + libopenvx-imx \ +" +RRECOMMENDS_packagegroup-gpu-tdx-graphical_append_tegra124 = " \ + libglu \ + freeglut \ + tiff \ + xvinfo \ +" +RRECOMMENDS_packagegroup-gpu-tdx-graphical_append_tegra124m = " \ + libglu \ + freeglut \ + tiff \ + xvinfo \ +" + +SUMMARY_packagegroup-x11-components-tdx-graphical = "Components of X11" +RRECOMMENDS_packagegroup-x11-components-tdx-graphical = "\ + ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', '', \ + bb.utils.contains('DISTRO_FEATURES', 'x11', \ + 'libxcursor \ + libxdamage \ + libxres \ + libxvmc \ + xcursor-transparent-theme \ + xorg-minimal-fonts \ + xrdb \ + xserver-xorg-extension-dbe \ + xserver-xorg-extension-extmod \ + xserver-xorg-multimedia-modules \ + xserver-xorg-utils', \ + '', d), d)} \ +" + +SUMMARY_packagegroup-x11-utils-tdx-graphical = "Utilities for X11" +RRECOMMENDS_packagegroup-x11-utils-tdx-graphical = " \ + ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', '', \ + bb.utils.contains('DISTRO_FEATURES', 'x11', \ + 'scrot \ + setxkbmap \ + unclutter', \ + '', d), d)} \ +" diff --git a/recipes-images/images/verification-tdx-image.bb b/recipes-images/images/verification-tdx-image.bb new file mode 100644 index 0000000..40fc032 --- /dev/null +++ b/recipes-images/images/verification-tdx-image.bb @@ -0,0 +1,26 @@ +require graphical-tdx-image.bb + +SUMMARY = "Toradex Embedded Linux Verification Image" +SUMMARY_append_apalis-tk1-mainline = " (Mainline)" +DESCRIPTION = "Image for BSP verification" + +LICENSE = "MIT" + +#Prefix to the resulting deployable tarball name +export IMAGE_BASENAME = "Verification-Image" + +IMAGE_INSTALL += " \ + packagegroup-tdx-cli \ + packagegroup-tdx-graphical \ + \ + bash \ + coreutils \ + less \ + makedevs \ + mime-support \ + util-linux \ + v4l-utils \ + \ + gpicview \ + media-files \ +" -- cgit v1.2.3