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