mirror of
				https://git.launchpad.net/livecd-rootfs
				synced 2025-10-31 08:54:06 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			82 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			82 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)"
 | |
| 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 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
 | |
| )
 |