about summary refs log tree commit diff
path: root/mkrootfs.sh.in
diff options
context:
space:
mode:
Diffstat (limited to 'mkrootfs.sh.in')
-rw-r--r--mkrootfs.sh.in18
1 files changed, 15 insertions, 3 deletions
diff --git a/mkrootfs.sh.in b/mkrootfs.sh.in
index 583044c..9425d0b 100644
--- a/mkrootfs.sh.in
+++ b/mkrootfs.sh.in
@@ -47,7 +47,7 @@ Usage: $PROGNAME [options] <platform>
 
 Supported platforms: i686, i686-musl, x86_64, x86_64-musl,
                      dockstar, bananapi, beaglebone, cubieboard2, cubietruck,
-                     odroid-u2, rpi, rpi2 (armv7), usbarmory
+                     odroid-c2, odroid-u2, rpi, rpi2 (armv7), usbarmory, ci20
 
 Options
     -b <syspkg> Set an alternative base-system package (defaults to base-system)
@@ -97,12 +97,18 @@ register_binfmt() {
     case "${_ARCH}" in
         armv*)
             echo ':arm:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-arm-static:' > /proc/sys/fs/binfmt_misc/register
-            cp -f $(which qemu-arm-static) $rootfs/usr/bin || die "failed to copy qemu-arm-static to the rootfs"
+            ;;
+        aarch*)
+            echo ':qemu-arm64:M::\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-aarch64-static:' > /proc/sys/fs/binfmt_misc/register
+            ;;
+        mipsel*)
+            echo ':mipsel:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-mipsel-static:' > /proc/sys/fs/binfmt_misc/register
             ;;
         *)
             die "Unknown target architecture!"
             ;;
     esac
+    cp -f $(which $QEMU_BIN) $rootfs/usr/bin || die "failed to copy $QEMU_BIN to the rootfs"
 }
 
 #
@@ -131,6 +137,10 @@ case "$PLATFORM" in
     dockstar) _TARGET_ARCH="armv5tel"; _ARCH="armv5tel";;
     rpi-musl) _TARGET_ARCH="armv6l-musl"; _ARCH="armv6l";;
     rpi) _TARGET_ARCH="armv6l"; _ARCH="armv6l";;
+    ci20-musl) _TARGET_ARCH="mipselhf-musl"; _ARCH="mipsel-musl";;
+    ci20) _TARGET_ARCH="mipselhf"; _ARCH="mipsel";;
+    odroid-c2-musl) _TARGET_ARCH="aarch64-musl"; _ARCH="aarch64";;
+    odroid-c2) _TARGET_ARCH="aarch64"; _ARCH="aarch64";;
     *-musl) _TARGET_ARCH="armv7l-musl"; _ARCH="armv7l";;
     *) _TARGET_ARCH="armv7l"; _ARCH="armv7l";;
 esac
@@ -157,6 +167,8 @@ case "$PLATFORM" in
     rpi2*) SUBPLATFORM=rpi; QEMU_BIN=qemu-arm-static;;
     rpi*) SUBPLATFORM=${PLATFORM%-*}; QEMU_BIN=qemu-arm-static;;
     usbarmory*) SUBPLATFORM=${PLATFORM%-*}; QEMU_BIN=qemu-arm-static;;
+    ci20*) SUBPLATFORM=${PLATFORM%-*}; QEMU_BIN=qemu-mipsel-static;;
+    odroid-c2*) SUBPLATFORM=${PLATFORM%-*}; QEMU_BIN=qemu-aarch64-static;;
     i686*) QEMU_BIN=qemu-i386-static;;
     x86_64*) QEMU_BIN=qemu-x86_64-static;;
     *) die "$PROGNAME: invalid platform!";;
@@ -221,7 +233,7 @@ if [ -n "${_ARCH}" ]; then
             register_binfmt
             run_cmd "xbps-reconfigure -r $rootfs base-files"
             run_cmd "chroot $rootfs env -i xbps-reconfigure -f base-files"
-            rmdir $rootfs/usr/lib32
+            rmdir $rootfs/usr/lib32 2>/dev/null
             rm -f $rootfs/lib32 $rootfs/lib64 $rootfs/usr/lib64
             ;;
     esac