mirror of
				https://git.launchpad.net/livecd-rootfs
				synced 2025-11-04 10:54:07 +00:00 
			
		
		
		
	from a launchpad-buildd-like setup, which passes ARCH and SUBARCH in the environment, because auto/config and auto/build both rely on this. So don't scatter dpkg --print-architecture calls throughout, especially when many of these are not cross-build-aware.
		
			
				
	
	
		
			81 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
#!/bin/sh
 | 
						|
#
 | 
						|
# move the kernel out into a new device tarfile with system/boot 
 | 
						|
 | 
						|
set -ex
 | 
						|
 | 
						|
echo "I: Moving kernel into device tarball"
 | 
						|
 | 
						|
HERE="$(pwd)"
 | 
						|
TMPDIR="$(mktemp -d)"
 | 
						|
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 lib/modules/ $TMPDIR/system/
 | 
						|
 cp -ar --parent lib/firmware/ $TMPDIR/system/
 | 
						|
 | 
						|
 # new assets handling
 | 
						|
 if [ -f boot/vmlinu?-*.signed ]; then
 | 
						|
    kernel=boot/vmlinu?-*.signed
 | 
						|
 else
 | 
						|
    kernel=boot/vmlinu?-*
 | 
						|
 fi
 | 
						|
 | 
						|
 initrd=boot/initrd.img-*
 | 
						|
 | 
						|
 cp -ar $initrd $TMPDIR/assets/
 | 
						|
 cp -ar $kernel $TMPDIR/assets/
 | 
						|
 cp -ar boot/abi-* boot/System.map-* $TMPDIR/assets/
 | 
						|
 | 
						|
 dtbs=$(find lib/firmware -type d -name 'device-tree' -print0)
 | 
						|
 if [ -n "$dtbs" ]; then
 | 
						|
    mv "$dtbs" $TMPDIR/assets/dtbs
 | 
						|
 fi
 | 
						|
 | 
						|
 # create hardware.yaml
 | 
						|
 # this assumes armh == u-boot
 | 
						|
 # and all others grub
 | 
						|
 # common bits
 | 
						|
 cat > $TMPDIR/hardware.yaml << EOF
 | 
						|
kernel: assets/$(basename $kernel)
 | 
						|
initrd: assets/$(basename $initrd)
 | 
						|
partition-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
 | 
						|
 tar -c -z -f $HERE/device.tar.gz system assets hardware.yaml
 | 
						|
)
 | 
						|
 | 
						|
rm -rf $TMPDIR
 | 
						|
 | 
						|
# remove files from the root filesystem
 | 
						|
(cd binary/boot/filesystem.dir
 | 
						|
 rm -f boot/vmlinu?-*
 | 
						|
 rm -f boot/initrd.img-*
 | 
						|
 rm -f boot/abi-*
 | 
						|
 rm -f boot/System.map-*
 | 
						|
 rm -f initrd.img
 | 
						|
 rm -f vmlinu?
 | 
						|
 rm -rf lib/modules
 | 
						|
 rm -rf lib/firmware
 | 
						|
)
 |