From dd4982ff292d71ef2a79d4f8b6a12b66add5aec0 Mon Sep 17 00:00:00 2001 From: Colin Walters Date: Sat, 11 Feb 2012 09:23:29 -0500 Subject: [PATCH] yocto: Move modules to /ostree, other misc fixes --- .../yocto/classes/gnomeos-contents.bbclass | 25 ++++++++++++------- gnomeos/yocto/gnomeos-install.sh | 6 +++-- gnomeos/yocto/ostree-setup.sh | 7 ++++++ 3 files changed, 27 insertions(+), 11 deletions(-) diff --git a/gnomeos/yocto/classes/gnomeos-contents.bbclass b/gnomeos/yocto/classes/gnomeos-contents.bbclass index a5b88003..6a389821 100644 --- a/gnomeos/yocto/classes/gnomeos-contents.bbclass +++ b/gnomeos/yocto/classes/gnomeos-contents.bbclass @@ -105,21 +105,28 @@ fakeroot do_rootfs () { 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 mode=1777,nosuid,nodev 0 0 -devpts /dev/pts devpts gid=5,mode=620 0 0 -sysfs /sys sysfs defaults 0 0 -proc /proc proc defaults 0 0 -EOF + # Clear out the default fstab; everything we need right now is mounted + # in the initramfs. + cat < /dev/null > ${IMAGE_ROOTFS}/etc/fstab # Kill the Debian netbase stuff - we use NetworkManager rm -rf ${IMAGE_ROOTFS}/etc/network rm -f ${IMAGE_ROOTFS}/etc/init.d/networking - ln -sf /var/run/resolv.conf ${IMAGE_ROOTFS}/etc/resolv.conf + # We deploy kernels via an external mechanism; the modules + # directory is just a bind mount to /sysroot. + rm -rf ${IMAGE_ROOTFS}/lib/modules + mkdir -p ${IMAGE_ROOTFS}/lib/modules - # The passwd database is stored in /var. + # Blow away udev from poky in favor of our own + rm ${IMAGE_ROOTFS}/sbin/udevd + ln -s /usr/libexec/udevd ${IMAGE_ROOTFS}/sbin/udev + + # Random configuration changes here + sed -i -e 's,^DESTINATION=.*,DESTINATION=\"file\",' ${IMAGE_ROOTFS}/etc/syslog.conf + + # Adjustments for /etc -> {/var,/run} here + ln -sf /run/resolv.conf ${IMAGE_ROOTFS}/etc/resolv.conf rm -f ${IMAGE_ROOTFS}/etc/passwd ln -s /var/passwd ${IMAGE_ROOTFS}/etc/passwd rm -f ${IMAGE_ROOTFS}/etc/shadow ${IMAGE_ROOTFS}/etc/shadow- diff --git a/gnomeos/yocto/gnomeos-install.sh b/gnomeos/yocto/gnomeos-install.sh index 4d4c4e49..85de0d6a 100755 --- a/gnomeos/yocto/gnomeos-install.sh +++ b/gnomeos/yocto/gnomeos-install.sh @@ -63,7 +63,6 @@ for branch in runtime devel; do if ! test -d ${BRANCH_PREFIX}${branch}-${rev}; then ostree --repo=repo checkout ${rev} ${BRANCH_PREFIX}${branch}-${rev} ostbuild chroot-run-triggers ${BRANCH_PREFIX}${branch}-${rev} - cp -ar /lib/modules/${uname} ${BRANCH_PREFIX}${branch}-${rev}/lib/modules/${uname} fi rm -f ${BRANCH_PREFIX}${branch}-current ln -s ${BRANCH_PREFIX}${branch}-${rev} ${BRANCH_PREFIX}${branch}-current @@ -90,6 +89,9 @@ if ! test -f "${kernel}"; then EOF exit 1 fi + +cp -ar /lib/modules/${uname} /ostree/modules/${uname} + initrd_name=initramfs-ostree-${uname}.img initrd_tmpdir=$(mktemp -d '/tmp/gnomeos-dracut.XXXXXXXXXX') linux-user-chroot \ @@ -98,7 +100,7 @@ linux-user-chroot \ --mount-bind /dev /dev \ --mount-bind /ostree/var /var \ --mount-bind ${initrd_tmpdir} /tmp \ - --mount-bind /lib/modules/${uname} /lib/modules/${uname} \ + --mount-bind /ostree/modules /lib/modules \ /ostree/${BRANCH_PREFIX}devel-current \ dracut -f /tmp/${initrd_name} "${uname}" mv "${initrd_tmpdir}/${initrd_name}" "/boot/${initrd_name}" diff --git a/gnomeos/yocto/ostree-setup.sh b/gnomeos/yocto/ostree-setup.sh index 36107e2b..c5c9ec20 100755 --- a/gnomeos/yocto/ostree-setup.sh +++ b/gnomeos/yocto/ostree-setup.sh @@ -42,6 +42,9 @@ shift test -n "$OSTREE_DIR_PATH" || usage cd "$OSTREE_DIR_PATH" + +mkdir -p modules + mkdir -p -m 0755 ./var/{log,run,tmp,spool} mkdir -p ./var/lib/dbus dbus-uuidgen > ./var/lib/dbus/machine-id @@ -49,6 +52,10 @@ dbus-uuidgen > ./var/lib/dbus/machine-id mkdir -p ./var/tmp chmod 1777 ./var/tmp +if ! test -L run; then + ln -s ../run run +fi + mkdir ./var/lib/gdm chown 2:2 ./var/lib/gdm