]> cvs.zerfleddert.de Git - m1-debian/blob - gpu.sh
e1de1da10a193cd3942e6b213fc44e1da4476053
[m1-debian] / gpu.sh
1 #!/usr/bin/env bash
2
3 # SPDX-License-Identifier: MIT
4
5 set -o errexit
6 set -o nounset
7 set -o pipefail
8 set -o xtrace
9
10 cd "$(dirname "$0")"
11
12 unset LC_CTYPE
13 unset LANG
14
15 build_linux()
16 {
17 (
18 test -d linux || git clone https://github.com/AsahiLinux/linux
19 cd linux
20 git fetch -a -t
21 git reset --hard asahi-6.1-rc8-3;
22 source "$HOME/.cargo/env"
23 cat ../../config-gpu.txt > .config
24 make LLVM=-15 olddefconfig
25 make -j `nproc` LLVM=-15 V=0 bindeb-pkg > /dev/null
26 )
27 }
28
29 build_m1n1()
30 {
31 (
32 test -d m1n1 || git clone --recursive https://github.com/AsahiLinux/m1n1
33 cd m1n1
34 git fetch -a -t
35 git reset --hard v1.2.2;
36 make -j `nproc`
37 )
38 }
39
40 build_uboot()
41 {
42 (
43 test -d u-boot || git clone https://github.com/AsahiLinux/u-boot
44 cd u-boot
45 git fetch -a -t
46 git reset --hard asahi-v2022.10-1;
47
48 make apple_m1_defconfig
49 make -j `nproc`
50 )
51 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
52 }
53
54 package_boot_bin()
55 {
56 (
57 export M1N1_VERSION=1.2.2-1
58 rm -rf m1n1_${M1N1_VERSION}
59 mkdir -p m1n1_${M1N1_VERSION}/DEBIAN m1n1_${M1N1_VERSION}/usr/lib/m1n1/
60 cp u-boot.bin m1n1_${M1N1_VERSION}/usr/lib/m1n1/boot.bin
61 cat <<EOF > m1n1_${M1N1_VERSION}/DEBIAN/control
62 Package: m1n1
63 Version: $M1N1_VERSION
64 Section: base
65 Priority: optional
66 Architecture: arm64
67 Maintainer: Thomas Glanzmann <thomas@glanzmann.de>
68 Description: Apple silicon boot loader
69 Next to m1n1 this also contains the device trees and u-boot.
70 EOF
71
72 cat > m1n1_${M1N1_VERSION}/DEBIAN/postinst <<EOF
73 #!/bin/bash
74
75 export PATH=/bin
76 cp /boot/efi/m1n1/boot.bin /boot/efi/m1n1/`date +%Y%m%d%H%M`.bin
77 cp /usr/lib/m1n1/boot.bin /boot/efi/m1n1/
78 EOF
79
80 chmod 755 m1n1_${M1N1_VERSION}/DEBIAN/postinst
81 dpkg-deb --build m1n1_${M1N1_VERSION}
82 )
83 }
84
85 mkdir -p build
86 cd build
87
88 build_linux
89 build_m1n1
90 build_uboot
91 package_boot_bin
Impressum, Datenschutz