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