diff --git a/meta-yocto/conf/distro/poky-tiny.conf b/meta-yocto/conf/distro/poky-tiny.conf index a34c7dc6ca..8ae1d85e8a 100644 --- a/meta-yocto/conf/distro/poky-tiny.conf +++ b/meta-yocto/conf/distro/poky-tiny.conf @@ -95,7 +95,7 @@ DISTRO_FEATURES = "${DISTRO_FEATURES_TINY} \ # Use tmpdevfs and the busybox runtime services VIRTUAL-RUNTIME_dev_manager = "" VIRTUAL-RUNTIME_login_manager = "" -VIRTUAL-RUNTIME_init_manager = "" +VIRTUAL-RUNTIME_init_manager = "tiny-init" VIRTUAL-RUNTIME_keymaps = "" # FIXME: Consider adding "modules" to MACHINE_FEATURES and using that in diff --git a/meta-yocto/recipes-core/tiny-init/files/init b/meta-yocto/recipes-core/tiny-init/files/init new file mode 100644 index 0000000000..bf2817d099 --- /dev/null +++ b/meta-yocto/recipes-core/tiny-init/files/init @@ -0,0 +1,21 @@ +#!/bin/sh + +# Mount the Linux kernel virtual filesystems +mount none -t proc /proc +mount none -t sysfs /sys +mkdir /dev/pts +mount none -t devpts /dev/pts + +ifup lo + +# Allow for distro or local customizations +if [ -f /etc/rc.local ] ; then + source /etc/rc.local +fi + +# Become session leader and try to find a real tty (e.g. ttyS0) +while true; do + setsid cttyhack sh + echo "Console sh exited with $?, respawning..." + sleep 1 +done diff --git a/meta-yocto/recipes-core/tiny-init/files/rc.local.sample b/meta-yocto/recipes-core/tiny-init/files/rc.local.sample new file mode 100644 index 0000000000..d9e198a200 --- /dev/null +++ b/meta-yocto/recipes-core/tiny-init/files/rc.local.sample @@ -0,0 +1,23 @@ +#!/bin/sh + +# Start services and customize the boot process here. +echo "Running /etc/rc.local..." + +# Use init scripts included with packages such as dropbear +#/etc/init.d/dropbear start + +# Spawn a getty manually +#setsid /sbin/getty 115200 ttyS2 + +# Print a banner +#echo "You are running a poky-tiny image brought to you by the Yocto Project." + +# Setup a debugging environment +#mkdir /debugfs +#mount none -t debugfs /debugfs + +# Load modules (note: linux-yocto-tiny does not have module support by default) +#modprobe yourdriver + +# DO NOT run any long running tasks or loops as these will delay +# the /init script and the console shell. diff --git a/meta-yocto/recipes-core/tiny-init/tiny-init.bb b/meta-yocto/recipes-core/tiny-init/tiny-init.bb new file mode 100644 index 0000000000..f5892ed472 --- /dev/null +++ b/meta-yocto/recipes-core/tiny-init/tiny-init.bb @@ -0,0 +1,28 @@ +SUMMARY = "Poky-tiny init" +DESCRIPTION = "Basic init system for poky-tiny" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" + +PR = "r0" + +RDEPENDS_${PN} = "busybox" + +SRC_URI = "file://init \ + file://rc.local.sample \ + " + +do_configure() { + : +} + +do_compile() { + : +} + +do_install() { + install -d ${D}${sysconfdir} + install -m 0755 ${WORKDIR}/init ${D} + install -m 0755 ${WORKDIR}/rc.local.sample ${D}${sysconfdir} +} + +FILES_${PN} = "/init ${sysconfdir}/rc.local.sample"