summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO6
-rw-r--r--PKGBUILD4
-rw-r--r--memtest86-efi112
3 files changed, 76 insertions, 46 deletions
diff --git a/.SRCINFO b/.SRCINFO
index ddb5a28d2fb2..cf9f42b1e746 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,9 +1,9 @@
# Generated by mksrcinfo v8
-# Sun Jan 31 13:33:51 UTC 2016
+# Thu Apr 7 18:15:01 UTC 2016
pkgbase = memtest86-efi
pkgdesc = A free, thorough, stand alone memory test as an EFI application
pkgver = 6.3.0
- pkgrel = 2
+ pkgrel = 3
url = http://www.memtest86.com
install = memtest86-efi.install
arch = i686
@@ -18,7 +18,7 @@ pkgbase = memtest86-efi
source = memtest86-efi
source = memtest86-efi.conf
md5sums = 87c0fb1338183b5eaf11096d1d2f0475
- md5sums = e61e89b3d13ffa19ab38967876544be9
+ md5sums = 71b77e2737370c5ce12c7b40ac12cbeb
md5sums = 6c096df3f55baf3e27c3bd605a418aa2
pkgname = memtest86-efi
diff --git a/PKGBUILD b/PKGBUILD
index 54bf44b6e6be..74935706564a 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -3,7 +3,7 @@
_pkgbasename=memtest86
pkgname=$_pkgbasename-efi
pkgver=6.3.0
-pkgrel=2
+pkgrel=3
pkgdesc="A free, thorough, stand alone memory test as an EFI application"
arch=('i686' 'x86_64')
url="http://www.memtest86.com"
@@ -17,7 +17,7 @@ source=("$_pkgbasename-$pkgver.iso.tar.gz::http://www.memtest86.com/downloads/$_
"memtest86-efi"
"memtest86-efi.conf")
md5sums=('87c0fb1338183b5eaf11096d1d2f0475'
- 'e61e89b3d13ffa19ab38967876544be9'
+ '71b77e2737370c5ce12c7b40ac12cbeb'
'6c096df3f55baf3e27c3bd605a418aa2')
prepare() {
diff --git a/memtest86-efi b/memtest86-efi
index f520b2a35e0a..3ba9889e55ab 100644
--- a/memtest86-efi
+++ b/memtest86-efi
@@ -1,14 +1,14 @@
-#!/usr/bin/bash
+#!/bin/bash
export LC_ALL=C
CE="\033[31m" # Color red
CB="\033[1m" # Color bold
CR="\033[0m" # Color reset
-CONFFILE=/etc/memtest86-efi.conf
PRGNAME=$(basename $0)
-source $CONFFILE
-[[ "$(uname -m)" == "i686" ]] && ARCH=ia32
-[[ "$(uname -m)" == "x86_64" ]] && ARCH=x64
+CONFFILE="/etc/memtest86-efi.conf"
+source "$CONFFILE"
+[[ "$(uname -m)" == "i686" ]] && ARCH="ia32"
+[[ "$(uname -m)" == "x86_64" ]] && ARCH="x64"
warn() {
echo -e "${CB}${CE}This script is unofficial, written by an AUR (Arch User Repository) user. Use it at YOUR OWN RISK.${CR}"
@@ -51,33 +51,36 @@ install() {
echo "Select $PRGNAME action to perform:"
echo -e "${CB}1${CR}: Copy shellx64.efi file on ESP's root (bit safe)"
echo -e "${CB}2${CR}: Add a new EFI boot entry (more safe)"
- echo -e "${CB}3${CR}: Add MemTest86 entry in GRUB2 menu"
- echo -e "${CB}4${CR}: Cancel"
+ echo -e "${CB}3${CR}: Add a boot entry for GRUB2 menu"
+ echo -e "${CB}4${CR}: Add a boot entry for systemd-boot menu"
+ echo -e "${CB}5${CR}: Cancel"
choice=0
- while [[ $choice < 1 ]] || [[ $choice > 4 ]]; do
+ while [[ $choice < 1 ]] || [[ $choice > 5 ]]; do
read choice
echo
done
- if [[ $choice == 1 ]]; then
- # Install MemTest86 in $esp
- echo -e "MemTest86 will be installed in ${CB}$esp${CR}."
+ case $choice in
+ 1) # Install MemTest86 in $esp/
+ echo -e "MemTest86 will be installed in ${CB}$esp/${CR}."
[[ -f "$esp/shell$ARCH.efi" ]] && mv -v "$esp/shell$ARCH.efi" "$esp/shell$ARCH.efi.bak" # Backup if exist
cp -v "$MEMTEST86_PATH/"* "$esp/" # Move files in ESP root
mv -v "$esp/boot$ARCH.efi" "$esp/shell$ARCH.efi" # Rename .efi file
- elif [[ $choice == 2 ]]; then
- # Install MemTest86 in $esp/EFI/memtest86 & Add a boot entry
+ ;;
+
+ 2) # Install MemTest86 in $esp/EFI/memtest86/ & add an EFI boot entry
checkcommand efibootmgr
- echo -e "MemTest86 will be installed in ${CB}$esp/EFI/memtest86${CR}."
+ echo -e "MemTest86 will be installed in ${CB}$esp/EFI/memtest86/${CR}."
mkdir -pv "$esp/EFI/memtest86"
cp -v "$MEMTEST86_PATH/"* "$esp/EFI/memtest86/" # Move files in memtest ESP directory
mv -v "$esp/EFI/memtest86/boot$ARCH.efi" "$esp/EFI/memtest86/memtest$ARCH.efi" # Rename .efi file
echo -e "\nAdd a new EFI boot entry..."
efibootmgr -c -d ${partition:0:8} -p ${partition:8} -w -L "MemTest86" -l "\EFI\memtest86\memtest$ARCH.efi" # Manage efi entry
- elif [[ $choice == 3 ]]; then
- # Install MemTest86 in $esp/EFI/memtest86 & Add a file for GRUB2
+ ;;
+
+ 3) # Install MemTest86 in $esp/EFI/memtest86/ & add a file for GRUB2
checkcommand grub-mkconfig
- echo -e "MemTest86 will be installed in ${CB}$esp/EFI/memtest86${CR}."
+ echo -e "MemTest86 will be installed in ${CB}$esp/EFI/memtest86/${CR}."
if [[ ! -d "/etc/grub.d/" ]]; then
echo -e "${CE}GRUB2 seems not installed on your system. Aborted.${CR}" > /dev/stderr
exit 2
@@ -86,21 +89,31 @@ install() {
cp -v "$MEMTEST86_PATH/"* "$esp/EFI/memtest86/" # Move files in memtest ESP directory
mv -v "$esp/EFI/memtest86/boot$ARCH.efi" "$esp/EFI/memtest86/memtest$ARCH.efi" # Rename .efi file
echo -e "\nAdd a new configuration file for GRUB..."
- echo -e "cat <<-EOF
- if [ \"x\\\${grub_platform}\" == \"xefi\" ]; then
- menuentry \"Memtest86\" {
- search --set=root --no-floppy --fs-uuid $(blkid $partition -s UUID -o value)
- chainloader /EFI/memtest86/memtest$ARCH.efi
- }
- fi
- EOF" > "/etc/grub.d/86_memtest"
+ echo -e "if [ \"x\${grub_platform}\" = xefi ]; then\n" \
+ "menuentry \"Memtest86\" {\n" \
+ "\tsearch --set=root --no-floppy --fs-uuid $(blkid $partition -s UUID -o value)\n" \
+ "\tchainloader /EFI/memtest86/memtest$ARCH.efi\n" \
+ "}\n" \
+ "fi" > "/etc/grub.d/86_memtest"
chmod +x "/etc/grub.d/86_memtest"
grub-mkconfig -o "/boot/grub/grub.cfg"
- elif [[ $choice == 4 ]]; then
- # Do nothing and quit
+ ;;
+
+ 4) # Install MemTest86 in $esp/EFI/memtest86/ & add a file for systemd-boot
+ echo -e "MemTest86 will be installed in ${CB}$esp/EFI/memtest86/${CR}."
+ mkdir -pv "$esp/EFI/memtest86" "$esp/loader/entries"
+ cp -v "$MEMTEST86_PATH/"* "$esp/EFI/memtest86/" # Move files in memtest ESP directory
+ mv -v "$esp/EFI/memtest86/boot$ARCH.efi" "$esp/EFI/memtest86/memtest$ARCH.efi" # Rename .efi file
+ echo -e "\nAdd a new configuration file for systemd-boot..."
+ echo -e "title MemTest86\n" \
+ "efi /EFI/memtest86/memtest86$ARCH.efi" > "$esp/loader/entries/memtest86-efi.conf"
+ ;;
+
+ *) # Do nothing and quit
echo -e "Canceled. MemTest86 will not be installed."
exit 0
- fi
+ ;;
+ esac
echo "Writting configuration..."
sed -i "s|@PARTITION@|$partition|g" "$CONFFILE"
@@ -117,15 +130,19 @@ update() {
exit 1
fi
- if [[ $choice == 1 ]]; then
- echo -e "MemTest86 will be updated in ${CB}$esp${CR}."
+ case $choice in
+ 1) # Update files in $esp/
+ echo -e "MemTest86 will be updated in ${CB}$esp/${CR}."
cp -fv "$MEMTEST86_PATH/"* "$esp/"
mv -fv "$esp/boot$ARCH.efi" "$esp/shell$ARCH.efi"
- elif [[ $choice == 2 ]] || [[ $choice == 3 ]]; then
- echo -e "MemTest86 will be updated in ${CB}$esp/EFI/memtest86${CR}."
+ ;;
+
+ 2|3|4) # Update files in $esp/EFI/memtest86/
+ echo -e "MemTest86 will be updated in ${CB}$esp/EFI/memtest86/${CR}."
cp -fv "$MEMTEST86_PATH/"* "$esp/EFI/memtest86/"
mv -fv "$esp/EFI/memtest86/boot$ARCH.efi" "$esp/EFI/memtest86/memtest$ARCH.efi"
- fi
+ ;;
+ esac
echo -e "\nMemTest86 has been updated in ESP."
}
@@ -136,24 +153,37 @@ remove() {
exit 1
fi
- if [[ $choice == 1 ]]; then
- echo -e "MemTest86 will be removed from ${CB}$esp${CR}."
+ case $choice in
+ 1) # Remove files in $esp/
+ echo -e "MemTest86 will be removed from ${CB}$esp/${CR}."
rm -v "$esp/mt86.png" "$esp/shell$ARCH.efi"
[[ -f "$esp/shell$ARCH.efi.bak" ]] && mv -v "$esp/shell$ARCH.efi.bak" "$esp/shell$ARCH.efi"
- elif [[ $choice == 2 ]]; then
+ ;;
+
+ 2) # Remove files in $esp/EFI/memtest86/ & delete EFI boot entry
checkcommand efibootmgr
- echo -e "MemTest86 will be removed from ${CB}$esp/EFI/memtest86${CR}."
+ echo -e "MemTest86 will be removed from ${CB}$esp/EFI/memtest86/${CR}."
rm -rfv "$esp/EFI/memtest86/"
echo -e "\nRemove MemTest86 EFI boot entry..."
efibootmgr -b $(efibootmgr | grep MemTest86 | cut -c 5-8) -B
- elif [[ $choice == 3 ]]; then
+ ;;
+
+ 3) # Remove files in $esp/EFI/memtest86/ & delete file for GRUB2
checkcommand grub-mkconfig
- echo -e "MemTest86 will be removed from ${CB}$esp/EFI/memtest86${CR}."
+ echo -e "MemTest86 will be removed from ${CB}$esp/EFI/memtest86/${CR}."
rm -rfv "$esp/EFI/memtest86/"
echo -e "\nRemove configuration file for GRUB..."
rm -v "/etc/grub.d/86_memtest"
grub-mkconfig -o "/boot/grub/grub.cfg"
- fi
+ ;;
+
+ 4) # Remove files in $esp/EFI/memtest86/ & delete file for systemd-boot
+ echo -e "MemTest86 will be removed from ${CB}$esp/EFI/memtest86/${CR}."
+ rm -rfv "$esp/EFI/memtest86/"
+ echo -e "\nRemove configuration file for systemd-boot..."
+ rm -v "$esp/loader/entries/memtest86-efi.conf"
+ ;;
+ esac
echo "Writting configuration..."
sed -i "s|$partition|@PARTITION@|g" "$CONFFILE"
@@ -170,7 +200,7 @@ help() {
echo -e "\t-i, --install\t Install MemTest86 in ESP"
echo -e "\t-u, --update\t Update an existing installation of MemTest86"
echo -e "\t-r, --remove\t Remove MemTest86 from ESP"
- echo -e "\t-s, --status\t Return status (1 if installed, 0 else)"
+ echo -e "\t-s, --status\t Return status (1 if installed, else 0)"
echo -e "\t-h, --help\t Print this help and exit"
echo -e "\t-a, --about\t Print informations about $PRGNAME and exit"
}