From fba17b7da4eac2b5da077b08876de8a02850ffb9 Mon Sep 17 00:00:00 2001 From: "Joel Gaff, Jr" Date: Thu, 25 Sep 2025 21:53:08 -0700 Subject: [PATCH 1/2] Add more Mac models to SPI keyboard support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Added: MacBook 8,1 MacBook 9,1 MacBook 8,1 uses slightly different moduels from what I can tell, so I’ve added a case statment. Please tweak as needed. --- install/config/hardware/fix-apple-spi-keyboard.sh | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/install/config/hardware/fix-apple-spi-keyboard.sh b/install/config/hardware/fix-apple-spi-keyboard.sh index 14756789..46d1fed3 100644 --- a/install/config/hardware/fix-apple-spi-keyboard.sh +++ b/install/config/hardware/fix-apple-spi-keyboard.sh @@ -1,7 +1,14 @@ # Detect MacBook models that need SPI keyboard modules -if [[ "$(cat /sys/class/dmi/id/product_name 2>/dev/null)" =~ MacBook1[02],1|MacBookPro13,[123]|MacBookPro14,[123] ]]; then +if [[ "$(cat /sys/class/dmi/id/product_name 2>/dev/null)" =~ MacBook[89],1|MacBook1[02],1|MacBookPro13,[123]|MacBookPro14,[123] ]]; then echo "Detected MacBook with SPI keyboard" sudo pacman -S --noconfirm --needed macbook12-spi-driver-dkms - echo "MODULES=(applespi intel_lpss_pci spi_pxa2xx_platform)" | sudo tee /etc/mkinitcpio.conf.d/macbook_spi_modules.conf >/dev/null + case "$(cat /sys/class/dmi/id/product_name 2>/dev/null)" in + MacBook8,1) + echo "MODULES=(applespi spi_pxa2xx_platform spi_pxa2xx_pci)" | sudo tee /etc/mkinitcpio.conf.d/macbook_spi_modules.conf >/dev/null + ;; + MacBook9,1|MacBook1[02],1|MacBookPro13,1|MacBookPro13,2|MacBookPro13,3|MacBookPro14,1|MacBookPro14,2|MacBookPro14,3) + echo "MODULES=(applespi intel_lpss_pci spi_pxa2xx_platform)" | sudo tee /etc/mkinitcpio.conf.d/macbook_spi_modules.conf >/dev/null + ;; + esac fi From cd39bbf692d047e575a1be1e3bbe1131a5f6edd3 Mon Sep 17 00:00:00 2001 From: Ryan Hughes Date: Sun, 28 Sep 2025 14:52:24 -0400 Subject: [PATCH 2/2] Fix conflict + rearrange --- .../config/hardware/fix-apple-spi-keyboard.sh | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/install/config/hardware/fix-apple-spi-keyboard.sh b/install/config/hardware/fix-apple-spi-keyboard.sh index 46d1fed3..19fd88f6 100644 --- a/install/config/hardware/fix-apple-spi-keyboard.sh +++ b/install/config/hardware/fix-apple-spi-keyboard.sh @@ -1,14 +1,12 @@ # Detect MacBook models that need SPI keyboard modules -if [[ "$(cat /sys/class/dmi/id/product_name 2>/dev/null)" =~ MacBook[89],1|MacBook1[02],1|MacBookPro13,[123]|MacBookPro14,[123] ]]; then +product_name="$(cat /sys/class/dmi/id/product_name 2>/dev/null)" +if [[ "$product_name" =~ MacBook[89],1|MacBook1[02],1|MacBookPro13,[123]|MacBookPro14,[123] ]]; then echo "Detected MacBook with SPI keyboard" sudo pacman -S --noconfirm --needed macbook12-spi-driver-dkms - case "$(cat /sys/class/dmi/id/product_name 2>/dev/null)" in - MacBook8,1) - echo "MODULES=(applespi spi_pxa2xx_platform spi_pxa2xx_pci)" | sudo tee /etc/mkinitcpio.conf.d/macbook_spi_modules.conf >/dev/null - ;; - MacBook9,1|MacBook1[02],1|MacBookPro13,1|MacBookPro13,2|MacBookPro13,3|MacBookPro14,1|MacBookPro14,2|MacBookPro14,3) - echo "MODULES=(applespi intel_lpss_pci spi_pxa2xx_platform)" | sudo tee /etc/mkinitcpio.conf.d/macbook_spi_modules.conf >/dev/null - ;; - esac + if [[ "$product_name" == "MacBook8,1" ]]; then + echo "MODULES=(applespi spi_pxa2xx_platform spi_pxa2xx_pci)" | sudo tee /etc/mkinitcpio.conf.d/macbook_spi_modules.conf >/dev/null + else + echo "MODULES=(applespi intel_lpss_pci spi_pxa2xx_platform)" | sudo tee /etc/mkinitcpio.conf.d/macbook_spi_modules.conf >/dev/null + fi fi