From 7d63dac4259ab2b19717ff05c2b35676b1932ae5 Mon Sep 17 00:00:00 2001 From: chris1111 Date: Sat, 11 May 2024 14:41:57 -0400 Subject: [PATCH] test --- Clover_Duet.command | 225 ++++++++++++++++++++++++++++++++++++++++++++ Clover_Duet.tool | 8 ++ build_gcc13.sh | 2 +- buildme | 6 +- 4 files changed, 237 insertions(+), 4 deletions(-) create mode 100755 Clover_Duet.command create mode 100755 Clover_Duet.tool diff --git a/Clover_Duet.command b/Clover_Duet.command new file mode 100755 index 000000000..8881c8cf8 --- /dev/null +++ b/Clover_Duet.command @@ -0,0 +1,225 @@ +#!/bin/bash +# Clover-LegacyDuet: by chris1111 +# Thanks: CloverHackyColor +# Thanks: Acidanthera +apptitle="Clover-LegacyDuet" +version="1.0" +# Set Icon directory and file +iconfile="/System/Library/CoreServices/Finder.app/Contents/Resources/Finder.icns" +printf '\e[8;47;83t' +PARENTDIR=$(dirname "$0") +cd "$PARENTDIR" +echo " " +echo "🚫 Do not use this program on a disk where Clover or OpenCore is already installed!" +rm -rf ./boot* +Sleep 1 +cp -Rp ./Bootloaders/x64/{boot6,boot7} ./ +cp -Rp ./BootSectors/{boot0af,boot1f32} ./ + +# Install Clover booter on physical disk. + +#get BOOT File +if [ "$2" == "" ]; then +echo " " +echo "Choose (6 or 7) for the Booter +6 = -> Clover EFI 64-bits using SATA to access drives. +7 = -> Clover EFI 64-bit using Bios Block I/O to access drives. " +echo "Make a choice followed by Enter: " + +while [ -z "$BOOT" ]; do +read BOOT +done + +else +BOOT="$2" +fi + +export ARCHS=$BOOT + +if [ ! -f "boot${ARCHS}" ] || [ ! -f boot0af ] || [ ! -f boot1f32 ] || [ ! -f EFI/CLOVER/CLOVERX64.efi ]; then + echo "Clover is not build?" + echo "Or you probably have change directory on this package?" + exit 1 +fi + +if [ "$(uname)" = "Linux" ]; then + if [ "$EUID" -ne 0 ] + then echo "Please run this script as root" + exit + fi + if [ "$(which lsblk)" = "" ]; then + echo "lsblk tool is missing! Try installing util-linux package" + exit 1 + fi + if [ "$(which fdisk)" = "" ]; then + echo "fdisk tool is missing!" + exit 1 + fi + + rm -rf ./origbs + rm -rf ./newbs + rm -rf ./boot* + + echo "Select the disk where you want to install boot files:" + lsblk -d | tail -n+2 | cut -d" " -f1 + echo "Example: sda" + read -r DRIVE + + DRIVE="/dev/${DRIVE}" + + if ! lsblk "$DRIVE"; then + echo Disk "${DRIVE}" not found + exit 1 + fi + + echo "Choose EFI partition on selected disk:" + lsblk -f "${DRIVE}" + echo "Example: sda1" + read -r EFI_PART + + EFI_PART="/dev/${EFI_PART}" + + if ! lsblk -f "$EFI_PART" | grep -q -e FAT32 -e vfat; then + echo "No FAT32 partition to install" + exit 1 + fi + + # Write MBR + dd if=boot0af of="$DRIVE" bs=1 count=446 conv=notrunc || exit 1 + + umount "${EFI_PART}" + + dd if="${EFI_PART}" count=1 of=origbs + cp -v boot1f32 newbs + dd if=origbs of=newbs skip=3 seek=3 bs=1 count=87 conv=notrunc + dd if=/dev/random of=newbs skip=496 seek=496 bs=1 count=14 conv=notrunc + dd if=newbs of="${EFI_PART}" + + p=/tmp/$(uuidgen)/EFI + mkdir -p "${p}" || exit 1 + mount -t vfat "${EFI_PART}" "${p}" -o rw,noatime,uid="$(id -u)",gid="$(id -g)" || exit 1 + + cp -v "boot${ARCHS}" "${p}/boot" || exit 1 + echo "Install EFI -> /Volumes/EFI/EFI Wait. . ." + cp -Rp "EFI" "${p}" || exit 1 + + echo Check "${p}" boot drive to install Clover Duet + + DISK_SCHEME=$(fdisk -l "${DRIVE}" | sed -n 's/.*Disklabel type: *//p') + if [ "$DISK_SCHEME" != "gpt" ]; then + BOOT_FLAG=$(dd if="$DRIVE" bs=1 count=1 status=none skip=$((0x1BE)) | od -t x1 -A n | tr -d ' ') + if [ "$BOOT_FLAG" != "80" ]; then + fdisk "$DRIVE" < /Volumes/EFI/EFI Done!" + mv ./EFI/CLOVER/config.plist ./EFI/CLOVER/config-sample.plist + Sleep 2 + Open -R "$(diskutil info disk"${N}"s1 | sed -n 's/.*Mount Point: *//p')/boot" + exit 1 + fi + + if [ "$action" == "Personal EFI" ] ; then + echo " " + #get EFI folder + if [ "$2" == "" ]; then + echo " " + echo "Move your EFI folder here" + echo "Followed by Enter: " + + while [ -z "$EFIfolder" ]; do + read EFIfolder + done + + else + EFIfolder="$2" + fi + cp -Rp "$EFIfolder" "$(diskutil info disk${N}s1 | sed -n 's/.*Mount Point: *//p')" + echo "Install EFI -> /Volumes/EFI/EFI Done!" + Sleep 2 + Open -R "$(diskutil info disk"${N}"s1 | sed -n 's/.*Mount Point: *//p')/boot" + exit 1 + fi + done diff --git a/Clover_Duet.tool b/Clover_Duet.tool new file mode 100755 index 000000000..cc86e7636 --- /dev/null +++ b/Clover_Duet.tool @@ -0,0 +1,8 @@ +#!/bin/bash + +cd "$(dirname "$0")" || exit 1 +export DUETTOOL=Clover_Duet.command +cp -Rp $DUETTOOL ./CloverPackage/CloverV2 +./CloverPackage/CloverV2/$DUETTOOL +Sleep 1 +rm -rf ./CloverPackage/CloverV2/$DUETTOOL diff --git a/build_gcc13.sh b/build_gcc13.sh index 67a434d0f..78dc22718 100755 --- a/build_gcc13.sh +++ b/build_gcc13.sh @@ -28,7 +28,7 @@ set -u # exit with error if unbound variables # here we can change source versions of tools # export BINUTILS_VERSION=${BINUTILS_VERSION:-binutils-2.41} -export GCC_VERSION=${GCC_VERSION:-13.2.0} +export GCC_VERSION=${GCC_VERSION:-14.1.0} # Version of libraries are from ./contrib/download_prerequisites in gcc source directory export GMP_VERSION=${GMP_VERSION:-gmp-6.3.0} #6.2.1 diff --git a/buildme b/buildme index f5ad307b0..878063eef 100755 --- a/buildme +++ b/buildme @@ -122,9 +122,9 @@ checkTools() { if [[ "$SYSNAME" == Darwin ]]; then checkXCODE exportPaths - local GCC131_BIN="$PREFIX/cross/bin/x86_64-clover-linux-gnu-gcc" - if [[ $MYTOOLCHAIN == GCC* ]] && [[ ! -x "${GCC131_BIN}" ]]; then - if [[ $MYTOOLCHAIN == GCC131 ]]; then + local GCC141_BIN="$PREFIX/cross/bin/x86_64-clover-linux-gnu-gcc" + if [[ $MYTOOLCHAIN == GCC* ]] && [[ ! -x "${GCC141_BIN}" ]]; then + if [[ $MYTOOLCHAIN == GCC141 ]]; then cd "${CLOVERROOT}" ./build_gcc13.sh else