Macbook Air, Pro and Mini devices since the end of 2020 have been based on the ARM architecture (arm64). They all use variants of the M1 chip.
Asahi Linux is the project to reverse engineer this device so linux can be used, and the first alpha release was in March 2022 and it allows Debian to run on the machines with most of the hardware useable (no bluetooth, graphics is unaccelerated, HDMI only works on mac mini)
For now (mid 2022), the best advice for getting Debian installed is to be found here: https://git.zerfleddert.de/cgi-bin/gitweb.cgi/m1-debian/
There isn't much point copying that info to these DebianOn pages yet as things are likely to continue changing for a while. Once things are uptreamed enough to install with debian packages these pages should be updated.
Boot loader recovery
The m1n1 boot loader uses u-boot as a payload, and u-boot loads grub (or systemd-boot, or whatever boot loader you've installed). Given that proper UEFI boot is not supported, grub (or any other) must be loaded using the EFI removable media path, which on arm64 is /EFI/boot/bootaa64.efi. If for any reason you end up with a non-working EFI application in bootaa64.efi, u-boot falls back to rebooting instead. This is what happens if you install shim for example, which does not work on the M1.
The Alpine Linux folks produced a very useful rescue system, which can be downloaded at https://dev.alpinelinux.org/~mps/m1/m1-usb-alpine-install.img.xz. On a working Linux system, copy the Alpine image to a USB stick with:
xzcat m1-usb-alpine-install.img.xz > /dev/sdX # replace X with the appropriate letter for your USB stick
Then boot your Debian Asahi installation as normal, wait for u-boot to load, and press a key when you see the Hit any key to stop autoboot prompt.
At the u-boot prompt, type
ls usb 0 /
If you do see the EFI directory, you're good. If you do NOT see it, try:
usb start usb reset usb storage
At this point ls usb 0/ should work.
You can boot the rescue system with:
Once you're in, mount the EFI system partition under /mnt and copy grub over the non-functioning EFI app:
cp /mnt/EFI/BOOT/grubaa64.efi /mnt/EFI/BOOT/bootaa64.efi
Reboot, and hopefully now your M1 will boot into Debian again.
EFI / u-boot recovery
In case you bricked u-boot which provides the EFI environment, you should be able to boot into macOS and then restore an older working m1n1/boot.bin. See: https://github.com/AsahiLinux/docs/wiki/Partitioning-cheatsheet#mounting-efi-partition
A team to get Debian officially support Apple M1 has been formed, here's the details: https://wiki.debian.org/Teams/Bananas
The speakers are currently disabled because of safety concerns. Efforts are ongoing upstream to develop speakersafetyd.
For now you can use bluetooth audio or the headphones jack. To enable the headphones jack install the alsa-ucm-conf-asahi package available in unstable (but should install just fine on stable as well).
It is possible to get the webcam working, but currently requires a few manual steps.
The asahi installer collects a tarball of potentially usable firmware files from macos. Unfortunately older versions of the installed missed the file hiding the webcam firmware, so you might need to manually update your all_firmware.tar.gz to include the /usr/sbin/appleh13camerad file found in your macos installation.
How to check if you have it already:
tar tfz /boot/efi/asahi/all_firmware.tar.gz | grep appleh13camerad
If the above didn't say you already have appleh13camerad you'll need to follow the steps in https://discussion.fedoraproject.org/t/webcam-users-manual-action-needed-for-full-image-quality/92027 to update all_firmware.tar.gz (note that you don't have asahi-fwupdate yet, as used in the last command).
First boot into macOS and copy the /usr/sbin/appleh13camerad file out (you can use a USB drive, the cloud, or your EFI system partition if you know what you’re doing).
Then boot into Linux, and do this:
mkdir /tmp/firmware cd /tmp/firmware mv /path/to/appleh13camerad . sudo tar xzf /boot/efi/asahi/all_firmware.tar.gz sudo tar czf /boot/efi/asahi/all_firmware.tar.gz . #sudo asahi-fwupdate # save this step for later.
firmware integration glue
Once you have appleh13camerad available in all_firmware.tar.gz you need some additional components that are currently not available in any repository. You'll need to build the following packages yourself:
Note: asahi-fwextract will dlopen liblzfse.so so beware of runtime issues if library name does not match what the python code say the file is called.
Once you've built the above, install asahi-fwextract (and its dependencies). You can now run asahi-fwupdate. Next you need to reboot so the initramfs glue in asahi-scripts gets a chance to set up your system correctly (i.e. /lib/firmware/vendor is available).
You should now have a working webcam!
Beware there are some bugs in some application (notably Cheese from the Gnome project) which gives distorted picture.