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