arm64 d-i for apple m1 machines
Hello,
I modified the daily build of d-i to be able to install it on m1.
Currently I have the following problems:
- I need to extract some wifi firmware from a usb stick
- I need to tell grub to use the removable media path and not
try to update the nvram
- The signed grub binary should not be installed because u-boot
hangs when it tries to load the same.
- I need to install a custom kernel
I tried three things:
- Create a preseed.cfg in the root of the initramfs with the
following options:
d-i base-installer/kernel/image string none
d-i preseed/early_command /wifi.sh
d-i preseed/late_command /kernel.sh
grub-efi-arm64 grub2/update_nvram boolean false
grub-efi-arm64 grub2/force_efi_extra_removable boolean true
When I do that the debian installer does not start on vt0, I
have to go to vt1 and attach to a screen session with a
basic d-i in it. I want the regular one.
- Tried the hooks here: https://d-i.debian.org/doc/internals/apb.html
/usr/lib/debian-installer-startup.d/
This directory did not exist, I created it, but the script was
not executed.
/usr/lib/post-base-installer.d/*
This is the only hook that worked for me. But I tried to use it
to set the following two options in /target system which were
ignored when installing grub:
grub-efi-arm64 grub2/update_nvram boolean false
grub-efi-arm64 grub2/force_efi_extra_removable boolean true
/usr/lib/finish-install.d/* [finish-install]
This script was not executed.
- So what I now did is write two scripts which are being
executed by the user on a shell on the first installer page to
load the wifi firmware. And when grub installation failed to
install grub and install a kernel.
See also:
https://git.zerfleddert.de/cgi-bin/gitweb.cgi/m1-debian bootstrap.sh
https://tg.st/u/m1-d-i.mp4
https://github.com/AsahiLinux/docs/wiki/Debian
If you have any advise for me how to improve the procedure, so that the
user does not need to install the scripts manually, please let me know.
Cheers,
Thomas
Reply to: