diff options
author | Timo Teräs <timo.teras@iki.fi> | 2016-08-08 15:25:22 +0300 |
---|---|---|
committer | Natanael Copa <ncopa@alpinelinux.org> | 2016-11-14 20:10:39 +0000 |
commit | 46f65fad4cce984a5f3cb781ee2fe18933665862 (patch) | |
tree | b19f847e4f9b91071cfb1eab5faad4e63b9bd60b /scripts/mkimg.arm.sh | |
parent | cdaf6e91c92269a9ea7afe5cf83fee79f0594d90 (diff) | |
download | aports-46f65fad4cce984a5f3cb781ee2fe18933665862.tar.bz2 aports-46f65fad4cce984a5f3cb781ee2fe18933665862.tar.xz |
scripts/mkimage.sh: scripts to build bootable alpine images
Diffstat (limited to 'scripts/mkimg.arm.sh')
-rw-r--r-- | scripts/mkimg.arm.sh | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/scripts/mkimg.arm.sh b/scripts/mkimg.arm.sh new file mode 100644 index 0000000000..7b1f9cc343 --- /dev/null +++ b/scripts/mkimg.arm.sh @@ -0,0 +1,86 @@ +build_rpi_blobs() { + local fw + for fw in bootcode.bin fixup.dat start.elf ; do + curl --remote-time https://raw.githubusercontent.com/raspberrypi/firmware/${rpi_firmware_commit}/boot/${fw} \ + --output "${DESTDIR}"/${fw} || return 1 + done +} + +rpi_gen_cmdline() { + echo "modules=loop,squashfs,sd-mod,usb-storage quiet ${kernel_cmdline}" +} + +rpi_gen_config() { + cat <<EOF +disable_splash=1 +boot_delay=0 +gpu_mem=256 +gpu_mem_256=64 +[pi0] +kernel=boot/vmlinuz-rpi +initramfs boot/initramfs-rpi 0x08000000 +[pi1] +kernel=boot/vmlinuz-rpi +initramfs boot/initramfs-rpi 0x08000000 +[pi2] +kernel=boot/vmlinuz-rpi2 +initramfs boot/initramfs-rpi2 0x08000000 +[pi3] +kernel=boot/vmlinuz-rpi2 +initramfs boot/initramfs-rpi2 0x08000000 +[all] +include usercfg.txt +EOF +} + +build_rpi_config() { + rpi_gen_cmdline > "${DESTDIR}"/cmdline.txt + rpi_gen_config > "${DESTDIR}"/config.txt +} + +section_rpi_config() { + [ -n "$rpi_firmware_commit" ] || return 0 + build_section rpi_config $( (rpi_gen_cmdline ; rpi_gen_config) | checksum ) + build_section rpi_blobs "$rpi_firmware_commit" +} + +profile_rpi() { + profile_base + image_ext="tar.gz" + arch="armhf" + rpi_firmware_commit="4bf906cdd221c4f6815d0da7dda0cd59d25d945b" + kernel_flavors="rpi rpi2" + kernel_cmdline="dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1" + initrd_features="base bootchart squashfs ext2 ext3 ext4 f2fs kms mmc raid scsi usb" + apkovl="genapkovl-dhcp.sh" + hostname="rpi" + image_ext="tar.gz" +} + +build_uboot() { + # FIXME: Fix apk-tools to extract packages directly + local pkg pkgs="$(apk fetch --simulate --root /tmp/timo/apkroot-armhf/ --recursive u-boot-all | sed -ne "s/^Downloading \([^0-9.]*\)\-.*$/\1/p")" + for pkg in $pkgs; do + [ "$pkg" == "u-boot-all" ] || apk fetch --root "$APKROOT" --stdout $pkg | tar -C "$DESTDIR" -xz usr + done + mkdir -p "$DESTDIR"/u-boot + mv "$DESTDIR"/usr/sbin/update-u-boot "$DESTDIR"/usr/share/u-boot/* "$DESTDIR"/u-boot + rm -rf "$DESTDIR"/usr +} + +section_uboot() { + [ -n "$uboot_install" ] || return 0 + build_section uboot $ARCH $(apk fetch --root "$APKROOT" --simulate --recursive u-boot-all | sort | checksum) +} + +profile_uboot() { + profile_base + image_ext="tar.gz" + arch="armhf armv7" + kernel_flavors="grsec" + kernel_addons="xtables-addons" + initfs_features="base bootchart squashfs ext2 ext3 ext4 kms mmc raid scsi usb" + apkovl="genapkovl-dhcp.sh" + hostname="alpine" + uboot_install="yes" +} |