diff --git a/files/initrd/opt/arc/arc-functions.sh b/files/initrd/opt/arc/arc-functions.sh index a1b8eae7..312f052c 100755 --- a/files/initrd/opt/arc/arc-functions.sh +++ b/files/initrd/opt/arc/arc-functions.sh @@ -2376,12 +2376,14 @@ function genHardwareID() { if echo "${USERID}" | grep -vq "Hardware ID"; then dialog --backtitle "$(backtitle)" --title "HardwareID" \ --msgbox "HardwareID: ${HWID}\nYour HardwareID is registered to UserID: ${USERID}!" 6 70 + writeConfigKey "arc.hardwareid" "${HWID}" "${USER_CONFIG_FILE}" writeConfigKey "arc.userid" "${USERID}" "${USER_CONFIG_FILE}" break else dialog --backtitle "$(backtitle)" --title "HardwareID" \ --yes-label "Retry" --no-label "Cancel" --yesno "HardwareID: ${HWID}\nRegister your HardwareID on\nhttps://arc.auxxxilium.tech (Discord Account needed).\nPress Retry after you registered it." 8 60 - [ $? -ne 0 ] && USERID="" && break + [ $? -ne 0 ] && break + writeConfigKey "arc.hardwareid" "" "${USER_CONFIG_FILE}" writeConfigKey "arc.userid" "" "${USER_CONFIG_FILE}" fi done @@ -2396,15 +2398,18 @@ function checkHardwareID() { [ ! -f "${S_FILE}.bak" ] && cp -f "${S_FILE}" "${S_FILE}.bak" 2>/dev/null || true if echo "${USERID}" | grep -vq "Hardware ID"; then if curl -skL -m 10 "https://arc.auxxxilium.tech?hwid=${HWID}&userid=${USERID}" -o "${S_FILE}" 2>/dev/null; then + writeConfigKey "arc.hardwareid" "${HWID}" "${USER_CONFIG_FILE}" writeConfigKey "arc.userid" "${USERID}" "${USER_CONFIG_FILE}" else + writeConfigKey "arc.hardwareid" "" "${USER_CONFIG_FILE}" writeConfigKey "arc.userid" "" "${USER_CONFIG_FILE}" - mv -f "${S_FILE}.bak" "${S_FILE}" 2>/dev/null + [ -f "${S_FILE}.bak" ] && mv -f "${S_FILE}.bak" "${S_FILE}" 2>/dev/null fi else USERID="" + writeConfigKey "arc.hardwareid" "" "${USER_CONFIG_FILE}" writeConfigKey "arc.userid" "" "${USER_CONFIG_FILE}" - mv -f "${S_FILE}.bak" "${S_FILE}" 2>/dev/null + [ -f "${S_FILE}.bak" ] && mv -f "${S_FILE}.bak" "${S_FILE}" 2>/dev/null fi return } diff --git a/files/initrd/opt/arc/arc.sh b/files/initrd/opt/arc/arc.sh index e7657f3b..0c40993c 100755 --- a/files/initrd/opt/arc/arc.sh +++ b/files/initrd/opt/arc/arc.sh @@ -88,7 +88,7 @@ function backtitlep() { # Model Selection function arcModel() { STEP="model" - checkHardwareID + [ "${ARCOFFLINE}" != "true" ] && checkHardwareID || true dialog --backtitle "$(backtitlep)" --title "Model" \ --infobox "Reading Models..." 3 25 ARCCONF="$(readConfigKey "${MODEL:-SA6400}.serial" "${S_FILE}")" diff --git a/files/initrd/opt/arc/boot.sh b/files/initrd/opt/arc/boot.sh index f36bd3c5..78c88fff 100755 --- a/files/initrd/opt/arc/boot.sh +++ b/files/initrd/opt/arc/boot.sh @@ -102,6 +102,20 @@ EMMCBOOT="$(readConfigKey "emmcboot" "${USER_CONFIG_FILE}")" MODBLACKLIST="$(readConfigKey "modblacklist" "${USER_CONFIG_FILE}")" ARCPATCH="$(readConfigKey "arc.patch" "${USER_CONFIG_FILE}")" +# HardwareID Check +if [ "${ARCPATCH}" = "true" ]; then + HARDWAREID="$(readConfigKey "arc.hardwareid" "${USER_CONFIG_FILE}")" + HWID="$(genHWID)" + if [ "${HARDWAREID}" != "${HWID}" ]; then + echo "\033[1;31m*** HardwareID does not match! - Loader can't boot to DSM! You need to reconfigure your Loader - Rebooting to Config Mode! ***\033[0m" + writeConfigKey "arc.patch" "false" "${USER_CONFIG_FILE}" + writeConfigKey "arc.hardwareid" "" "${USER_CONFIG_FILE}" + writeConfigKey "arc.userid" "" "${USER_CONFIG_FILE}" + sleep 5 + rebootTo "config" + fi +fi + declare -A CMDLINE # Automated Cmdline @@ -165,7 +179,8 @@ CMDLINE['panic']="${KERNELPANIC:-0}" CMDLINE['pcie_aspm']="off" CMDLINE['modprobe.blacklist']="${MODBLACKLIST}" [ $(cat /proc/cpuinfo | grep Intel | wc -l) -gt 0 ] && CMDLINE["intel_pstate"]="passive" -# CMDLINE['nointremap']="" # no need +[ $(cat /proc/cpuinfo | grep AMD | wc -l) -gt 0 ] && CMDLINE["amd_pstate"]="passive" +CMDLINE['intremap']="no_x2apic_optout" # CMDLINE['split_lock_detect']="off" # no need # CMDLINE['nomodeset']="" if echo "apollolake geminilake purley" | grep -wq "${PLATFORM}"; then diff --git a/files/initrd/opt/arc/init.sh b/files/initrd/opt/arc/init.sh index 694d5f8c..40fbf5eb 100755 --- a/files/initrd/opt/arc/init.sh +++ b/files/initrd/opt/arc/init.sh @@ -38,6 +38,7 @@ initConfigKey "arc.confdone" "false" "${USER_CONFIG_FILE}" initConfigKey "arc.dynamic" "false" "${USER_CONFIG_FILE}" initConfigKey "arc.offline" "false" "${USER_CONFIG_FILE}" initConfigKey "arc.patch" "false" "${USER_CONFIG_FILE}" +initConfigKey "arc.hardwareid" "" "${USER_CONFIG_FILE}" initConfigKey "arc.userid" "" "${USER_CONFIG_FILE}" initConfigKey "arc.version" "${ARC_VERSION}" "${USER_CONFIG_FILE}" initConfigKey "boot" "{}" "${USER_CONFIG_FILE}" diff --git a/files/p1/boot/grub/grub.cfg b/files/p1/boot/grub/grub.cfg index 621ada99..7fe67b13 100644 --- a/files/p1/boot/grub/grub.cfg +++ b/files/p1/boot/grub/grub.cfg @@ -77,7 +77,7 @@ set menu_color_normal=white/black set menu_color_highlight=white/red set color_normal=white/black -set ARC_CMDLINE="earlyprintk earlycon=uart8250,io,0x3f8,115200n8 console=ttyS0,115200n8 root=/dev/ram rootwait nointremap net.ifnames=0 panic=5 split_lock_detect=off pcie_aspm=off intel_pstate=passive nox2apic nomodeset" +set ARC_CMDLINE="earlyprintk earlycon=uart8250,io,0x3f8,115200n8 console=ttyS0,115200n8 root=/dev/ram rootwait nomodeset intremap=no_x2apic_optout net.ifnames=0 panic=5 split_lock_detect=off pcie_aspm=off intel_pstate=passive amd_pstate=passive" search --set=root --label "ARC3" if [ -s /zImage-dsm -a -s /initrd-dsm ]; then