diff --git a/gnomeos/yocto/classes/gnomeos-contents.bbclass b/gnomeos/yocto/classes/gnomeos-contents.bbclass index b1e07bec..d06cdf3e 100644 --- a/gnomeos/yocto/classes/gnomeos-contents.bbclass +++ b/gnomeos/yocto/classes/gnomeos-contents.bbclass @@ -85,6 +85,9 @@ fakeroot do_rootfs () { rm -f ${IMAGE_ROOTFS}/etc/init.d/udev-cache rm -f ${IMAGE_ROOTFS}/etc/rc*.d/*udev-cache* + rm -f ${IMAGE_ROOTFS}/etc/rcS.d/S03udev + rm -f ${IMAGE_ROOTFS}/etc/rcS.d/*networking + # The default fstab has /, which we don't want, and we do want /sys and /dev/shm cat > ${IMAGE_ROOTFS}/etc/fstab << EOF tmpfs /dev/shm tmpfs defaults 0 0 diff --git a/gnomeos/yocto/recipies-core/initscripts/initscripts-1.0/gnomeinit b/gnomeos/yocto/recipies-core/initscripts/initscripts-1.0/gnomeinit new file mode 100644 index 00000000..816cc4e2 --- /dev/null +++ b/gnomeos/yocto/recipies-core/initscripts/initscripts-1.0/gnomeinit @@ -0,0 +1,43 @@ +#!/bin/sh + +# Screw sysvinit. + +if test -f /var/lib/random-seed +then + cat /var/lib/random-seed >/dev/urandom +fi +rm -f /var/lib/random-seed +umask 077 +dd if=/dev/urandom of=/var/lib/random-seed count=1 \ + >/dev/null 2>&1 || echo "urandom start: failed." +umask 022 + +if test -f /etc/hostname +then + hostname -F /etc/hostname +fi + +echo "Mounting local filesystems" +mount -at nonfs,nosmbfs,noncpfs 2>/dev/null + +if test ! -p /dev/initctl +then + rm -f /dev/initctl + mknod -m 600 /dev/initctl p +fi +kill -USR1 1 + +swapon -a + +mkdir -p /var/run/dbus +echo "Starting dbus-daemon" +/usr/bin/dbus-daemon --system +sleep 1 +echo "Starting NetworkManager" +/usr/sbin/NetworkManager & +echo "Starting udev" +/usr/libexec/udevd --daemon +sleep 1 +/usr/sbin/udevadm trigger +echo "booted!" + diff --git a/gnomeos/yocto/recipies-core/initscripts/initscripts-1.0/gnomeudev b/gnomeos/yocto/recipies-core/initscripts/initscripts-1.0/gnomeudev new file mode 100644 index 00000000..fe5b7b84 --- /dev/null +++ b/gnomeos/yocto/recipies-core/initscripts/initscripts-1.0/gnomeudev @@ -0,0 +1,6 @@ +#!/bin/sh + +/usr/libexec/udevd --daemon +sleep 1 +/usr/sbin/udevadm trigger + diff --git a/gnomeos/yocto/recipies-core/initscripts/initscripts_1.0.bb b/gnomeos/yocto/recipies-core/initscripts/initscripts_1.0.bb index 4bf77c05..5b839682 100644 --- a/gnomeos/yocto/recipies-core/initscripts/initscripts_1.0.bb +++ b/gnomeos/yocto/recipies-core/initscripts/initscripts_1.0.bb @@ -18,6 +18,7 @@ SRC_URI = "file://functions \ file://mountnfs.sh \ file://NetworkManager \ file://dbus \ + file://gnomeudev \ file://reboot \ file://single \ file://sendsigs \ @@ -61,6 +62,7 @@ do_install () { install -m 0755 ${WORKDIR}/hostname.sh ${D}${sysconfdir}/init.d install -m 0755 ${WORKDIR}/mountall.sh ${D}${sysconfdir}/init.d install -m 0755 ${WORKDIR}/NetworkManager ${D}${sysconfdir}/init.d + install -m 0755 ${WORKDIR}/gnomeudev ${D}${sysconfdir}/init.d install -m 0755 ${WORKDIR}/dbus ${D}${sysconfdir}/init.d install -m 0755 ${WORKDIR}/mountnfs.sh ${D}${sysconfdir}/init.d install -m 0755 ${WORKDIR}/reboot ${D}${sysconfdir}/init.d @@ -86,13 +88,11 @@ do_install () { # ln -sf ../init.d/urandom ${D}${sysconfdir}/rc6.d/S30urandom ln -sf ../init.d/umountnfs.sh ${D}${sysconfdir}/rc6.d/S31umountnfs.sh ln -sf ../init.d/umountfs ${D}${sysconfdir}/rc6.d/S40umountfs - # udev will run at S55 if installed ln -sf ../init.d/reboot ${D}${sysconfdir}/rc6.d/S90reboot ln -sf ../init.d/sendsigs ${D}${sysconfdir}/rc0.d/S20sendsigs # ln -sf ../init.d/urandom ${D}${sysconfdir}/rc0.d/S30urandom ln -sf ../init.d/umountnfs.sh ${D}${sysconfdir}/rc0.d/S31umountnfs.sh ln -sf ../init.d/umountfs ${D}${sysconfdir}/rc0.d/S40umountfs - # udev will run at S55 if installed ln -sf ../init.d/halt ${D}${sysconfdir}/rc0.d/S90halt ln -sf ../init.d/save-rtc.sh ${D}${sysconfdir}/rc0.d/S25save-rtc.sh ln -sf ../init.d/save-rtc.sh ${D}${sysconfdir}/rc6.d/S25save-rtc.sh @@ -101,6 +101,7 @@ do_install () { ln -sf ../init.d/hostname.sh ${D}${sysconfdir}/rcS.d/S39hostname.sh ln -sf ../init.d/dbus ${D}${sysconfdir}/rcS.d/S40dbus ln -sf ../init.d/NetworkManager ${D}${sysconfdir}/rcS.d/S41NetworkManager + ln -sf ../init.d/gnomeudev ${D}${sysconfdir}/rcS.d/S03gnomeudev ln -sf ../init.d/mountnfs.sh ${D}${sysconfdir}/rcS.d/S45mountnfs.sh ln -sf ../init.d/bootmisc.sh ${D}${sysconfdir}/rcS.d/S55bootmisc.sh # ln -sf ../init.d/urandom ${D}${sysconfdir}/rcS.d/S55urandom