diff --git a/debian/changelog b/debian/changelog index 76a3b296..5d0baf1d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +livecd-rootfs (2.296) UNRELEASED; urgency=low + + * merged lp:~snappy-dev/livecd-rootfs/core_update + to generate device tar conform hardware.yaml + + -- Michael Vogt Wed, 25 Mar 2015 14:43:38 +0100 + livecd-rootfs (2.295) vivid; urgency=medium * forcefully add ubuntu-system-settings-online-accounts to ubuntu-touch diff --git a/live-build/ubuntu-core/hooks/500-move-kernel-to-device-tar.binary b/live-build/ubuntu-core/hooks/500-move-kernel-to-device-tar.binary index a12fde07..863e910f 100644 --- a/live-build/ubuntu-core/hooks/500-move-kernel-to-device-tar.binary +++ b/live-build/ubuntu-core/hooks/500-move-kernel-to-device-tar.binary @@ -2,23 +2,58 @@ # # move the kernel out into a new device tarfile with system/boot -set -e +set -ex echo "I: Moving kernel into device tarball" HERE="$(pwd)" TMPDIR="$(mktemp -d)" +ARCH=$(dpkg --print-architecture) mkdir -p $TMPDIR/system/ +mkdir -p $TMPDIR/assets/ # cp files, we can't simply use tar --transform as it changes the symlink target ( cd binary/boot/filesystem.dir - cp -ar --parent boot/vmlinu?-* boot/initrd.img-* boot/abi-* boot/System.map-* $TMPDIR/system/ + cp -ar boot/vmlinu?-* $TMPDIR/assets/vmlinuz + cp -ar boot/initrd.img-* $TMPDIR/assets/initrd.img + cp -ar boot/vmlinu?-* boot/initrd.img-* boot/abi-* boot/System.map-* $TMPDIR/assets/ cp -ar --parent lib/modules/ $TMPDIR/system/ + + dtbs=$(find lib/firmware -type d -name 'device-tree' -print0) + [ -n "$dtbs" ] && mv "$dtbs" $TMPDIR/assets/dtbs + + cp -ar --parent lib/firmware/ $TMPDIR/system/ + if [ -e vmlinu? ] && [ -e initrd.img ]; then - cp -ar --parent vmlinu? initrd.img $TMPDIR/system + cp -ar --parent vmlinu? initrd.img $TMPDIR/assets + cp -ar --parent vmlinu? initrd.img $TMPDIR/assets fi ) +# create hardware.yaml for u-boot +# this assumes armh == u-boot +# and all others grub +( +# common bits + cat > $TMPDIR/hardware.yaml << EOF +kernel: assets/vmlinuz +initrd: assets/initrd.img +partiton-layout: system-AB +EOF + +# arch specific ones +if [ "$ARCH" = "armhf" ]; then + cat >> $TMPDIR/hardware.yaml << EOF +dtbs: assets/dtbs +bootloader: u-boot +EOF +else + cat >> $TMPDIR/hardware.yaml << EOF +bootloader: grub +EOF +fi +) + # and tar it up ( cd $TMPDIR @@ -58,6 +93,7 @@ rm -rf $TMPDIR rm -f initrd.img rm -f vmlinu? rm -rf lib/modules + rm -rf lib/firmware # remove walinuxagent if [ -e var/lib/dpkg/info/walinuxagent.list ]; then chroot . dpkg --purge walinuxagent || true