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