xref: /openbmc/openbmc/poky/meta/recipes-core/initrdscripts/initramfs-framework_1.0.bb (revision edff49234e31f23dc79f823473c9e286a21596c1)
1SUMMARY = "Modular initramfs system"
2LICENSE = "MIT"
3LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
4RDEPENDS:${PN} += "${VIRTUAL-RUNTIME_base-utils}"
5RRECOMMENDS:${PN} = "${VIRTUAL-RUNTIME_base-utils-syslog}"
6
7
8inherit allarch
9
10SRC_URI = "file://init \
11           file://exec \
12           file://nfsrootfs \
13           file://rootfs \
14           file://finish \
15           file://mdev \
16           file://udev \
17           file://e2fs \
18           file://debug \
19           file://lvm \
20           file://overlayroot \
21          "
22
23S = "${WORKDIR}/sources"
24UNPACKDIR = "${S}"
25
26do_install() {
27    install -d ${D}/init.d
28
29    # base
30    install -m 0755 ${S}/init ${D}/init
31    install -m 0755 ${S}/nfsrootfs ${D}/init.d/85-nfsrootfs
32    install -m 0755 ${S}/rootfs ${D}/init.d/90-rootfs
33    install -m 0755 ${S}/finish ${D}/init.d/99-finish
34
35    # exec
36    install -m 0755 ${S}/exec ${D}/init.d/89-exec
37
38    # mdev
39    install -m 0755 ${S}/mdev ${D}/init.d/01-mdev
40
41    # udev
42    install -m 0755 ${S}/udev ${D}/init.d/01-udev
43
44    # e2fs
45    install -m 0755 ${S}/e2fs ${D}/init.d/10-e2fs
46
47    # debug
48    install -m 0755 ${S}/debug ${D}/init.d/00-debug
49
50    # lvm
51    install -m 0755 ${S}/lvm ${D}/init.d/09-lvm
52
53    # overlayroot needs to run after rootfs module but before finish
54    install -m 0755 ${S}/overlayroot ${D}/init.d/91-overlayroot
55
56    # Create device nodes expected by some kernels in initramfs
57    # before even executing /init.
58    install -d ${D}/dev
59    mknod -m 622 ${D}/dev/console c 5 1
60}
61
62PACKAGES = "${PN}-base \
63            initramfs-module-exec \
64            initramfs-module-mdev \
65            initramfs-module-udev \
66            initramfs-module-e2fs \
67            initramfs-module-nfsrootfs \
68            initramfs-module-rootfs \
69            initramfs-module-debug \
70            initramfs-module-lvm \
71            initramfs-module-overlayroot \
72           "
73
74FILES:${PN}-base = "/init /init.d/99-finish /dev"
75
76# 99-finish in base depends on some other module which mounts
77# the rootfs, like 90-rootfs. To replace that default, use
78# BAD_RECOMMENDATIONS += "initramfs-module-rootfs" in your
79# initramfs recipe and install something else, or install
80# something that runs earlier (for example, a 89-my-rootfs)
81# and mounts the rootfs. Then 90-rootfs will proceed immediately.
82RRECOMMENDS:${PN}-base += "initramfs-module-rootfs"
83
84SUMMARY:initramfs-module-exec = "initramfs support for easy execution of applications"
85RDEPENDS:initramfs-module-exec = "${PN}-base"
86FILES:initramfs-module-exec = "/init.d/89-exec"
87
88SUMMARY:initramfs-module-mdev = "initramfs support for mdev"
89RDEPENDS:initramfs-module-mdev = "${PN}-base busybox-mdev"
90FILES:initramfs-module-mdev = "/init.d/01-mdev"
91
92SUMMARY:initramfs-module-udev = "initramfs support for udev"
93RDEPENDS:initramfs-module-udev = "${PN}-base udev"
94FILES:initramfs-module-udev = "/init.d/01-udev"
95
96SUMMARY:initramfs-module-e2fs = "initramfs support for ext4/ext3/ext2 filesystems"
97RDEPENDS:initramfs-module-e2fs = "${PN}-base"
98FILES:initramfs-module-e2fs = "/init.d/10-e2fs"
99
100SUMMARY:initramfs-module-nfsrootfs = "initramfs support for locating and mounting the root partition via nfs"
101RDEPENDS:initramfs-module-nfsrootfs = "${PN}-base"
102FILES:initramfs-module-nfsrootfs = "/init.d/85-nfsrootfs"
103
104SUMMARY:initramfs-module-rootfs = "initramfs support for locating and mounting the root partition"
105RDEPENDS:initramfs-module-rootfs = "${PN}-base"
106FILES:initramfs-module-rootfs = "/init.d/90-rootfs"
107
108SUMMARY:initramfs-module-debug = "initramfs dynamic debug support"
109RDEPENDS:initramfs-module-debug = "${PN}-base"
110FILES:initramfs-module-debug = "/init.d/00-debug"
111
112SUMMARY:initramfs-module-lvm = "initramfs lvm rootfs support"
113RDEPENDS:initramfs-module-lvm = "${PN}-base"
114FILES:initramfs-module-lvm = "/init.d/09-lvm"
115
116SUMMARY:initramfs-module-overlayroot = "initramfs support for mounting a RW overlay on top of a RO root filesystem"
117RDEPENDS:initramfs-module-overlayroot = "${PN}-base initramfs-module-rootfs"
118FILES:initramfs-module-overlayroot = "/init.d/91-overlayroot"
119