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