Add scripts

This commit is contained in:
2Shirt 2018-05-11 11:59:17 -06:00 committed by GitHub
parent 36b0ebdeab
commit 2e4ef04831
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 93 additions and 0 deletions

43
build-iso Normal file
View file

@ -0,0 +1,43 @@
#!/bin/bash
#
# Prep build env
rsync -ahvPS /usr/share/archiso/configs/releng/ temp/
echo 'bc' > temp/packages.both
rm temp/airootfs/etc/systemd/scripts/choose-mirror
rm temp/airootfs/etc/systemd/system/choose-mirror.service
rm temp/airootfs/etc/systemd/system/etc-pacman.d-gnupg.mount
rm temp/airootfs/etc/systemd/system/pacman-init.service
rm temp/airootfs/etc/udev/rules.d/81-dhcpcd.rules
rmdir --ignore-fail-on-non-empty temp/airootfs/etc/udev/rules.d
rmdir --ignore-fail-on-non-empty temp/airootfs/etc/udev
cp mac-dgpu-disable-tool temp/airootfs/root/
printf "\x07\x00\x00\x00\x01\x00\x00\x00" \
> temp/airootfs/root/gpu-power-prefs-fa4ce28d-b62f-4c99-9cc3-6815686e30f9
chown -R root:root temp
# Adjust boot menus
sed -i 's/timeout 3/timeout 1/' temp/efiboot/loader/loader.conf
sed -i 's/Arch Linux archiso x86_64/Mac dGPU Disable Tool/' temp/efiboot/loader/entries/*
sed -i '/BACKGROUND/d' temp/syslinux/*
echo 'PROMPT 1' >> temp/syslinux/archiso_head.cfg
echo 'TIMEOUT 1' >> temp/syslinux/archiso_head.cfg
echo 'DEFAULT arch64' >> temp/syslinux/archiso_head.cfg
sed -i -r 's/Arch Linux( \(x86_64\)|)( live medium|)/Mac dGPU Disable Tool/' temp/syslinux/*
sed -i '/allows/d' temp/syslinux/*
# Add nomodeset boot option
sed -i -r 's/^(options.*)$/\1 nomodeset/' temp/efiboot/loader/entries/archiso*
sed -i -r 's/^(APPEND arch.*)$/\1 nomodeset/' temp/syslinux/*cfg
# Modify live env
echo '' >> temp/airootfs/etc/motd
sed -i '/mirror/d' temp/airootfs/root/customize_airootfs.sh
sed -i '/usermod/d' temp/airootfs/root/customize_airootfs.sh
sed -i '/ssh/d' temp/airootfs/root/customize_airootfs.sh
echo 'echo "~/mac-dgpu-disable-tool" >> /root/.bashrc' \
>> temp/airootfs/root/customize_airootfs.sh
temp/build.sh -N dgpu -L DGPU -v

50
mac-dgpu-disable-tool Normal file
View file

@ -0,0 +1,50 @@
#!/bin/bash
#
SOURCE=/root/gpu-power-prefs-fa4ce28d-b62f-4c99-9cc3-6815686e30f9
DEST=/sys/firmware/efi/efivars/gpu-power-prefs-fa4ce28d-b62f-4c99-9cc3-6815686e30f9
needs_nvram_reset="no"
# Colors
CLEAR='\033[0m'
RED='\033[31m'
GREEN='\033[32m'
YELLOW='\033[33m'
ORANGE='\033[31;1m'
BLUE='\033[34m'
echo '## Mac dGPU Disable Tool ##'
echo ''
for f in /sys/firmware/efi/efivars/gfx*; do
if [[ -e "$f" ]]; then
echo -e "${YELLOE}Detected:${CLEAR} $f"
needs_nvram_reset="yes"
fi
done
for f in /sys/firmware/efi/efivars/gpu*; do
if [[ -e "$f" ]]; then
echo -e "${YELLOE}Detected:${CLEAR} $f"
needs_nvram_reset="yes"
fi
done
echo ""
if [[ ! -e "/sys/firmware/efi/efivars" ]]; then
echo -e "${RED}ERROR:${CLEAR} EFIVARS not found"
elif cmp "$SOURCE" "$DEST" >/dev/null 2>&1; then
echo -e "${YELLOW}Discrete GPU already disabled${CLEAR}"
elif [[ "$needs_nvram_reset" == "yes" ]]; then
echo -e "${RED}ERROR:${CLEAR} Detected the above EFIVARS"
echo -e "Please reboot and reset the NVRAM"
else
cp "$SOURCE" "$DEST"
chattr -i "$DEST"
umount /sys/firmware/efi/efivars
sync
echo -e "${GREEN}Discrete GPU successfully disabled${CLEAR}"
fi
echo ""
read -p "Press Enter to poweroff the system... " -r unusedvar
poweroff