blob: 4e76e200266bc127e2e9ce307feb33762bfa1eaa [file] [log] [blame]
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001SUMMARY = "Modular initramfs system"
2LICENSE = "MIT"
3LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
Patrick Williams213cb262021-08-07 19:21:33 -05004RDEPENDS:${PN} += "${VIRTUAL-RUNTIME_base-utils}"
5RRECOMMENDS:${PN} = "${VIRTUAL-RUNTIME_base-utils-syslog}"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006
Brad Bishopd7bf8c12018-02-25 22:55:05 -05007PR = "r4"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05008
9inherit allarch
10
11SRC_URI = "file://init \
Brad Bishop316dfdd2018-06-25 12:45:53 -040012 file://exec \
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080013 file://nfsrootfs \
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014 file://rootfs \
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015 file://finish \
16 file://mdev \
17 file://udev \
18 file://e2fs \
Brad Bishopd7bf8c12018-02-25 22:55:05 -050019 file://debug \
Brad Bishop19323692019-04-05 15:28:33 -040020 file://lvm \
Andrew Geissler9aee5002022-03-30 16:27:02 +000021 file://overlayroot \
Brad Bishopd7bf8c12018-02-25 22:55:05 -050022 "
Patrick Williamsc124f4f2015-09-15 14:41:29 -050023
24S = "${WORKDIR}"
25
26do_install() {
27 install -d ${D}/init.d
28
29 # base
30 install -m 0755 ${WORKDIR}/init ${D}/init
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080031 install -m 0755 ${WORKDIR}/nfsrootfs ${D}/init.d/85-nfsrootfs
Patrick Williamsc0f7c042017-02-23 20:41:17 -060032 install -m 0755 ${WORKDIR}/rootfs ${D}/init.d/90-rootfs
Patrick Williamsc124f4f2015-09-15 14:41:29 -050033 install -m 0755 ${WORKDIR}/finish ${D}/init.d/99-finish
34
Patrick Williams213cb262021-08-07 19:21:33 -050035 # exec
Brad Bishop316dfdd2018-06-25 12:45:53 -040036 install -m 0755 ${WORKDIR}/exec ${D}/init.d/89-exec
37
Patrick Williamsc124f4f2015-09-15 14:41:29 -050038 # mdev
39 install -m 0755 ${WORKDIR}/mdev ${D}/init.d/01-mdev
40
41 # udev
42 install -m 0755 ${WORKDIR}/udev ${D}/init.d/01-udev
43
44 # e2fs
45 install -m 0755 ${WORKDIR}/e2fs ${D}/init.d/10-e2fs
46
47 # debug
48 install -m 0755 ${WORKDIR}/debug ${D}/init.d/00-debug
49
Brad Bishop19323692019-04-05 15:28:33 -040050 # lvm
51 install -m 0755 ${WORKDIR}/lvm ${D}/init.d/09-lvm
52
Andrew Geissler9aee5002022-03-30 16:27:02 +000053 # overlayroot needs to run after rootfs module but before finish
54 install -m 0755 ${WORKDIR}/overlayroot ${D}/init.d/91-overlayroot
55
Patrick Williamsc124f4f2015-09-15 14:41:29 -050056 # 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 \
Brad Bishop316dfdd2018-06-25 12:45:53 -040063 initramfs-module-exec \
Patrick Williamsc124f4f2015-09-15 14:41:29 -050064 initramfs-module-mdev \
65 initramfs-module-udev \
66 initramfs-module-e2fs \
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080067 initramfs-module-nfsrootfs \
Patrick Williamsc0f7c042017-02-23 20:41:17 -060068 initramfs-module-rootfs \
Brad Bishopd7bf8c12018-02-25 22:55:05 -050069 initramfs-module-debug \
Brad Bishop19323692019-04-05 15:28:33 -040070 initramfs-module-lvm \
Andrew Geissler9aee5002022-03-30 16:27:02 +000071 initramfs-module-overlayroot \
Brad Bishopd7bf8c12018-02-25 22:55:05 -050072 "
Patrick Williamsc124f4f2015-09-15 14:41:29 -050073
Patrick Williams213cb262021-08-07 19:21:33 -050074FILES:${PN}-base = "/init /init.d/99-finish /dev"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050075
Patrick Williamsc0f7c042017-02-23 20:41:17 -060076# 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.
Patrick Williams213cb262021-08-07 19:21:33 -050082RRECOMMENDS:${PN}-base += "initramfs-module-rootfs"
Patrick Williamsc0f7c042017-02-23 20:41:17 -060083
Patrick Williams213cb262021-08-07 19:21:33 -050084SUMMARY:initramfs-module-exec = "initramfs support for easy execution of applications"
85RDEPENDS:initramfs-module-exec = "${PN}-base"
86FILES:initramfs-module-exec = "/init.d/89-exec"
Brad Bishop316dfdd2018-06-25 12:45:53 -040087
Patrick Williams213cb262021-08-07 19:21:33 -050088SUMMARY:initramfs-module-mdev = "initramfs support for mdev"
89RDEPENDS:initramfs-module-mdev = "${PN}-base busybox-mdev"
90FILES:initramfs-module-mdev = "/init.d/01-mdev"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050091
Patrick Williams213cb262021-08-07 19:21:33 -050092SUMMARY:initramfs-module-udev = "initramfs support for udev"
93RDEPENDS:initramfs-module-udev = "${PN}-base udev"
94FILES:initramfs-module-udev = "/init.d/01-udev"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050095
Patrick Williams213cb262021-08-07 19:21:33 -050096SUMMARY:initramfs-module-e2fs = "initramfs support for ext4/ext3/ext2 filesystems"
97RDEPENDS:initramfs-module-e2fs = "${PN}-base"
98FILES:initramfs-module-e2fs = "/init.d/10-e2fs"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050099
Patrick Williams213cb262021-08-07 19:21:33 -0500100SUMMARY: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"
Brad Bishop1a4b7ee2018-12-16 17:11:34 -0800103
Patrick Williams213cb262021-08-07 19:21:33 -0500104SUMMARY: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"
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600107
Patrick Williams213cb262021-08-07 19:21:33 -0500108SUMMARY:initramfs-module-debug = "initramfs dynamic debug support"
109RDEPENDS:initramfs-module-debug = "${PN}-base"
110FILES:initramfs-module-debug = "/init.d/00-debug"
Brad Bishop19323692019-04-05 15:28:33 -0400111
Patrick Williams213cb262021-08-07 19:21:33 -0500112SUMMARY:initramfs-module-lvm = "initramfs lvm rootfs support"
113RDEPENDS:initramfs-module-lvm = "${PN}-base"
114FILES:initramfs-module-lvm = "/init.d/09-lvm"
Andrew Geissler9aee5002022-03-30 16:27:02 +0000115
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"