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