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