diff options
Diffstat (limited to 'meta/recipes-core/images')
9 files changed, 399 insertions, 98 deletions
diff --git a/meta/recipes-core/images/build-appliance-image/README_VirtualBox_Guest_Additions.txt b/meta/recipes-core/images/build-appliance-image/README_VirtualBox_Guest_Additions.txt new file mode 100644 index 0000000000..e7298f2c3c --- /dev/null +++ b/meta/recipes-core/images/build-appliance-image/README_VirtualBox_Guest_Additions.txt @@ -0,0 +1,75 @@ + +Installing VirtualBox Guest Additions +===================================== + +In order to use VirtualBox guest additions, they have to be build +first. They may have to be rebuilt each time the time you upgrade to +a new version of VirtualBox. + +Make sure VM is configured with an Optical Drive. + +Please follow these steps to install the VirtualBox Guest Additions on the +Build Appliance VM: + +1. Boot VM, select root "Terminal" instead of the default "Terminal <2>" + +2. Insert Guest additions CD into VM optical drive: + VM menu "Devices"->"Optical Drives"-> Select "VBoxGuestAdditions<version>.iso" + +3. Find your CDROM device. Typically it is /dev/hda for IDE. You can determine + the actual name <cdromedev> by viewing the cdrom info: + + # cat /proc/sys/dev/cdrom/info + + Mount the cdrom drive: + # mount -t iso9660 <cdromdev> /media/cdrom + i.e.: + # mount -t iso9660 /dev/hda /media/cdrom + +4. Build the additions: + + First, we need to build of some prerequisite utilities. + (This is only needed to be done once) + + # cd /lib/modules/<kernel-version>-yocto-standard/build + # make scripts + + Now build the guest additions: + + # /media/cdrom/VBoxLinuxAdditions.run --nox11 + + At this point, providing there were no build errors, the guest additions are + built and installed. + +5. Check if vbox additions running: + + # /etc/init.d/vboxadd status + + If not running, try manually starting: + + # /etc/init.d/vboxadd start + +6. Check if additons actually work, in particular folder sharing. + + Host: Devices->Shared Folders->Shared Folder Settings... + Add any host folder and name it (i.e. "images") + + Guest VM: create mount point for the shared folder, i.e.: + + # mkdir ~/my-host + + Mount the shared folder: (Watch out for spelling: it's vboxsf NOT vboxfs) + + # mount -t vboxsf images ~/my-host + + Verify mount, should see the contents of the shared folder: + + # ls ~/my-host + + + + + + + + diff --git a/meta/recipes-core/images/build-appliance-image/README_VirtualBox_Toaster.txt b/meta/recipes-core/images/build-appliance-image/README_VirtualBox_Toaster.txt new file mode 100644 index 0000000000..a0aede2fbf --- /dev/null +++ b/meta/recipes-core/images/build-appliance-image/README_VirtualBox_Toaster.txt @@ -0,0 +1,78 @@ + +Running Toaster in VirtualBox +============================= + +Toaster is launched via the command in VM: + + $ source toaster start webport=<IPADDR:PORT> + +The interaction with Toaster web server is done via a host internet +browser. +The particular steps depend on the actual networking being used +by the VirtualBox. + + +Bridged Network +=============== + +Find out your VM network IP address: + + $ ifconfig + +IP address is listed under eth0 inet addr. +It should be something like: + inet addr:192.168.1.18 + +Launch the Toaster web server in VM: + + $ source toaster start webport=192.168.1.18:8000 + +Interact with the Toaster web server with your host browser using URL: + + http://192.168.1.18:8000 + + +NAT Network +=========== +Find out your VM network IP address: + + $ ifconfig + +IP address is listed under eth0 inet addr. +For NAT network it should be something like: + inet addr:10.0.2.15 + +When using NAT network, the VM web server can be accessed using +Port Forwarding. + +Using the VirtualBox GUI, navigate to: + Settings->Network->Adapter1 + +You should set: + Attached to: NAT + +Select "Advanced", click on "Port Forwarding" + +This will open a new dialog box "Port Forwarding Rules". +Create a new rule that looks like this: + +| Name | Protocol | Host IP | Host Port | Guest IP | Guest Port | ++-------+----------+---------+-----------+----------+------------+ +| Rule1 | TCP | | 8000 | | 8000 | +------------------------------------------------------------------ + +Now we can launch the Toaster web server in VM: + + $ source toaster start webport=10.0.2.15:8000 + +Interact with the Toaster web server with your host browser using URL: + + http://127.0.0.1:8000 + + + + + + + + diff --git a/meta/recipes-core/images/build-appliance-image_12.0.1.bb b/meta/recipes-core/images/build-appliance-image_12.0.1.bb deleted file mode 100644 index 0a86ba4b3d..0000000000 --- a/meta/recipes-core/images/build-appliance-image_12.0.1.bb +++ /dev/null @@ -1,93 +0,0 @@ -SUMMARY = "An image containing the build system itself" -DESCRIPTION = "An image containing the build system that you can boot and run using either VMware Player or VMware Workstation." -HOMEPAGE = "http://www.yoctoproject.org/documentation/build-appliance" - -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690 \ - file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" - -IMAGE_INSTALL = "packagegroup-core-boot packagegroup-core-ssh-openssh packagegroup-self-hosted" - -IMAGE_FEATURES += "x11-base package-management splash" - -# Ensure there's enough space to do a core-image-sato build, with rm_work enabled -IMAGE_ROOTFS_EXTRA_SPACE = "41943040" - -# Do a quiet boot with limited console messages -APPEND += "rootfstype=ext4 quiet" - -DEPENDS = "zip-native" -IMAGE_FSTYPES = "vmdk" - -inherit core-image - -SRCREV ?= "d01cd53429b1c20f01dac97f1b9b659cb9dc9812" -SRC_URI = "git://git.yoctoproject.org/poky \ - file://Yocto_Build_Appliance.vmx \ - file://Yocto_Build_Appliance.vmxf \ - " - -IMAGE_CMD_ext4_append () { - # We don't need to reserve much space for root, 0.5% is more than enough - tune2fs -m 0.5 ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ext4 -} - -fakeroot do_populate_poky_src () { - # Because fetch2's git's unpack uses -s cloneflag, the unpacked git repo - # will become invalid in the target. - rm -rf ${WORKDIR}/git/.git - rm -f ${WORKDIR}/git/.gitignore - - cp -Rp ${WORKDIR}/git ${IMAGE_ROOTFS}/home/builder/poky - - mkdir -p ${IMAGE_ROOTFS}/home/builder/poky/build/conf - mkdir -p ${IMAGE_ROOTFS}/home/builder/poky/build/downloads - cp -RpL ${DL_DIR}/* ${IMAGE_ROOTFS}/home/builder/poky/build/downloads/ - - # Remove the git2_* tarballs -- this is ok since we still have the git2/. - rm -rf ${IMAGE_ROOTFS}/home/builder/poky/build/downloads/git2_* - - echo "/usr/bin" > ${IMAGE_ROOTFS}/home/builder/poky/build/pseudodone - echo "INHERIT += \"rm_work\"" >> ${IMAGE_ROOTFS}/home/builder/poky/build/conf/auto.conf - mkdir -p ${IMAGE_ROOTFS}/home/builder/pseudo - echo "export PSEUDO_PREFIX=/usr" >> ${IMAGE_ROOTFS}/home/builder/.bashrc - echo "export PSEUDO_LOCALSTATEDIR=/home/builder/pseudo" >> ${IMAGE_ROOTFS}/home/builder/.bashrc - echo "export PSEUDO_LIBDIR=/usr/lib/pseudo/lib64" >> ${IMAGE_ROOTFS}/home/builder/.bashrc - - chown builder.builder ${IMAGE_ROOTFS}/home/builder/pseudo - - chown -R builder.builder ${IMAGE_ROOTFS}/home/builder/poky - - # Allow builder to use sudo to setup tap/tun - echo "builder ALL=(ALL) NOPASSWD: ALL" >> ${IMAGE_ROOTFS}/etc/sudoers - - # Use Clearlooks GTK+ theme - mkdir -p ${IMAGE_ROOTFS}/etc/gtk-2.0 - echo 'gtk-theme-name = "Clearlooks"' > ${IMAGE_ROOTFS}/etc/gtk-2.0/gtkrc -} - -IMAGE_PREPROCESS_COMMAND += "do_populate_poky_src; " - -addtask rootfs after do_unpack - -python () { - # Ensure we run these usually noexec tasks - d.delVarFlag("do_fetch", "noexec") - d.delVarFlag("do_unpack", "noexec") -} - -create_bundle_files () { - cd ${WORKDIR} - mkdir -p Yocto_Build_Appliance - cp *.vmx* Yocto_Build_Appliance - ln -sf ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.vmdk Yocto_Build_Appliance/Yocto_Build_Appliance.vmdk - zip -r ${DEPLOY_DIR_IMAGE}/Yocto_Build_Appliance-${DATETIME}.zip Yocto_Build_Appliance - ln -sf Yocto_Build_Appliance-${DATETIME}.zip ${DEPLOY_DIR_IMAGE}/Yocto_Build_Appliance.zip -} - -python do_bundle_files() { - bb.build.exec_func('create_bundle_files', d) -} - -addtask bundle_files after do_vmimg before do_build -do_bundle_files[nostamp] = "1" diff --git a/meta/recipes-core/images/build-appliance-image_15.0.0.bb b/meta/recipes-core/images/build-appliance-image_15.0.0.bb new file mode 100644 index 0000000000..94cafdbbe4 --- /dev/null +++ b/meta/recipes-core/images/build-appliance-image_15.0.0.bb @@ -0,0 +1,137 @@ +SUMMARY = "An image containing the build system itself" +DESCRIPTION = "An image containing the build system that you can boot and run using either VirtualBox, VMware Player or VMware Workstation." +HOMEPAGE = "http://www.yoctoproject.org/documentation/build-appliance" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" + +IMAGE_INSTALL = "packagegroup-core-boot packagegroup-core-ssh-openssh packagegroup-self-hosted \ + kernel-dev kernel-devsrc connman connman-plugin-ethernet dhcpcd \ + tzdata python3-pip perl-misc" + +IMAGE_FEATURES += "x11-base package-management splash" + +QB_MEM = '${@bb.utils.contains("DISTRO_FEATURES", "opengl", "-m 512", "-m 256", d)}' + +# Ensure there's enough space to do a core-image-sato build, with rm_work enabled +IMAGE_ROOTFS_EXTRA_SPACE = "41943040" + +# Do a quiet boot with limited console messages +APPEND += "rootfstype=ext4 quiet" + +DEPENDS = "zip-native python3-pip-native" +IMAGE_FSTYPES = "wic.vmdk wic.vhd wic.vhdx" + +inherit core-image setuptools3 + +SRCREV ?= "156767d3ed6f044a6b2dd43fc1fea13852e761a2" +SRC_URI = "git://git.yoctoproject.org/poky;branch=honister \ + file://Yocto_Build_Appliance.vmx \ + file://Yocto_Build_Appliance.vmxf \ + file://README_VirtualBox_Guest_Additions.txt \ + file://README_VirtualBox_Toaster.txt \ + " +RECIPE_NO_UPDATE_REASON = "Recipe is recursive and handled as part of the release process" +BA_INCLUDE_SOURCES ??= "0" + +IMAGE_CMD:ext4:append () { + # We don't need to reserve much space for root, 0.5% is more than enough + tune2fs -m 0.5 ${IMGDEPLOYDIR}/${IMAGE_NAME}.rootfs.ext4 +} + +fakeroot do_populate_poky_src () { + # Because fetch2's git's unpack uses -s cloneflag, the unpacked git repo + # will become invalid in the target. + rm -rf ${WORKDIR}/git/.git + rm -f ${WORKDIR}/git/.gitignore + + cp -R ${WORKDIR}/git ${IMAGE_ROOTFS}/home/builder/poky + + mkdir -p ${IMAGE_ROOTFS}/home/builder/poky/build/conf + mkdir -p ${IMAGE_ROOTFS}/home/builder/poky/build/downloads + if [ ${BA_INCLUDE_SOURCES} != 0 ]; then + cp -RpL ${DL_DIR}/* ${IMAGE_ROOTFS}/home/builder/poky/build/downloads/ + # Remove the git2_* tarballs -- this is ok since we still have the git2/. + rm -rf ${IMAGE_ROOTFS}/home/builder/poky/build/downloads/git2_* + fi + + # Place the README_VirtualBox_Guest_Additions file in builders home folder. + cp ${WORKDIR}/README_VirtualBox_Guest_Additions.txt ${IMAGE_ROOTFS}/home/builder/ + + # Place the README_VirtualBox_Toaster file in builders home folder. + cp ${WORKDIR}/README_VirtualBox_Toaster.txt ${IMAGE_ROOTFS}/home/builder/ + + echo "INHERIT += \"rm_work\"" >> ${IMAGE_ROOTFS}/home/builder/poky/build/conf/auto.conf + echo "export LC_ALL=en_US.utf8" >> ${IMAGE_ROOTFS}/home/builder/.bashrc + + # Also save (for reference only) the actual SRCREV used to create this image + echo "export BA_SRCREV=${SRCREV}" >> ${IMAGE_ROOTFS}/home/builder/.bashrc + echo "" >> ${IMAGE_ROOTFS}/home/builder/.bashrc + echo 'export PATH=$PATH:/sbin' >> ${IMAGE_ROOTFS}/home/builder/.bashrc + echo "" >> ${IMAGE_ROOTFS}/home/builder/.bashrc + + echo "# If working behind a proxy and using the provided oe-git-proxy script" >> ${IMAGE_ROOTFS}/home/builder/.bashrc + echo "# you need to set ALL_PROXY based on your proxy settings." >> ${IMAGE_ROOTFS}/home/builder/.bashrc + echo "# Example ALL_PROXY values:" >> ${IMAGE_ROOTFS}/home/builder/.bashrc + echo "# export ALL_PROXY=https://proxy.example.com:8080" >> ${IMAGE_ROOTFS}/home/builder/.bashrc + echo "# export ALL_PROXY=socks://socks.example.com:1080" >> ${IMAGE_ROOTFS}/home/builder/.bashrc + + chown -R builder:builder ${IMAGE_ROOTFS}/home/builder/poky + chmod -R ug+rw ${IMAGE_ROOTFS}/home/builder/poky + + # Assume we will need CDROM to install guest additions + mkdir -p ${IMAGE_ROOTFS}/media/cdrom + + # Allow builder to use sudo + echo "builder ALL=(ALL) NOPASSWD: ALL" >> ${IMAGE_ROOTFS}/etc/sudoers + + # Load tap/tun at startup + rm -f ${IMAGE_ROOTFS}/sbin/iptables + lnr ${IMAGE_ROOTFS}/usr/sbin/iptables ${IMAGE_ROOTFS}/sbin/iptables + echo "tun" >> ${IMAGE_ROOTFS}/etc/modules + + # Use Clearlooks GTK+ theme + mkdir -p ${IMAGE_ROOTFS}/etc/gtk-2.0 + echo 'gtk-theme-name = "Clearlooks"' > ${IMAGE_ROOTFS}/etc/gtk-2.0/gtkrc + + # Install modules needed for toaster + export STAGING_LIBDIR=${STAGING_LIBDIR_NATIVE} + export STAGING_INCDIR=${STAGING_INCDIR_NATIVE} + export HOME=${IMAGE_ROOTFS}/home/builder + mkdir -p ${IMAGE_ROOTFS}/home/builder/.cache/pip + pip3_install_params="--user -I -U -v -r ${IMAGE_ROOTFS}/home/builder/poky/bitbake/toaster-requirements.txt" + if [ -n "${http_proxy}" ]; then + pip3_install_params="${pip3_install_params} --proxy ${http_proxy}" + fi + pip3 install ${pip3_install_params} + chown -R builder:builder ${IMAGE_ROOTFS}/home/builder/.local + chown -R builder:builder ${IMAGE_ROOTFS}/home/builder/.cache +} + +IMAGE_PREPROCESS_COMMAND += "do_populate_poky_src; " + +addtask rootfs after do_unpack + +python () { + # Ensure we run these usually noexec tasks + d.delVarFlag("do_fetch", "noexec") + d.delVarFlag("do_unpack", "noexec") +} + +create_bundle_files () { + cd ${WORKDIR} + mkdir -p Yocto_Build_Appliance + cp *.vmx* Yocto_Build_Appliance + ln -sf ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.wic.vmdk Yocto_Build_Appliance/Yocto_Build_Appliance.vmdk + ln -sf ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.wic.vhdx Yocto_Build_Appliance/Yocto_Build_Appliance.vhdx + ln -sf ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.wic.vhd Yocto_Build_Appliance/Yocto_Build_Appliance.vhd + zip -r ${IMGDEPLOYDIR}/Yocto_Build_Appliance-${DATETIME}.zip Yocto_Build_Appliance + ln -sf Yocto_Build_Appliance-${DATETIME}.zip ${IMGDEPLOYDIR}/Yocto_Build_Appliance.zip +} +create_bundle_files[vardepsexclude] = "DATETIME" + +python do_bundle_files() { + bb.build.exec_func('create_bundle_files', d) +} + +addtask bundle_files after do_image_wic before do_image_complete diff --git a/meta/recipes-core/images/core-image-minimal-initramfs.bb b/meta/recipes-core/images/core-image-minimal-initramfs.bb index 1f0fa9580b..664fe7310e 100644 --- a/meta/recipes-core/images/core-image-minimal-initramfs.bb +++ b/meta/recipes-core/images/core-image-minimal-initramfs.bb @@ -3,12 +3,21 @@ DESCRIPTION = "Small image capable of booting a device. The kernel includes \ the Minimal RAM-based Initial Root Filesystem (initramfs), which finds the \ first 'init' program more efficiently." -PACKAGE_INSTALL = "initramfs-live-boot initramfs-live-install initramfs-live-install-efi busybox udev base-passwd ${ROOTFS_BOOTSTRAP_INSTALL}" +INITRAMFS_SCRIPTS ?= "\ + initramfs-framework-base \ + initramfs-module-setup-live \ + initramfs-module-udev \ + initramfs-module-install \ + initramfs-module-install-efi \ + " + +PACKAGE_INSTALL = "${INITRAMFS_SCRIPTS} ${VIRTUAL-RUNTIME_base-utils} udev base-passwd ${ROOTFS_BOOTSTRAP_INSTALL}" # Do not pollute the initrd image with rootfs features IMAGE_FEATURES = "" -export IMAGE_BASENAME = "core-image-minimal-initramfs" +export IMAGE_BASENAME = "${MLPREFIX}core-image-minimal-initramfs" +IMAGE_NAME_SUFFIX ?= "" IMAGE_LINGUAS = "" LICENSE = "MIT" @@ -17,5 +26,7 @@ IMAGE_FSTYPES = "${INITRAMFS_FSTYPES}" inherit core-image IMAGE_ROOTFS_SIZE = "8192" +IMAGE_ROOTFS_EXTRA_SPACE = "0" -BAD_RECOMMENDATIONS += "busybox-syslog" +# Use the same restriction as initramfs-module-install +COMPATIBLE_HOST = '(x86_64.*|i.86.*|arm.*|aarch64.*)-(linux.*|freebsd.*)' diff --git a/meta/recipes-core/images/core-image-minimal.bb b/meta/recipes-core/images/core-image-minimal.bb index 8dd77b3472..84343adcd8 100644 --- a/meta/recipes-core/images/core-image-minimal.bb +++ b/meta/recipes-core/images/core-image-minimal.bb @@ -1,6 +1,6 @@ SUMMARY = "A small image just capable of allowing a device to boot." -IMAGE_INSTALL = "packagegroup-core-boot ${ROOTFS_PKGMANAGE_BOOTSTRAP} ${CORE_IMAGE_EXTRA_INSTALL}" +IMAGE_INSTALL = "packagegroup-core-boot ${CORE_IMAGE_EXTRA_INSTALL}" IMAGE_LINGUAS = " " @@ -9,4 +9,4 @@ LICENSE = "MIT" inherit core-image IMAGE_ROOTFS_SIZE ?= "8192" -IMAGE_ROOTFS_EXTRA_SPACE_append = "${@bb.utils.contains("DISTRO_FEATURES", "systemd", " + 4096", "" ,d)}" +IMAGE_ROOTFS_EXTRA_SPACE:append = "${@bb.utils.contains("DISTRO_FEATURES", "systemd", " + 4096", "", d)}" diff --git a/meta/recipes-core/images/core-image-ptest-all.bb b/meta/recipes-core/images/core-image-ptest-all.bb new file mode 100644 index 0000000000..1472451675 --- /dev/null +++ b/meta/recipes-core/images/core-image-ptest-all.bb @@ -0,0 +1,25 @@ +inherit features_check +REQUIRED_DISTRO_FEATURES = "ptest" + +require core-image-minimal.bb +require conf/distro/include/ptest-packagelists.inc + +DESCRIPTION += "Also includes ptest packages." +HOMEPAGE = "https://www.yoctoproject.org/" + +# Include the full set of ptests +IMAGE_INSTALL += "${PTESTS_FAST} ${PTESTS_SLOW}" + +# This image is sufficiently large (~1.8GB) that we need to be careful that it fits in a live +# image (which has a 4GB limit), so nullify the overhead factor (1.3x out of the +# box) and explicitly add just 1100MB. +# strace-ptest in particular needs more than 500MB +IMAGE_OVERHEAD_FACTOR = "1.0" +IMAGE_ROOTFS_EXTRA_SPACE = "1124288" + +# ptests need more memory than standard to avoid the OOM killer +# also lttng-tools needs /tmp that has at least 2G +QB_MEM = "-m 4096" + +# Sadly at the moment the full set of ptests is not robust enough and sporadically fails in random places +PTEST_EXPECT_FAILURE = "1" diff --git a/meta/recipes-core/images/core-image-ptest-fast.bb b/meta/recipes-core/images/core-image-ptest-fast.bb new file mode 100644 index 0000000000..40df274c4c --- /dev/null +++ b/meta/recipes-core/images/core-image-ptest-fast.bb @@ -0,0 +1,24 @@ +inherit features_check +REQUIRED_DISTRO_FEATURES = "ptest" + +require core-image-minimal.bb +require conf/distro/include/ptest-packagelists.inc + +# Include only fast (< 30 sec) ptests +IMAGE_INSTALL += "${PTESTS_FAST}" + +DESCRIPTION += "Also includes ptest packages with fast execution times to allow for more automated QA." +HOMEPAGE = "https://www.yoctoproject.org/" + +# This image is sufficiently large (~1.8GB) that it can't actually fit in a live +# image (which has a 4GB limit), so nullify the overhead factor (1.3x out of the +# box) and explicitly add just 1500MB. +# strace-ptest in particular needs more than 500MB +IMAGE_OVERHEAD_FACTOR = "1.0" +IMAGE_ROOTFS_EXTRA_SPACE = "1524288" + +# ptests need more memory than standard to avoid the OOM killer +QB_MEM = "-m 1024" + +# Sadly at the moment the fast set of ptests is not robust enough and sporadically fails in a couple of places +PTEST_EXPECT_FAILURE = "1" diff --git a/meta/recipes-core/images/core-image-tiny-initramfs.bb b/meta/recipes-core/images/core-image-tiny-initramfs.bb new file mode 100644 index 0000000000..47470849ed --- /dev/null +++ b/meta/recipes-core/images/core-image-tiny-initramfs.bb @@ -0,0 +1,44 @@ +# Simple initramfs image artifact generation for tiny images. +DESCRIPTION = "Tiny image capable of booting a device. The kernel includes \ +the Minimal RAM-based Initial Root Filesystem (initramfs), which finds the \ +first 'init' program more efficiently. core-image-tiny-initramfs doesn't \ +actually generate an image but rather generates boot and rootfs artifacts \ +that can subsequently be picked up by external image generation tools such as wic." + +VIRTUAL-RUNTIME_dev_manager ?= "busybox-mdev" + +PACKAGE_INSTALL = "initramfs-live-boot-tiny packagegroup-core-boot dropbear ${VIRTUAL-RUNTIME_base-utils} ${VIRTUAL-RUNTIME_dev_manager} base-passwd ${ROOTFS_BOOTSTRAP_INSTALL}" + +# Do not pollute the initrd image with rootfs features +IMAGE_FEATURES = "" + +export IMAGE_BASENAME = "core-image-tiny-initramfs" +IMAGE_NAME_SUFFIX ?= "" +IMAGE_LINGUAS = "" + +LICENSE = "MIT" + +# don't actually generate an image, just the artifacts needed for one +IMAGE_FSTYPES = "${INITRAMFS_FSTYPES}" + +inherit core-image + +IMAGE_ROOTFS_SIZE = "8192" +IMAGE_ROOTFS_EXTRA_SPACE = "0" + +# Use the same restriction as initramfs-live-install +COMPATIBLE_HOST = "(i.86|x86_64|aarch64).*-linux" + +python tinyinitrd () { + # Modify our init file so the user knows we drop to shell prompt on purpose + newinit = None + with open(d.expand('${IMAGE_ROOTFS}/init'), 'r') as init: + newinit = init.read() + newinit = newinit.replace('Cannot find $ROOT_IMAGE file in /run/media/* , dropping to a shell ', 'Poky Tiny Reference Distribution:') + with open(d.expand('${IMAGE_ROOTFS}/init'), 'w') as init: + init.write(newinit) +} + +IMAGE_PREPROCESS_COMMAND += "tinyinitrd;" + +QB_KERNEL_CMDLINE_APPEND += "debugshell=3 init=/bin/busybox sh init" |