summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Rees <maxcrees@me.com>2019-09-09 00:25:03 -0500
committerMax Rees <maxcrees@me.com>2019-09-09 00:25:03 -0500
commitcf356b050604815c7d9df80aa2897d0b39ec751b (patch)
treeea9b72bdb532789ef1854d83c66b1ad7049c9ac0
parent3c2ccced9f54ab390c55c89bc3a70923de7f195c (diff)
downloadpackages-cf356b050604815c7d9df80aa2897d0b39ec751b.tar.gz
packages-cf356b050604815c7d9df80aa2897d0b39ec751b.tar.bz2
packages-cf356b050604815c7d9df80aa2897d0b39ec751b.tar.xz
packages-cf356b050604815c7d9df80aa2897d0b39ec751b.zip
user/grub: add quirks system and radeon quirk (#49)
-rw-r--r--user/grub/APKBUILD11
-rw-r--r--user/grub/default-grub5
-rw-r--r--user/grub/quirk-01_radeon_agpmode28
3 files changed, 42 insertions, 2 deletions
diff --git a/user/grub/APKBUILD b/user/grub/APKBUILD
index 24e998e53..1c1532278 100644
--- a/user/grub/APKBUILD
+++ b/user/grub/APKBUILD
@@ -40,6 +40,7 @@ source="https://ftp.gnu.org/gnu/grub/grub-$pkgver.tar.xz
x86_64_asm.patch
default-grub
update-grub
+ quirk-01_radeon_agpmode
"
prepare() {
@@ -128,6 +129,11 @@ package() {
install -D -m755 "$srcdir"/update-grub "$pkgdir"/usr/sbin
# remove grub-install warning of missing directory
mkdir -p "$pkgdir"/usr/share/locale
+
+ for i in "$srcdir"/quirk-*; do
+ install -Dm755 "$i" \
+ "$pkgdir"/etc/grub-quirks.d/"${i##"$srcdir"/quirk-}"
+ done
}
bios() {
@@ -170,5 +176,6 @@ f2a7d9ab6c445f4e402e790db56378cecd6631b5c367451aa6ce5c01cd95b95c83c3dd24d6d4b857
4e7394e0fff6772c89683039ccf81099ebbfe4f498e6df408977a1488fd59389b6e19afdbf0860ec271e2b2aea0df7216243dcc8235d1ca3af0e7f4d0a9d60a4 grub-xen-host_grub.cfg
088455205f2f397d60e43eab19ed73994880ea1f442661f7975846cceaf2b112d92fd1341119d7dbfad3af2174dfd4d4721f31dead1ac35f4a3cb7c0d92f8a04 the-arch-everyone-uses-and-nobody-loves.patch
8752b5e689ec3b7e1f438c7207adc517d7acb4f7d15fda2907bc9177883a686f23994c66641bfc0c7620365415972b5d8b74f511c13dd234f5f3461dda4bb445 x86_64_asm.patch
-af771faa02dcc56a0842c6b5244030d0778c80c365c6cafa7ed255346fb2d67e7e95cbb7bcdabe75c96d73ee8a1c9dd6f30e2feac708e621a64fee858b09db51 default-grub
-f08e29cb8bc344d62e37ffe003a74c1316c19aa329a4c2af94c99bfc90cb2968a37811244a7617cf1f1c393119f6398200d094b7758c19583cca390630c106ec update-grub"
+1e6ae4a3884829864dbd789d3c3a0d43a5aa5f279c3ebb25f71775686e9236bc1c6295e5064ad32b384635987ee0814df95e9ca33bc57bc8e0aeb47bec34270e default-grub
+f08e29cb8bc344d62e37ffe003a74c1316c19aa329a4c2af94c99bfc90cb2968a37811244a7617cf1f1c393119f6398200d094b7758c19583cca390630c106ec update-grub
+78b7ec141a364994c7de181e47fedca820add9960c56c7adf4c14ee11d5249a0887fd788ecd5d24b9bdd102b7c40395181e2f7c3fe5ab795dd7c0057ba1115c5 quirk-01_radeon_agpmode"
diff --git a/user/grub/default-grub b/user/grub/default-grub
index e97e38395..3fb754c7e 100644
--- a/user/grub/default-grub
+++ b/user/grub/default-grub
@@ -10,3 +10,8 @@ GRUB_CMDLINE_LINUX_DEFAULT="ro"
# Uncomment the following line if you do *not* want /boot/grub/grub.cfg to be
# automatically regenerated when easy-kernel is upgraded.
#ADELIE_MANUAL_CONFIG=1
+
+for i in /etc/grub-quirks.d/[0-9][0-9]*; do
+ [ -x "$i" ] || continue
+ . "$i"
+done
diff --git a/user/grub/quirk-01_radeon_agpmode b/user/grub/quirk-01_radeon_agpmode
new file mode 100644
index 000000000..879f1619e
--- /dev/null
+++ b/user/grub/quirk-01_radeon_agpmode
@@ -0,0 +1,28 @@
+#!/bin/sh
+# vi: noet:
+# Horst Burkhardt <horst@adelielinux.org> 2018
+# Max Rees <maxcrees@me.com> 2019
+#
+# AGP acceleration in the Radeon KMS driver has been broken on Apple PPC
+# since the 2.6 series, and most developers are in agreement that since
+# UniNorth is underdocumented, it probably won't ever be fixed. Disable
+# it on all Apple machines except ones where it is known not to apply.
+#
+# https://bts.adelielinux.org/show_bug.cgi?id=49
+set -e
+
+case "$(uname -m)" in
+ppc|ppc64)
+ if grep -q 'MacRISC[23]' /proc/cpuinfo; then
+ case "$(awk '$1 == "machine" { print $3 }' /proc/cpuinfo)" in
+ PowerBook1,1) ;;
+ PowerMac1,1) ;;
+ PowerMac1,2) ;;
+ PowerMac11,2) ;;
+ PowerMac12,1) ;;
+ RackMac3,1) ;;
+ iMac,1) ;;
+ *) export GRUB_CMDLINE_LINUX="radeon.agpmode=-1 $GRUB_CMDLINE_LINUX";;
+ esac
+ fi;;
+esac