We have lsb compliant scripts unlike buildroot. Ditto wont work here On Jan 25, 2016 12:39 PM, "Andre McCurdy" <armccu...@gmail.com> wrote:
> On Fri, Jan 22, 2016 at 12:49 PM, Khem Raj <raj.k...@gmail.com> wrote: > > in config metadata we can configure busybox based init and device > > initializer ( mdev ) using e.g. > > > > VIRTUAL-RUNTIME_dev_manager = "busybox-mdev" > > VIRTUAL-RUNTIME_login_manager = "busybox" > > VIRTUAL-RUNTIME_init_manager = "busybox" > > VIRTUAL-RUNTIME_initscripts = "initscripts" > > VIRTUAL-RUNTIME_keymaps = "keymaps" > > DISTRO_FEATURES_BACKFILL_CONSIDERED += "sysvinit" > > > > busybox can be used to provide init system > > combined with mdev it makes it a complete init > > system for really tiny systems. > > > > This patch uses above defines to configure features in busybox to enable > > the init system and mdev in a configurable manner > > > > Signed-off-by: Khem Raj <raj.k...@gmail.com> > > --- > > meta/recipes-core/busybox/busybox.inc | 15 +++++++++++++++ > > meta/recipes-core/busybox/busybox/init.cfg | 3 +++ > > meta/recipes-core/busybox/busybox/mdev.cfg | 11 +++++++++++ > > meta/recipes-core/busybox/busybox_1.24.1.bb | 6 ++++++ > > meta/recipes-core/busybox/files/inittab | 24 > ++++++++++++++++++++++++ > > meta/recipes-core/busybox/files/rcK | 25 > +++++++++++++++++++++++++ > > meta/recipes-core/busybox/files/rcS | 26 > ++++++++++++++++++++++++++ > > meta/recipes-core/busybox/files/runlevel | 11 +++++++++++ > > 8 files changed, 121 insertions(+) > > create mode 100644 meta/recipes-core/busybox/busybox/init.cfg > > create mode 100644 meta/recipes-core/busybox/busybox/mdev.cfg > > create mode 100644 meta/recipes-core/busybox/files/inittab > > create mode 100644 meta/recipes-core/busybox/files/rcK > > create mode 100644 meta/recipes-core/busybox/files/rcS > > create mode 100644 meta/recipes-core/busybox/files/runlevel > > > > diff --git a/meta/recipes-core/busybox/busybox.inc > b/meta/recipes-core/busybox/busybox.inc > > index 9541123..e5710f0 100644 > > --- a/meta/recipes-core/busybox/busybox.inc > > +++ b/meta/recipes-core/busybox/busybox.inc > > @@ -275,6 +275,21 @@ do_install () { > > install -m 0755 ${WORKDIR}/mdev-mount.sh > ${D}${sysconfdir}/mdev > > fi > > fi > > + if grep "CONFIG_INIT=y" ${B}/.config; then > > + install -D -m 0777 ${WORKDIR}/rcS > ${D}${sysconfdir}/init.d/rcS > > + install -D -m 0777 ${WORKDIR}/rcK > ${D}${sysconfdir}/init.d/rcK > > + install -D -m 0755 ${WORKDIR}/runlevel > ${D}${base_sbindir}/runlevel > > + if grep "CONFIG_FEATURE_USE_INITTAB=y" ${B}/.config; > then > > + install -D -m 0777 ${WORKDIR}/inittab > ${D}${sysconfdir}/inittab > > + tmp="${SERIAL_CONSOLES}" > > + for i in $tmp > > + do > > + j=`echo ${i} | sed s/\;/\ /g` > > + label=`echo ${i} | sed -e 's/tty//' -e > 's/^.*;//' -e 's/;.*//'` > > + echo > "tty$label::respawn:${base_sbindir}/getty ${j}" >> ${D}${sysconfdir}/inittab > > + done > > + fi > > + fi > > > > if > ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then > > if grep -q "CONFIG_SYSLOGD=y" ${B}/.config; then > > diff --git a/meta/recipes-core/busybox/busybox/init.cfg > b/meta/recipes-core/busybox/busybox/init.cfg > > new file mode 100644 > > index 0000000..006d4c6 > > --- /dev/null > > +++ b/meta/recipes-core/busybox/busybox/init.cfg > > @@ -0,0 +1,3 @@ > > +CONFIG_INIT=y > > +CONFIG_FEATURE_USE_INITTAB=y > > + > > diff --git a/meta/recipes-core/busybox/busybox/mdev.cfg > b/meta/recipes-core/busybox/busybox/mdev.cfg > > new file mode 100644 > > index 0000000..6aefe90 > > --- /dev/null > > +++ b/meta/recipes-core/busybox/busybox/mdev.cfg > > @@ -0,0 +1,11 @@ > > +CONFIG_MDEV=y > > +CONFIG_FEATURE_MDEV_CONF=y > > +CONFIG_FEATURE_MDEV_RENAME=y > > +CONFIG_FEATURE_MDEV_RENAME_REGEXP=y > > +CONFIG_FEATURE_MDEV_EXEC=y > > +CONFIG_FEATURE_MDEV_LOAD_FIRMWARE=y > > + > > +CONFIG_SETSID=y > > +CONFIG_CTTYHACK=y > > + > > +CONFIG_FEATURE_SHADOWPASSWDS=y > > diff --git a/meta/recipes-core/busybox/busybox_1.24.1.bb > b/meta/recipes-core/busybox/busybox_1.24.1.bb > > index 5e19d9c..8adee53 100644 > > --- a/meta/recipes-core/busybox/busybox_1.24.1.bb > > +++ b/meta/recipes-core/busybox/busybox_1.24.1.bb > > @@ -39,6 +39,12 @@ SRC_URI = " > http://www.busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball \ > > file://sha256sum.cfg \ > > file://getopts.cfg \ > > file://resize.cfg \ > > + ${@["", > "file://init.cfg"][(d.getVar('VIRTUAL-RUNTIME_init_manager', True) == > 'busybox')]} \ > > + ${@["", > "file://mdev.cfg"][(d.getVar('VIRTUAL-RUNTIME_dev_manager', True) == > 'busybox-mdev')]} \ > > + file://inittab \ > > + file://rcS \ > > + file://rcK \ > > + file://runlevel \ > > " > > SRC_URI_append_libc-musl = " file://musl.cfg " > > > > diff --git a/meta/recipes-core/busybox/files/inittab > b/meta/recipes-core/busybox/files/inittab > > new file mode 100644 > > index 0000000..bfec4a7 > > --- /dev/null > > +++ b/meta/recipes-core/busybox/files/inittab > > @@ -0,0 +1,24 @@ > > +# This is run first except when booting in single-user mode. > > + > > +# Startup the system > > +null::sysinit:/bin/mount -t proc proc /proc > > +null::sysinit:/bin/mount -t sysfs sysfs /sys > > +null::sysinit:/bin/mount -t devtmpfs devtmpfs /dev > > +null::sysinit:/bin/mount -o remount,rw / > > +null::sysinit:/bin/mkdir -p /dev/pts > > +null::sysinit:/bin/mount -t devpts devpts /dev/pts > > +null::sysinit:/bin/mount -a > > + > > +::sysinit:/etc/init.d/rcS > > + > > +# Stuff to do before rebooting > > +::ctrlaltdel:/sbin/reboot > > +::shutdown:/etc/init.d/rcK > > +::shutdown:/sbin/swapoff -a > > +::shutdown:/bin/umount -a -r > > + > > +# Stuff to do when restarting the init process > > +::restart:/sbin/init > > + > > +# set hostname > > +null::sysinit:/bin/busybox hostname -F /etc/hostname > > diff --git a/meta/recipes-core/busybox/files/rcK > b/meta/recipes-core/busybox/files/rcK > > new file mode 100644 > > index 0000000..050086e > > --- /dev/null > > +++ b/meta/recipes-core/busybox/files/rcK > > @@ -0,0 +1,25 @@ > > +#!/bin/sh > > + > > +# Stop all init scripts in /etc/init.d > > +# executing them in reversed numerical order. > > +# > > +for i in /etc/rc6.d/K??*; do > > Running the K?? scripts here is different to the way the Buildroot > initscipts work. It's also not clear how the order is going to be > reversed? > > Maybe try to work with the Buildroot version as-is, or add some > comments to the commit message explaining why the OE and Buildroot > versions need to differ. > > https://git.busybox.net/buildroot/tree/package/initscripts/init.d/rcK > > > + # Ignore dangling symlinks (if any). > > + [ ! -f "$i" ] && continue > > + > > + case "$i" in > > + *.sh) > > + # Source shell script for speed. > > + ( > > + trap - INT QUIT TSTP > > + set stop > > + . $i > > + ) > > + ;; > > + *) > > + # No sh extension, so fork subprocess. > > + $i stop > > + ;; > > + esac > > +done > > + > > diff --git a/meta/recipes-core/busybox/files/rcS > b/meta/recipes-core/busybox/files/rcS > > new file mode 100644 > > index 0000000..d18c26b > > --- /dev/null > > +++ b/meta/recipes-core/busybox/files/rcS > > @@ -0,0 +1,26 @@ > > +#!/bin/sh > > + > > +# Stop all init scripts in /etc/init.d > > +# executing them in reversed numerical order. > > This is a copy of the comment from rcK. > > > + > > +for i in /etc/rcS.d/S??* /etc/rc5.d/S??* ;do > > + # Ignore dangling symlinks (if any). > > + [ ! -f "$i" ] && continue > > + > > + case "$i" in > > + *.sh) > > + # Source shell script for speed. > > + ( > > + trap - INT QUIT TSTP > > + set stop > > Should that be start? The Buildroot original is: > > https://git.busybox.net/buildroot/tree/package/initscripts/init.d/rcS > > > + . $i > > + ) > > + ;; > > + *) > > + # No sh extension, so fork subprocess. > > + $i start > > + ;; > > + esac > > +done > > + > > diff --git a/meta/recipes-core/busybox/files/runlevel > b/meta/recipes-core/busybox/files/runlevel > > new file mode 100644 > > index 0000000..866f3b5 > > --- /dev/null > > +++ b/meta/recipes-core/busybox/files/runlevel > > @@ -0,0 +1,11 @@ > > +#!/bin/sh > > +# busybox init does not have LSB ( sysvinit ) like initlevels > > +# so lets fake it to 5 which is what we default anyway > > +# this helps with opkg post installs where it tries to invoke > > +# update-rc.d ad post install step. > > +# for package upgrades > > +# See code in update-rc.d around line 190 where it calls runlevel > > +# program > > +# > > +echo "5" > > + > > -- > > 2.7.0 > > > > -- > > _______________________________________________ > > Openembedded-core mailing list > > Openembedded-core@lists.openembedded.org > > http://lists.openembedded.org/mailman/listinfo/openembedded-core >
-- _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core