]>
Commit | Line | Data |
---|---|---|
1 | # Boot into macos | |
2 | ||
3 | # Extract the firmware and save it somewhere you have access to | |
4 | curl -sL tg.st/u/fwx.sh | sh | |
5 | ||
6 | # Make space the last number is the size that MacOS instatllation should consume | |
7 | diskutil apfs resizeContainer disk0s2 200GB | |
8 | ||
9 | # Run the installer, select as stub OS 12.1, in the boot picker you supposed to | |
10 | # click Restart than return to the shell and wait until the installer is | |
11 | # finished and press Return to shutdown your system. | |
12 | curl -L https://mrcn.st/alxsh | sh | |
13 | ||
14 | # 1. Press and hold down the power button to power on the system. | |
15 | # * It is important that the system be fully powered off before this step, | |
16 | # and that you press and hold down the button once, not multiple times. | |
17 | # This is required to put the machine into the right mode. | |
18 | # 2. Release it once 'Entering startup options' is displayed. | |
19 | # 3. Choose Options. | |
20 | # 4. You will briefly see a 'macOS Recovery' dialog. | |
21 | # * If you are asked to 'Select a volume to recover', | |
22 | # then choose your normal macOS volume and click Next. | |
23 | # 5. Click on the Utilities menu and select Terminal. | |
24 | # 6. Type the following command and follow the prompts: | |
25 | ||
26 | # Create an EFI parition because the final layout will have that | |
27 | diskutil list | |
28 | diskutil addPartition <identifier before free space> %EFI% LB 512MB | |
29 | ||
30 | # Create partition to hold a rootfs (minimum 1GB if you want to use the rootfs below) | |
31 | diskutil list | |
32 | diskutil addPartition <identifier before free space> %Linux% %noformat% <size> | |
33 | ||
34 | # dd a Debian Testing rootfs on it (minimum size 1 GB) | |
35 | # Find the scripts to create that rootfs here: https://git.zerfleddert.de/cgi-bin/gitweb.cgi/m1-debian | |
36 | curl -L https://tg.st/u/m1.tgz | tar -xOz | dd of=/dev/<identifier of Linux Filesystem> | |
37 | ||
38 | # Relax the boot policy for the stub os and uplaod install m1n1 | |
39 | /Volumes/Linux/step2.sh | |
40 | ||
41 | # Build dependencies | |
42 | sudo apt install -y gcc-aarch64-linux-gnu libc6-dev-arm64-cross device-tree-compiler imagemagick build-essential bc kmod flex cpio libncurses5-dev libelf-dev:native bison libssl-dev | |
43 | ||
44 | # Compile the kernel | |
45 | git clone --depth 1 https://github.com/AsahiLinux/linux | |
46 | cd linux | |
47 | curl -s https://tg.st/u/9ce9060dea91951a330feeeda3ad636bc88c642c.patch | git am - | |
48 | curl -s https://tg.st/u/5nly | git am - | |
49 | curl -s https://tg.st/u/m1-config-2022-01-27 > .config | |
50 | ||
51 | # Crosscompile the kernel | |
52 | make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- olddefconfig | |
53 | make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j32 Image.gz dtbs | |
54 | ||
55 | cd .. | |
56 | ||
57 | # build m1n1 | |
58 | git clone --recursive https://github.com/AsahiLinux/m1n1.git | |
59 | cd m1n1 | |
60 | make | |
61 | ||
62 | # Export the control device for the proxyclient and friends | |
63 | export M1N1DEVICE=/dev/ttyACM0 | |
64 | ||
65 | # chainload m1n1 so that you have the latest features available | |
66 | ./proxyclient/tools/chainload.py build/m1n1.macho | |
67 | ||
68 | # Enable PCIe for wifi | |
69 | python3 ./proxyclient/experiments/pcie_enable_devices.py | |
70 | ||
71 | # Pick the dtb for your device: https://github.com/AsahiLinux/docs/wiki/Devices | |
72 | proxyclient/tools/linux.py --bootargs="net.ifnames=0 rw root=/dev/nvme0n1p5 rootwait rootfstype=ext4" ../linux/arch/arm64/boot/Image.gz ../linux/arch/arm64/boot/dts/apple/t8103-j293.dtb | |
73 | ||
74 | # Set timezone | |
75 | dpkg-reconfigure tzdata |