#!/bin/sh msg() { echo "==>" $@ } die() { echo $@ exit 1 } APKS=tmp/apks image=$PWD/image dest=$PWD/test.gz init=init kernel=$1 # if no kernel specified, then guess... if [ -z "$kernel" ]; then kernel=$(ls /lib/modules 2>/dev/null | tail -n 1) fi if [ ! -d /lib/modules/$kernel ]; then die "modules dir /lib/modules/$kernel was not found" fi msg "Using kernel $kernel" # create empty image dir rm -rf "$image" mkdir -p "$image" # unpack busybox and deps tar -C $image -zxf $APKS/uclibc-[0-9]*.apk tar -C $image -zxf $APKS/busybox-[0-9]*.apk tar -C $image -zxf $APKS/alpine-baselayout-[0-9]*.apk tar -C $image -zxf $APKS/apk-tools-[0-9]*.apk rm -f $image/.PKGINFO cp $init $image # copy kernel modules kmods=$image/lib/modules/$kernel mkdir -p $kmods/kernel/drivers for i in ata block ide ieee1394 scsi cdrom usb message; do cp -LpR /lib/modules/$kernel/kernel/drivers/$i $kmods/kernel/drivers/ done for i in fs lib; do cp -LpR /lib/modules/$kernel/kernel/$i $kmods/kernel/ done depmod $kernel -b $image # generate the image cd $image find . | cpio -o -H newc | gzip -9 > $dest