1
0
Fork 0
mirror of https://gitlab.alpinelinux.org/alpine/aports.git synced 2025-07-13 11:19:50 +03:00
aports/scripts/mkimg.arm.sh
Natanael Copa 9a78244068 main/raspberrypi-bootloader: split common bootcode.bin
Move common bootcode.bin to a separate subpackage and make it a
dependency for the packages that needs it.

Also adjust the script that generates the release tarball.

Fixes https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/15723
2022-01-18 15:08:01 +00:00

142 lines
3.3 KiB
Bash
Executable file

build_rpi_blobs() {
for i in raspberrypi-bootloader-common raspberrypi-bootloader; do
apk fetch --quiet --stdout "$i" | tar -C "${DESTDIR}" -zx --strip=1 boot/ || return 1
done
}
rpi_gen_cmdline() {
echo "modules=loop,squashfs,sd-mod,usb-storage quiet ${kernel_cmdline}"
}
rpi_gen_config() {
cat <<-EOF
# do not modify this file as it will be overwritten on upgrade.
# create and/or modify usercfg.txt instead.
# https://www.raspberrypi.com/documentation/computers/config_txt.html
EOF
case "$ARCH" in
armhf)
cat <<-EOF
[pi0]
kernel=boot/vmlinuz-rpi
initramfs boot/initramfs-rpi
[pi0w]
kernel=boot/vmlinuz-rpi
initramfs boot/initramfs-rpi
[pi1]
kernel=boot/vmlinuz-rpi
initramfs boot/initramfs-rpi
[pi2]
kernel=boot/vmlinuz-rpi2
initramfs boot/initramfs-rpi2
[pi3]
kernel=boot/vmlinuz-rpi2
initramfs boot/initramfs-rpi2
[pi3+]
kernel=boot/vmlinuz-rpi2
initramfs boot/initramfs-rpi2
[all]
include usercfg.txt
EOF
;;
armv7)
cat <<-EOF
[pi2]
kernel=boot/vmlinuz-rpi2
initramfs boot/initramfs-rpi2
[pi3]
kernel=boot/vmlinuz-rpi2
initramfs boot/initramfs-rpi2
[pi3+]
kernel=boot/vmlinuz-rpi2
initramfs boot/initramfs-rpi2
[pi4]
kernel=boot/vmlinuz-rpi4
initramfs boot/initramfs-rpi4
[all]
include usercfg.txt
EOF
;;
aarch64)
cat <<-EOF
[pi3]
kernel=boot/vmlinuz-rpi
initramfs boot/initramfs-rpi
[pi3+]
kernel=boot/vmlinuz-rpi
initramfs boot/initramfs-rpi
[pi4]
enable_gic=1
kernel=boot/vmlinuz-rpi4
initramfs boot/initramfs-rpi4
[all]
arm_64bit=1
include usercfg.txt
EOF
;;
esac
}
build_rpi_config() {
rpi_gen_cmdline > "${DESTDIR}"/cmdline.txt
rpi_gen_config > "${DESTDIR}"/config.txt
}
section_rpi_config() {
[ "$hostname" = "rpi" ] || return 0
build_section rpi_config $( (rpi_gen_cmdline ; rpi_gen_config) | checksum )
build_section rpi_blobs
}
profile_rpi() {
profile_base
title="Raspberry Pi"
desc="Includes Raspberry Pi kernel.
Designed for RPI 1, 2, 3 and 4.
And much more..."
image_ext="tar.gz"
arch="aarch64 armhf armv7"
kernel_flavors="rpi"
case "$ARCH" in
aarch64) kernel_flavors="rpi rpi4";;
armhf) kernel_flavors="rpi rpi2";;
armv7) kernel_flavors="rpi2 rpi4";;
esac
kernel_cmdline="console=tty1"
initfs_features="base squashfs mmc usb kms dhcp https"
hostname="rpi"
grub_mod=
}
build_uboot() {
set -x
# FIXME: Fix apk-tools to extract packages directly
local pkg pkgs="$(apk fetch --simulate --root "$APKROOT" --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
title="Generic ARM"
desc="Has default ARM kernel.
Includes the uboot bootloader.
Supports armv7 and aarch64."
image_ext="tar.gz"
arch="aarch64 armv7"
kernel_flavors="lts"
kernel_addons="xtables-addons"
initfs_features="base bootchart squashfs ext4 kms mmc raid scsi usb"
apkovl="genapkovl-dhcp.sh"
hostname="alpine"
uboot_install="yes"
}