]> git.zerfleddert.de Git - m1-debian/blame - m1n1_uboot_kernel.sh
bump linux / u-boot version; Run clean -f -x -d in the kernel tree to make sure that...
[m1-debian] / m1n1_uboot_kernel.sh
CommitLineData
9ac5deac
TG
1#!/usr/bin/env bash
2
3# SPDX-License-Identifier: MIT
4
5set -o errexit
6set -o nounset
7set -o pipefail
8set -o xtrace
9
10cd "$(dirname "$0")"
11
9eed8ca6
TG
12export CARGO_HOME="$(pwd)/build/cargo"
13export RUSTUP_HOME="$(pwd)/build/rust"
14source "$(pwd)/build/cargo/env"
15
9ac5deac
TG
16unset LC_CTYPE
17unset LANG
18
d7c644ab 19export M1N1_VERSION=1.4.2
c63db8ae 20
9ac5deac
TG
21build_linux()
22{
23(
24 test -d linux || git clone https://github.com/AsahiLinux/linux
25 cd linux
26 git fetch -a -t
e5a3ffbe
TG
27 git reset --hard asahi-6.5-15
28 git clean -f -x -d > /dev/null
7dcd418b 29 cat ../../config.txt > .config
b33d2b4a
TG
30 make LLVM=-15 rustavailable
31 make LLVM=-15 olddefconfig
32 make -j `nproc` LLVM=-15 V=0 bindeb-pkg > /dev/null
9ac5deac
TG
33)
34}
35
36build_m1n1()
37{
38(
39 test -d m1n1 || git clone --recursive https://github.com/AsahiLinux/m1n1
40 cd m1n1
41 git fetch -a -t
c63db8ae 42 git reset --hard v{M1N1_VERSION};
9ac5deac
TG
43 make -j `nproc`
44)
45}
46
47build_uboot()
48{
49(
50 test -d u-boot || git clone https://github.com/AsahiLinux/u-boot
51 cd u-boot
52 git fetch -a -t
e5a3ffbe 53 git reset --hard asahi-v2023.07.02-3
9ac5deac
TG
54
55 make apple_m1_defconfig
56 make -j `nproc`
57)
58 cat m1n1/build/m1n1.bin `find linux/arch/arm64/boot/dts/apple/ -name \*.dtb` <(gzip -c u-boot/u-boot-nodtb.bin) > u-boot.bin
9ac5deac
TG
59}
60
ce492006
TG
61package_boot_bin()
62{
63(
59b40e06
TG
64 rm -rf m1n1_${M1N1_VERSION}_arm64
65 mkdir -p m1n1_${M1N1_VERSION}_arm64/DEBIAN m1n1_${M1N1_VERSION}_arm64/usr/lib/m1n1/
66 cp u-boot.bin m1n1_${M1N1_VERSION}_arm64/usr/lib/m1n1/boot.bin
67 cat <<EOF > m1n1_${M1N1_VERSION}_arm64/DEBIAN/control
ce492006
TG
68Package: m1n1
69Version: $M1N1_VERSION
70Section: base
71Priority: optional
72Architecture: arm64
73Maintainer: Thomas Glanzmann <thomas@glanzmann.de>
74Description: Apple silicon boot loader
75 Next to m1n1 this also contains the device trees and u-boot.
76EOF
77
d201f029 78 cat > m1n1_${M1N1_VERSION}_arm64/DEBIAN/postinst <<'EOF'
ce492006
TG
79#!/bin/bash
80
81export PATH=/bin
b5a41dd1
TG
82if [ -f /boot/efi/m1n1/boot.bin ]; then
83 cp /boot/efi/m1n1/boot.bin /boot/efi/m1n1/`date +%Y%m%d%H%M`.bin
84fi
85mkdir -p /boot/efi/m1n1/
ce492006
TG
86cp /usr/lib/m1n1/boot.bin /boot/efi/m1n1/
87EOF
88
59b40e06
TG
89 chmod 755 m1n1_${M1N1_VERSION}_arm64/DEBIAN/postinst
90 dpkg-deb --build m1n1_${M1N1_VERSION}_arm64
cd6d1106 91)
ce492006
TG
92}
93
9ac5deac
TG
94mkdir -p build
95cd build
96
5a6d8c66 97build_linux
029bb7dc
TG
98build_m1n1
99build_uboot
100package_boot_bin
Impressum, Datenschutz