xref: /OK3568_Linux_fs/yocto/poky/meta/recipes-core/images/core-image-tiny-initramfs.bb (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1# Simple initramfs image artifact generation for tiny images.
2DESCRIPTION = "Tiny image capable of booting a device. The kernel includes \
3the Minimal RAM-based Initial Root Filesystem (initramfs), which finds the \
4first 'init' program more efficiently. core-image-tiny-initramfs doesn't \
5actually generate an image but rather generates boot and rootfs artifacts \
6that can subsequently be picked up by external image generation tools such as wic."
7
8VIRTUAL-RUNTIME_dev_manager ?= "busybox-mdev"
9
10PACKAGE_INSTALL = "initramfs-live-boot-tiny packagegroup-core-boot dropbear ${VIRTUAL-RUNTIME_base-utils} ${VIRTUAL-RUNTIME_dev_manager} base-passwd ${ROOTFS_BOOTSTRAP_INSTALL}"
11
12# Do not pollute the initrd image with rootfs features
13IMAGE_FEATURES = ""
14
15export IMAGE_BASENAME = "core-image-tiny-initramfs"
16IMAGE_NAME_SUFFIX ?= ""
17IMAGE_LINGUAS = ""
18
19LICENSE = "MIT"
20
21# don't actually generate an image, just the artifacts needed for one
22IMAGE_FSTYPES = "${INITRAMFS_FSTYPES}"
23
24inherit core-image
25
26IMAGE_ROOTFS_SIZE = "8192"
27IMAGE_ROOTFS_EXTRA_SPACE = "0"
28
29# Use the same restriction as initramfs-live-install
30COMPATIBLE_HOST = "(i.86|x86_64|aarch64|arm).*-linux"
31
32python tinyinitrd () {
33  # Modify our init file so the user knows we drop to shell prompt on purpose
34  newinit = None
35  with open(d.expand('${IMAGE_ROOTFS}/init'), 'r') as init:
36    newinit = init.read()
37    newinit = newinit.replace('Cannot find $ROOT_IMAGE file in /run/media/* , dropping to a shell ', 'Poky Tiny Reference Distribution:')
38  with open(d.expand('${IMAGE_ROOTFS}/init'), 'w') as init:
39    init.write(newinit)
40}
41
42IMAGE_PREPROCESS_COMMAND += "tinyinitrd;"
43
44QB_KERNEL_CMDLINE_APPEND += "debugshell=3 init=/bin/busybox sh init"
45