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
7PR = "r4"
8
9inherit allarch
10
11SRC_URI = "file://init \
12           file://exec \
13           file://nfsrootfs \
14           file://rootfs \
15           file://finish \
16           file://mdev \
17           file://udev \
18           file://e2fs \
19           file://debug \
20           file://lvm \
21          "
22
23S = "${WORKDIR}"
24
25do_install() {
26    install -d ${D}/init.d
27
28    # base
29    install -m 0755 ${WORKDIR}/init ${D}/init
30    install -m 0755 ${WORKDIR}/nfsrootfs ${D}/init.d/85-nfsrootfs
31    install -m 0755 ${WORKDIR}/rootfs ${D}/init.d/90-rootfs
32    install -m 0755 ${WORKDIR}/finish ${D}/init.d/99-finish
33
34	# exec
35    install -m 0755 ${WORKDIR}/exec ${D}/init.d/89-exec
36
37    # mdev
38    install -m 0755 ${WORKDIR}/mdev ${D}/init.d/01-mdev
39
40    # udev
41    install -m 0755 ${WORKDIR}/udev ${D}/init.d/01-udev
42
43    # e2fs
44    install -m 0755 ${WORKDIR}/e2fs ${D}/init.d/10-e2fs
45
46    # debug
47    install -m 0755 ${WORKDIR}/debug ${D}/init.d/00-debug
48
49    # lvm
50    install -m 0755 ${WORKDIR}/lvm ${D}/init.d/09-lvm
51
52    # Create device nodes expected by some kernels in initramfs
53    # before even executing /init.
54    install -d ${D}/dev
55    mknod -m 622 ${D}/dev/console c 5 1
56}
57
58PACKAGES = "${PN}-base \
59            initramfs-module-exec \
60            initramfs-module-mdev \
61            initramfs-module-udev \
62            initramfs-module-e2fs \
63            initramfs-module-nfsrootfs \
64            initramfs-module-rootfs \
65            initramfs-module-debug \
66            initramfs-module-lvm \
67           "
68
69FILES_${PN}-base = "/init /init.d/99-finish /dev"
70
71# 99-finish in base depends on some other module which mounts
72# the rootfs, like 90-rootfs. To replace that default, use
73# BAD_RECOMMENDATIONS += "initramfs-module-rootfs" in your
74# initramfs recipe and install something else, or install
75# something that runs earlier (for example, a 89-my-rootfs)
76# and mounts the rootfs. Then 90-rootfs will proceed immediately.
77RRECOMMENDS_${PN}-base += "initramfs-module-rootfs"
78
79SUMMARY_initramfs-module-exec = "initramfs support for easy execution of applications"
80RDEPENDS_initramfs-module-exec = "${PN}-base"
81FILES_initramfs-module-exec = "/init.d/89-exec"
82
83SUMMARY_initramfs-module-mdev = "initramfs support for mdev"
84RDEPENDS_initramfs-module-mdev = "${PN}-base busybox-mdev"
85FILES_initramfs-module-mdev = "/init.d/01-mdev"
86
87SUMMARY_initramfs-module-udev = "initramfs support for udev"
88RDEPENDS_initramfs-module-udev = "${PN}-base udev"
89FILES_initramfs-module-udev = "/init.d/01-udev"
90
91SUMMARY_initramfs-module-e2fs = "initramfs support for ext4/ext3/ext2 filesystems"
92RDEPENDS_initramfs-module-e2fs = "${PN}-base"
93FILES_initramfs-module-e2fs = "/init.d/10-e2fs"
94
95SUMMARY_initramfs-module-nfsrootfs = "initramfs support for locating and mounting the root partition via nfs"
96RDEPENDS_initramfs-module-nfsrootfs = "${PN}-base"
97FILES_initramfs-module-nfsrootfs = "/init.d/85-nfsrootfs"
98
99SUMMARY_initramfs-module-rootfs = "initramfs support for locating and mounting the root partition"
100RDEPENDS_initramfs-module-rootfs = "${PN}-base"
101FILES_initramfs-module-rootfs = "/init.d/90-rootfs"
102
103SUMMARY_initramfs-module-debug = "initramfs dynamic debug support"
104RDEPENDS_initramfs-module-debug = "${PN}-base"
105FILES_initramfs-module-debug = "/init.d/00-debug"
106
107SUMMARY_initramfs-module-lvm = "initramfs lvm rootfs support"
108RDEPENDS_initramfs-module-lvm = "${PN}-base"
109FILES_initramfs-module-lvm = "/init.d/09-lvm"
110