[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#827733: BusyBox Init + OpenRC



Package: busybox
Version: 1.22.0-19
Tags: patch

Hi

With the package added by this patch (busybox-openrc), BusyBox Init can be used as PID 1 as a launcher for OpenRC (instead of SysV /sbin/init). This has the potential for faster boot times (but I haven't measured it, see https://blog.flameeyes.eu/2012/03/using-busybox-with-openrc).

I've only tested it on ubuntuBSD, but I think it should work fine on Debian too. I've also added Linux and Hurd versions of inittab.

-- 
Jon Boden

ubuntuBSD -- The power of FreeBSD kernel with familiarity of Ubuntu OS!

http://www.ubuntubsd.org/ -- https://twitter.com/ubuntuBSD
diff -Nur -x changelog ../debian/busybox-openrc.links debian/busybox-openrc.links
--- ../debian/busybox-openrc.links	1970-01-01 01:00:00.000000000 +0100
+++ debian/busybox-openrc.links	2016-06-20 13:47:35.911041000 +0200
@@ -0,0 +1,4 @@
+bin/busybox sbin/init
+bin/busybox sbin/halt
+bin/busybox sbin/reboot
+bin/busybox sbin/poweroff
diff -Nur -x changelog ../debian/control debian/control
--- ../debian/control	2015-08-07 23:39:01.000000000 +0200
+++ debian/control	2016-06-20 14:08:19.252858000 +0200
@@ -76,6 +76,23 @@
  busybox-initramfs provides a simple stand alone shell that provides
  only the basic utilities needed for the initramfs.
 
+Package: busybox-openrc
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, busybox, openrc
+Conflicts: sysvinit (<< 2.88dsf-44), sysvinit-core, upstart [linux-any], systemd-sysv [linux-any]
+Section: admin
+Description: BusyBox init for OpenRC
+ BusyBox combines tiny versions of many common UNIX utilities into a single
+ small executable. It provides minimalist replacements for the most common
+ utilities you would usually find on your desktop system (i.e., ls, cp, mv,
+ mount, tar, etc.). The utilities in BusyBox generally have fewer options than
+ their full-featured GNU cousins; however, the options that are included
+ provide the expected functionality and behave very much like their GNU
+ counterparts.
+ .
+ busybox-openrc provides a minimalist implementation of /sbin/init, configured
+ for use with OpenRC.
+
 Package: busybox-udeb
 Package-Type: udeb
 Architecture: any
diff -Nur -x changelog ../debian/inittab.hurd debian/inittab.hurd
--- ../debian/inittab.hurd	1970-01-01 01:00:00.000000000 +0100
+++ debian/inittab.hurd	2016-06-20 14:12:59.364964000 +0200
@@ -0,0 +1,28 @@
+# /etc/inittab: init(8) configuration.
+
+# Launch OpenRC for system initialization
+::sysinit:/sbin/openrc sysinit
+::wait:/sbin/openrc boot
+::wait:/sbin/openrc default
+
+# What to do when CTRL-ALT-DEL is pressed.
+::ctrlaltdel:/sbin/reboot
+
+# /sbin/getty invocations for the runlevels.
+#
+::respawn:/sbin/getty 38400 tty1
+::respawn:/sbin/getty 38400 tty2
+::respawn:/sbin/getty 38400 tty3
+::respawn:/sbin/getty 38400 tty4
+::respawn:/sbin/getty 38400 tty5
+::respawn:/sbin/getty 38400 tty6
+::respawn:/sbin/getty 38400 console
+
+# Example how to put a getty on a serial line (for a terminal)
+#
+#::respawn:/sbin/getty -L ttyS0 9600 vt100
+#::respawn:/sbin/getty -L ttyS1 9600 vt100
+
+# Example how to put a getty on a modem line.
+#
+#::respawn:/sbin/mgetty -x0 -s 57600 ttyS3
diff -Nur -x changelog ../debian/inittab.kfreebsd debian/inittab.kfreebsd
--- ../debian/inittab.kfreebsd	1970-01-01 01:00:00.000000000 +0100
+++ debian/inittab.kfreebsd	2016-06-20 14:13:02.382742000 +0200
@@ -0,0 +1,27 @@
+# /etc/inittab: init(8) configuration.
+
+# Launch OpenRC for system initialization
+::sysinit:/sbin/openrc sysinit
+::wait:/sbin/openrc boot
+::wait:/sbin/openrc default
+
+# What to do when CTRL-ALT-DEL is pressed.
+::ctrlaltdel:/sbin/reboot
+
+# /sbin/getty invocations for the runlevels.
+#
+::respawn:/sbin/getty 38400 ttyv0 xterm
+::respawn:/sbin/getty 38400 ttyv1 xterm
+::respawn:/sbin/getty 38400 ttyv2 xterm
+::respawn:/sbin/getty 38400 ttyv3 xterm
+::respawn:/sbin/getty 38400 ttyv4 xterm
+::respawn:/sbin/getty 38400 ttyv5 xterm
+
+# Example how to put a getty on a serial line (for a terminal)
+#
+#::respawn:/sbin/getty -L cuau0 9600 vt100
+#::respawn:/sbin/getty -L cuau1 9600 vt100
+
+# Example how to put a getty on a modem line.
+#
+#::respawn:/sbin/mgetty -x0 -s 57600 ttyd3
diff -Nur -x changelog ../debian/inittab.linux debian/inittab.linux
--- ../debian/inittab.linux	1970-01-01 01:00:00.000000000 +0100
+++ debian/inittab.linux	2016-06-20 14:13:05.623434000 +0200
@@ -0,0 +1,27 @@
+# /etc/inittab: init(8) configuration.
+
+# Launch OpenRC for system initialization
+::sysinit:/sbin/openrc sysinit
+::wait:/sbin/openrc boot
+::wait:/sbin/openrc default
+
+# What to do when CTRL-ALT-DEL is pressed.
+::ctrlaltdel:/sbin/reboot
+
+# /sbin/getty invocations for the runlevels.
+#
+::respawn:/sbin/getty 38400 tty1
+::respawn:/sbin/getty 38400 tty2
+::respawn:/sbin/getty 38400 tty3
+::respawn:/sbin/getty 38400 tty4
+::respawn:/sbin/getty 38400 tty5
+::respawn:/sbin/getty 38400 tty6
+
+# Example how to put a getty on a serial line (for a terminal)
+#
+#::respawn:/sbin/getty -L ttyS0 9600 vt100
+#::respawn:/sbin/getty -L ttyS1 9600 vt100
+
+# Example how to put a getty on a modem line.
+#
+#::respawn:/sbin/mgetty -x0 -s 57600 ttyS3
diff -Nur -x changelog ../debian/rules debian/rules
--- ../debian/rules	2015-08-07 23:39:01.000000000 +0200
+++ debian/rules	2016-06-20 13:46:45.200363000 +0200
@@ -167,6 +171,10 @@
 	dh_installdocs -pbusybox-static docs/syslog.conf.txt docs/mdev.txt
 	dh_installexamples -pbusybox-static examples/mdev* examples/udhcp
 
+# busybox-openrc
+	mkdir -p debian/busybox-openrc/etc
+	install -m 644 debian/inittab.$(DEB_HOST_ARCH_OS) debian/busybox-openrc/etc/inittab
+
 # busybox-udeb
 	# Remove init link, but init support is still compiled in to be used.
 	rm -f ${b}/udeb/_install/sbin/init

Reply to: