| |
@@ -0,0 +1,77 @@
|
| |
+ From 1f654cbeab3050cc37cb9a9390ed6fd8ec2b91bf Mon Sep 17 00:00:00 2001
|
| |
+ From: Davide Cavalca <dcavalca@fedoraproject.org>
|
| |
+ Date: Mon, 19 Sep 2022 14:09:57 +0200
|
| |
+ Subject: [PATCH] Add asahi-fwextract script
|
| |
+
|
| |
+ Signed-off-by: Davide Cavalca <dcavalca@fedoraproject.org>
|
| |
+ ---
|
| |
+ Makefile | 2 +-
|
| |
+ asahi-fwextract | 46 ++++++++++++++++++++++++++++++++++++++++++++++
|
| |
+ 2 files changed, 47 insertions(+), 1 deletion(-)
|
| |
+ create mode 100755 asahi-fwextract
|
| |
+
|
| |
+ diff --git a/Makefile b/Makefile
|
| |
+ index 8d2eba0..30c707d 100644
|
| |
+ --- a/Makefile
|
| |
+ +++ b/Makefile
|
| |
+ @@ -1,7 +1,7 @@
|
| |
+ PREFIX=/usr/local
|
| |
+ CONFIG_DIR=/etc/default
|
| |
+ BIN_DIR=$(PREFIX)/bin
|
| |
+ -SCRIPTS=update-vendor-firmware update-m1n1
|
| |
+ +SCRIPTS=asahi-fwextract update-vendor-firmware update-m1n1
|
| |
+ ARCH_SCRIPTS=update-grub first-boot
|
| |
+ UNITS=first-boot.service
|
| |
+ MULTI_USER_WANTS=first-boot.service
|
| |
+ diff --git a/asahi-fwextract b/asahi-fwextract
|
| |
+ new file mode 100755
|
| |
+ index 0000000..112f58e
|
| |
+ --- /dev/null
|
| |
+ +++ b/asahi-fwextract
|
| |
+ @@ -0,0 +1,46 @@
|
| |
+ +#!/bin/sh
|
| |
+ +# SPDX-License-Identifier: MIT
|
| |
+ +
|
| |
+ +set -eu
|
| |
+ +
|
| |
+ +[ -e /etc/default/asahi-fwextract ] && . /etc/default/asahi-fwextract
|
| |
+ +
|
| |
+ +: "${ASAHIFW:=}"
|
| |
+ +: "${VENDORFW:=}"
|
| |
+ +: "${PYTHON:=python3}"
|
| |
+ +
|
| |
+ +if [ -e "$(dirname "$0")"/functions.sh ]; then
|
| |
+ + . "$(dirname "$0")"/functions.sh
|
| |
+ +else
|
| |
+ + . /usr/share/asahi-scripts/functions.sh
|
| |
+ +fi
|
| |
+ +
|
| |
+ +umount=false
|
| |
+ +
|
| |
+ +if [ -z "$ASAHIFW" ] && [ -z "$VENDORFW" ]; then
|
| |
+ + mount_sys_esp /run/.system-efi
|
| |
+ + ASAHIFW="/run/.system-efi/asahi/"
|
| |
+ + VENDORFW="/run/.system-efi/vendorfw/"
|
| |
+ + umount=true
|
| |
+ +fi
|
| |
+ +
|
| |
+ +if [ ! -e "${ASAHIFW}/all_firmware.tar.gz" ]; then
|
| |
+ + echo "No firmware tarball found, skipping extraction"
|
| |
+ + exit 0
|
| |
+ +fi
|
| |
+ +
|
| |
+ +if [ ! -d "$VENDORFW" ]; then
|
| |
+ + mkdir -p "$VENDORFW"
|
| |
+ +fi
|
| |
+ +
|
| |
+ +echo "Upgrading vendor firmware package"
|
| |
+ +"$PYTHON" -m asahi_firmware.update \
|
| |
+ + "$ASAHIFW" \
|
| |
+ + "${VENDORFW}/firmware.tar.new" \
|
| |
+ + "${VENDORFW}/manifest.txt.new"
|
| |
+ +mv -f "${VENDORFW}/manifest.txt.new" "${VENDORFW}/manifest.txt"
|
| |
+ +mv -f "${VENDORFW}/firmware.tar.new" "${VENDORFW}/firmware.tar"
|
| |
+ +echo "Firmware upgraded"
|
| |
+ +
|
| |
+ +$umount && umount /run/.system-efi
|
| |
+ +true
|
| |
Backport a couple of upstream PRs and add asahi-fwextract