]> cvs.zerfleddert.de Git - m1-debian/blame - README.md
faq += mesa dependencies issues
[m1-debian] / README.md
CommitLineData
7f89d5b0
TG
1This pages explains how to install Debian on Apple Silicon machines.
2
3# Tripwires
4The USB-A Port on the Mac Mini will not work in u-boot and grub. The two
2984be23 5additional USB-3 ports on the iMac 4 port model don't work in u-boot, grub
7f89d5b0
TG
6and Linux. In order to install Linux on a FileVault-enabled Mac run the
7installer from Recovery open Disk Utility > Expanding "Macintosh HD" >
47b13fcc
TG
8Selecting locked volume > click "Mount". Debian does not include the choosen
9EFI patch. As a result it will always pick the first ESP partition. This can be
10problematic if you're using multiple ESP partitions for example when having
11multiple Linux and BSD installations.
c5e46692 12
7f89d5b0 13# Artefacts
8fca5a78
TG
14If you don't want to use the prebuild artefacts, you can build them yourself
15using the following scripts:
16
17 - prepare_rust.sh - Prepares a rust installation suitable for kernel compilation
18 - m1n1_uboot_kernel.sh - Builds m1n1, u-boot and the kernel including gpu support.
19 - mesa.sh - Creates mesa packages
20 - bootstrap.sh - Creates Debian root and live filesystem
13cab652 21 - meta.sh - Meta package which makes sure that we always get latest and greatest kernel.
47b13fcc 22
7f89d5b0
TG
23# Asahi installer
24
25[Video Recording](https://tg.st/u/debian_asahi_installer.mp4)
26
27* Poweroff your Mac. Hold and press the power button until you see a wheel chain and Options written below. Approx 20 seconds.
28
29* In the boot picker, choose Options. Once loaded, open a Terminal under Utilities > Terminal
30
0c054fe6 31* Run the asahi installer and select Debian:
7f89d5b0 32
9c6d410f 33 curl -sL https://tg.st/d | sh
7f89d5b0
TG
34
35* Follow the installer instructions.
36
37* Once Debian is booted log in as root without password and set a root password
38
39 passwd
40 pwconv
41
42* Configure wifi by editing the wpa_supplicant.conf, enabling the interface and remove the # before allow-hotplug to enable it during boot.
43
44 vi /etc/wpa_supplicant/wpa_supplicant.conf
e6f0833d 45 ifup wlan0
7f89d5b0
TG
46 vi /etc/network/interfaces
47
48* Reboot to see if grub was correctly installed
49
50 reboot
51
52* Install a desktop environment for example blackbox
53
56d14923 54 apt-get update
7f89d5b0
TG
55 apt-get install -y xinit blackbox xterm firefox-esr lightdm
56
57* Create yourself an unprivileged user
58
59 useradd -m -c 'Firstname Lastname' -s /bin/bash <username>
60 passwd <username>
61
62* Optional install sshd. You can not log in as root, but only with your unprivileged user
63
64 apt update
65 apt install -y openssh-server
66
ec28cb51
TG
67* Consult the **[/root/quickstart.txt](https://git.zerfleddert.de/cgi-bin/gitweb.cgi/m1-debian/blob_plain/refs/heads/master:/files/quickstart.txt)** file to find out how to do other interesting things.
68
7f89d5b0 69# Livesystem
933c215f 70
7f89d5b0 71[Video Recording](https://tg.st/u/live.mp4)
933c215f 72
7f89d5b0
TG
73* Prerequisites
74
9c6d410f 75 - USB Stick. this is what this guide assumes, but it is also possible
d7a5b871 76 to run the Debian livesystem from another PC using m1n1 chainloading.
9c6d410f
TG
77 But if you know how to do that, you probably don't need this guide.
78 - If possible use an Ethernet Dongle, less typing.
7f89d5b0
TG
79
80* Create USB Stick with a single vfat partition on it and untar the modified Debian installer on it. Instructions for Linux:
81
82 # Identify the usb stick device
83 lsblk
ffa40a8e 84
7f89d5b0
TG
85 DEVICE=/dev/sdX
86 parted -a optimal $DEVICE mklabel msdos
87 parted -a optimal $DEVICE mkpart primary fat32 2048s 100%
88 mkfs.vfat ${DEVICE}1
ffa40a8e
TG
89 mount ${DEVICE}1 /mnt
90 curl -sL https://tg.st/u/asahi-debian-live.tar | tar -C /mnt -xf -
7f89d5b0
TG
91 umount /mnt
92
93In order to format the usb stick under Macos, open the disk utility, right-click on the usb stick (usually the lowest device in the list) and select erase. Choose the following options:
94
95 Name: LIVE
96 Format: MS-DOS (FAT)
97 Scheme: Master Boot Record
98
99Than open a terminal, and run the following commands:
100
101 sudo su -
102 cd /Volumes/LIVE
103 curl -sL https://tg.st/u/asahi-debian-live.tar | tar -xf -
104
105* You need to run the asahi installer and have either an OS installed or m1n1+UEFI.
106
12a464df 107* If you have a EFI binary on the NVMe and want to boot from the usb stick, you need to interrupt u-boot on the countdown by pressing any key and run the following comamnd to boot from usb:
7f89d5b0 108
01cd7ce3 109 env set boot_efi_bootmgr; run bootcmd_usb0
7f89d5b0
TG
110
111* Reboot with the USB stick connected, the Debian livesystem should automatically start, if it doesn't load the kernel and initrd manually, you can use tab. For x try 0,1,2,...
112
113 linux (hdX,msdos1)/vmlinuz
114 initrd (hdX,msdos1)/initrd.gz
115 boot
116
117* Log in as **root** without password.
118
119* Consult the **[/root/quickstart.txt](https://git.zerfleddert.de/cgi-bin/gitweb.cgi/m1-debian/blob_plain/refs/heads/master:/files/quickstart.txt)** file to find out how to get the networking up, etc.
28465d9b
TG
120
121# FAQ
122
280e21cd
TG
123## Why has there been no kernel update?
124
125For Debian stable I'm currently unable to update the kernel due to the fact
126that the kernel requires new mesa packages and the new mesa package needs too
127many dependencies which are not in Debian stable and I'm not willing to add
128that many new packages. So I recommend that if you want the latest asahi
129kernel, mesa, sound and other packages, switch to testing and use Thomas
130Renards packages for testing. <https://wiki.debian.org/Teams/Bananas>
131
98852185
TG
132## How to enable spakers?
133
134Currently speakers are only supported on M1 air. Install the necessary packages:
135
136 apt update
137 apt upgrade -y
138 apt dist-upgrade -y
139 apt install -y alsa-ucm-conf-asahi speakersafetyd
140 reboot
141
142After the reboot I need to restart the speakersafetyd in order to hear sound out of the speakers:
143
144 sudo systemctl restart speakersafetyd
145
a5cc7a10
TG
146## Does it work on M2?
147
148Yes, M3 is not yet supported.
149
d87adfd2
TG
150## Are you still maintaining this?
151
152Yes, I do and will continue doing this until there is an official Debian installer.
153
a420f846 154## If I install Debian, will it be easy to update the Asahi work as it develops?
28465d9b
TG
155
156Yes, long answer below.
157
158To update the kernel to the lastest "stable" asahi branch you need to run
159as root:
160
cccfe6d5
TG
161 apt update
162 apt upgrade
163
164For installations before 2022-12-12, see <https://thomas.glanzmann.de/asahi/README.txt>
28465d9b 165
79777387 166Later it might be necessary to upgrade the stub partion in order to
28465d9b
TG
167support the GPU code. As soon as that happens, I'll add the
168instructions and a video in order to do so, but short version is:
169
170 - Backup /boot/efi/EFI
171 - Delete the old stub and efi/esp partition
5869d4a4 172 - Rerun the asahi installer with m1n1+u-boot option
28465d9b
TG
173 - Put the /boot/efi/EFI back
174
8499f105 175So, you never need to reinstall Debian. Kernel updates are easy, stub
28465d9b 176updates are a little bit more cumbersome but also seldom.
723a10cd 177
a420f846 178## How do I compile zfs on apple silicon debian?
723a10cd
TG
179
180- In order to build zfs you need the rust environment. So from the m1-debian
181 repository you have to run these scripts:
182
183 ./dependencies.sh
184 ./prepare_rust.sh
185
723a10cd
TG
186- Prepare your zfs build environment. You need to replace
187 /home/sithglan/work/m1-debian with your path to
188 your m1-debian checkout:
189
190 export CARGO_HOME="/home/sithglan/work/m1-debian/build/cargo"
191 export RUSTUP_HOME="/home/sithglan/work/m1-debian/build/rust"
192 source "/home/sithglan/work/m1-debian/build/cargo/env"
193
723a10cd
TG
194- Tell zfs which version of clang you use to compile the kernel:
195
196 export KERNEL_LLVM=-15
197
198- Checkout ZFS:
199
200 git clone https://github.com/openzfs/zfs
201 cd ./zfs
202 git checkout master
203
204- Apply the following patch:
205
206 diff --git a/META b/META
207 index 3919b0d..67c9f7d 100644
208 --- a/META
209 +++ b/META
210 @@ -4,7 +4,7 @@ Branch: 1.0
211 Version: 2.2.99
212 Release: 1
213 Release-Tags: relext
214 -License: CDDL
215 +License: GPL
216 Author: OpenZFS
217 Linux-Maximum: 6.4
218 Linux-Minimum: 3.10
219
220- Build ZFS:
221
222 sh autogen.sh
223 ./configure
224 make -s -j$(nproc)
225
226- Follow the instructions on <https://openzfs.github.io/openzfs-docs/Developer%20Resources/Building%20ZFS.html> how to install it.
Impressum, Datenschutz