#!/bin/sh ## live-build(7) - System Build Scripts ## Copyright (C) 2016-2020 The Debian Live team ## Copyright (C) 2006-2015 Daniel Baumann ## ## This program comes with ABSOLUTELY NO WARRANTY; for details see COPYING. ## This is free software, and you are welcome to redistribute it ## under certain conditions; see COPYING for details. set -e # Including common functions [ -e "${LIVE_BUILD}/scripts/build.sh" ] && . "${LIVE_BUILD}/scripts/build.sh" || . /usr/lib/live/build.sh # Setting static variables DESCRIPTION="Installs a memtest into binary" USAGE="${PROGRAM} [--force]" # Processing arguments and configuration files Init_config_data "${@}" if [ "${LB_MEMTEST}" = "none" ] || [ "${LB_CHROOT_FILESYSTEM}" = "none" ] then exit 0 fi Echo_message "Begin installing memtest..." # Requiring stage file Require_stagefiles config bootstrap # Checking stage file Check_stagefile # Acquire lock file Acquire_lockfile if [ "${LB_ARCHITECTURE}" != "amd64" ] && [ "${LB_ARCHITECTURE}" != "i386" ] then Echo_warning "Skipping binary_memtest, foreign architecture." exit 0 fi _PREFIX="" if [ "${LB_BUILD_WITH_CHROOT}" = "true" ] then _PREFIX="chroot" if [ -f chroot/usr/sbin/grub ] && [ ! -f chroot/boot/grub/menu.lst ] then GRUB="yes" mkdir -p chroot/boot/grub touch chroot/boot/grub/menu.lst fi fi # Checking depends case "${LB_MEMTEST}" in memtest86) Check_package chroot /boot/memtest86.bin memtest86 ;; memtest86+) Check_package chroot /usr/share/doc/memtest86+/copyright memtest86+ ;; esac # Restoring cache Restore_package_cache binary # Installing depends Install_packages # Setting destination directory case "${LB_INITRAMFS}" in live-boot|dracut-live) DESTDIR="binary/live" ;; *) DESTDIR="binary/boot" ;; esac # Creating directory mkdir -p "${DESTDIR}" # Installing memtest case "${LB_MEMTEST}" in memtest86) cp -a "${_PREFIX}/boot/memtest86.bin" "${DESTDIR}/memtest16" ;; memtest86+) case "${LB_ARCHITECTURE}" in amd64) _MEMTEST_ARCH=x64 ;; i386) _MEMTEST_ARCH=ia32 ;; esac # memtest86+ << 6: only one binary if [ -e "${_PREFIX}/boot/memtest86+.bin" ] then cp -a "${_PREFIX}/boot/memtest86+.bin" "${DESTDIR}/memtest16" fi # memtest86+ >= 6: 4 binaries: (32-bit, 64-bit) x (.bin, .efi) if [ -e "${_PREFIX}/boot/memtest86+${_MEMTEST_ARCH}.bin" ] then cp -a "${_PREFIX}/boot/memtest86+${_MEMTEST_ARCH}.bin" "${DESTDIR}/memtest.bin" fi if [ -e "${_PREFIX}/boot/memtest86+${_MEMTEST_ARCH}.efi" ] then cp -a "${_PREFIX}/boot/memtest86+${_MEMTEST_ARCH}.efi" "${DESTDIR}/memtest.efi" fi # memtest86+ >= 8: 2 binaries: (32-bit, 64-bit) if [ -e "${_PREFIX}/boot/mt86+${_MEMTEST_ARCH}" ] then cp -a "${_PREFIX}/boot/mt86+${_MEMTEST_ARCH}" "${DESTDIR}/memtest" fi ;; esac # Saving cache Save_package_cache binary # Removing depends Remove_packages if [ "${GRUB}" ] then rm -rf chroot/boot/grub fi # Creating stage file Create_stagefile