X-Git-Url: http://cvs.zerfleddert.de/cgi-bin/gitweb.cgi/m1-debian/blobdiff_plain/9ef76d5d0e21e7ddea3cebd5817d79fa697830ac..2ad631dc766efdf45e699dc24ae4d036911e9211:/doc/notes.txt diff --git a/doc/notes.txt b/doc/notes.txt index fa50320..605979f 100644 --- a/doc/notes.txt +++ b/doc/notes.txt @@ -79,3 +79,105 @@ echo 1 > /sys/module/hid_apple/parameters/swap_opt_cmd 17:34 the image as built will have a real grub config with static UUIDs 17:35 well, a systemd early unit but yes + +{ + "os_list": [ + { + "name": "Asahi Linux reference distro (Arch Linux ARM)", + "default_os_name": "Asahi Linux", + "boot_object": "m1n1_uboot.bin", + "package": "asahi-alarm.zip", + "partitions": [ + { + "name": "EFI", + "type": "EFI", + "size": "512MB", + "format": "fat", + "volume_id": "0x03f103f1", + "copy_firmware": true, + "copy_installer_data": true, + "source": "esp" + }, + { + "name": "Root", + "type": "Linux", + "size": "5GB", + "expand": true, + "image": "root.img" + } + ] + }, + { + "name": "UEFI environment only (m1n1 + U-Boot + ESP)", + "default_os_name": "UEFI boot", + "boot_object": "m1n1_uboot.bin", + "partitions": [ + { + "name": "EFI", + "type": "EFI", + "size": "512MB", + "format": "fat", + "copy_firmware": true, + "copy_installer_data": true + } + ] + }, + { + "name": "Tethered boot (m1n1, for development)", + "default_os_name": "m1n1 proxy", + "expert": true, + "boot_object": "m1n1.bin", + "partitions": [] + } + ] +} + +cloud-initramfs-growroot +16:00 < Glanzmann> So applying a new uuid to the rootfs needs to be done in the initrd. +tune2fs -U random /dev/whatever + +07:54 < VinDuv> So I’ve been looking at how macOS installation from USB works on M1 Macs and I think it might be interesting for the Asashi installer. The way it works is that there’s a hidden plist file on the USB drive that references a macOS + application on the drive; if this file is present, the USB drive will show up in the power-button-held boot menu, and when selected, it will run the application. It doesn’t seem to care about file signature +07:54 < VinDuv> (it works even if the app is just a shell script) and it looks like it’s in 1TR mode. +07:56 < VinDuv> So the installation workflow from 1TR could be “plug in a USB stick, hold the power button, select Install Asahi” instead of having to manually open the terminal and run curl | sh. The installer doesn’t even need to be graphical since + it’s possible for the launched shell script to start the recovery environment’s Terminal and giving it an arbitrary command to run. +07:59 < VinDuv> This is also not limited to external USB drives; it also works if the files are in an APFS volume in internal storage, which I guess might be useful to have a Asahi Recovery boot option in the boot menu or something. + +---- .IAPhysicalMedia --------------------------------------------------------- + + + + + AppName + Some App.app + ProductBuildVersion + 00A191 + ProductVersion + 12.2.1 + + + +---- Some App.app/Contents/Info.plist ----------------------------------------- + + + + + CFBundleDisplayName + Some App + CFBundleExecutable + SomeApp + + + +---- Some App.app/Contents/Resources/.lproj/InfoPlist.strings ------ +"CFBundleDisplayName" = "Some App"; + +---- Some App.app/Contents/MacOS/SomeApp (executable) ------------------------- +#!/bin/bash +exec /System/Applications/Utilities/Terminal.app/Contents/MacOS/Terminal "${0%/*}/../Resources/myscript.command" + +---- Some App.app/Contents/Resources/myscript.command ------------------------- +#!/bin/sh + +echo "Hello, world!" +exec /bin/bash