3 # SPDX-License-Identifier: MIT
12 export CARGO_HOME
="$(pwd)/build/cargo"
13 export RUSTUP_HOME
="$(pwd)/build/rust"
14 source "$(pwd)/build/cargo/env"
19 export M1N1_VERSION
=1.4.11
20 export KERNEL_VERSION
=asahi-6.6
-14
21 export UBOOT_VERSION
=asahi-v2023.07
.02-4
26 test -d linux || git clone https
://github.com
/AsahiLinux
/linux
29 git
reset --hard $KERNEL_VERSION
30 git clean
-f -x -d > /dev
/null
31 cat ..
/..
/config.txt
> .config
32 make LLVM
=-15 rustavailable
33 make LLVM
=-15 olddefconfig
34 make -j `nproc` LLVM
=-15 V
=0 bindeb-pkg
> /dev
/null
41 test -d m1n1 || git clone
--recursive https
://github.com
/AsahiLinux
/m1n1
44 git
reset --hard v
${M1N1_VERSION};
45 git clean
-f -x -d > /dev
/null
53 test -d u-boot || git clone https
://github.com
/AsahiLinux
/u-boot
56 git
reset --hard $UBOOT_VERSION
57 git clean
-f -x -d > /dev
/null
59 make apple_m1_defconfig
62 cat m1n
1/build
/m1n1.bin
`find linux/arch/arm64/boot/dts/apple/ -name \*.dtb` <(gzip -c u-boot
/u-boot-nodtb.bin
) > u-boot.bin
68 rm -rf m1n1_
${M1N1_VERSION}_arm64
69 mkdir
-p m1n1_
${M1N1_VERSION}_arm64
/DEBIAN m1n1_
${M1N1_VERSION}_arm64
/usr
/lib
/m1n
1/
70 cp u-boot.bin m1n1_
${M1N1_VERSION}_arm64
/usr
/lib
/m1n
1/boot.bin
71 cat <<EOF > m1n1_${M1N1_VERSION}_arm64/DEBIAN/control
73 Version: $M1N1_VERSION
77 Maintainer: Thomas Glanzmann <thomas@glanzmann.de>
78 Description: Apple silicon boot loader
79 Next to m1n1 this also contains the device trees and u-boot.
82 cat > m1n1_
${M1N1_VERSION}_arm64
/DEBIAN
/postinst
<<'EOF'
86 if [ -f /boot/efi/m1n1/boot.bin ]; then
87 cp /boot/efi/m1n1/boot.bin /boot/efi/m1n1/`date +%Y%m%d%H%M`.bin
89 mkdir -p /boot/efi/m1n1/
90 cp /usr/lib/m1n1/boot.bin /boot/efi/m1n1/
93 chmod 755 m1n1_
${M1N1_VERSION}_arm64
/DEBIAN
/postinst
94 dpkg-deb
--build m1n1_
${M1N1_VERSION}_arm64