mirror of
https://github.com/AuxXxilium/arc.git
synced 2024-11-24 00:19:52 +07:00
tree: rewrite
Signed-off-by: AuxXxilium <info@auxxxilium.tech>
This commit is contained in:
parent
430a2bd00c
commit
f999ad2821
@ -50,6 +50,7 @@ function addonSelection() {
|
||||
while read -r ADDON DESC; do
|
||||
arrayExistItem "${ADDON}" "${!ADDONS[@]}" && ACT="on" || ACT="off"
|
||||
if [ "${ADDON}" == "cpufreqscaling" ]; then
|
||||
[ "${ACPISYS}" == "false" ] && continue
|
||||
[ ! -d "/sys/devices/system/cpu/cpu0/cpufreq" ] && continue
|
||||
fi
|
||||
if [ "${ADDON}" == "amepatch" ] && [ "${OFFLINE}" == "true" ]; then
|
||||
@ -263,6 +264,7 @@ function cmdlineMenu() {
|
||||
1)
|
||||
MSG=""
|
||||
MSG+="Commonly used Parameter:\n"
|
||||
MSG+=" * \Z4SpectreAll_on=\Zn\n Enable Spectre and Meltdown protection to mitigate the threat of speculative execution vulnerability.\n"
|
||||
MSG+=" * \Z4disable_mtrr_trim=\Zn\n Disables kernel trim any uncacheable memory out.\n"
|
||||
MSG+=" * \Z4intel_idle.max_cstate=1\Zn\n Set the maximum C-state depth allowed by the intel_idle driver.\n"
|
||||
MSG+=" * \Z4pcie_port_pm=off\Zn\n Disable the power management of the PCIe port.\n"
|
||||
@ -799,7 +801,7 @@ function updateMenu() {
|
||||
opts=$(cat ${TMP_PATH}/opts)
|
||||
[ -z "${opts}" ] && return 1
|
||||
if [ ${opts} -eq 1 ]; then
|
||||
TAG="$(curl --interface ${ARCNIC} -m 5 -w "%{http_code}" -skL https://api.github.com/repos/AuxXxilium/arc/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}')"
|
||||
TAG="$(curl --interface ${ARCNIC} -m 5 -w "%{http_code}" -skL "https://api.github.com/repos/AuxXxilium/arc/releases" | jq -r ".[].tag_name" | sort -rV | head -1)"
|
||||
if [ $? -ne 0 ] || [ ${STATUS} -ne 200 ] || [ -z "${TAG}" ]; then
|
||||
dialog --backtitle "$(backtitle)" --title "Upgrade Loader" --aspect 18 \
|
||||
--msgbox "Error checking new Version!" 0 0
|
||||
@ -1050,6 +1052,7 @@ function sysinfo() {
|
||||
TEXT+="\n Vendor: \Zb${VENDOR}\Zn"
|
||||
TEXT+="\n CPU: \Zb${CPU}\Zn"
|
||||
TEXT+="\n Memory: \Zb$((${RAMTOTAL}))GB\Zn"
|
||||
TEXT+="\n AES | ACPI: \Zb${AESSYS} | ${ACPISYS}\Zn"
|
||||
TEXT+="\n Date: \Zb$(date)\Zn"
|
||||
TEXT+="\n"
|
||||
TEXT+="\n\Z4> Network: ${NIC} NIC\Zn"
|
||||
@ -1368,6 +1371,7 @@ function staticIPMenu() {
|
||||
[ -z "${opts}" ] && return 1
|
||||
if [ ${opts} -eq 1 ]; then
|
||||
writeConfigKey "static.${ETH}" "false" "${USER_CONFIG_FILE}"
|
||||
/etc/init.d/S41dhcpcd restart >/dev/null 2>&1 || true
|
||||
elif [ ${opts} -eq 2 ]; then
|
||||
dialog --backtitle "$(backtitle)" --title "DHCP/StaticIP" \
|
||||
--inputbox "Type a Static IP\nLike: 192.168.0.2" 0 0 "${IPADDR}" \
|
||||
@ -1384,21 +1388,14 @@ function staticIPMenu() {
|
||||
2>"${TMP_PATH}/resp"
|
||||
[ $? -ne 0 ] && return 1
|
||||
GATEWAY=$(cat "${TMP_PATH}/resp")
|
||||
dialog --backtitle "$(backtitle)" --title "DHCP/StaticIP" \
|
||||
--inputbox "Type a Nameserver\nLike: 8.8.8.8" 0 0 "${NAMESERVER}" \
|
||||
2>"${TMP_PATH}/resp"
|
||||
[ $? -ne 0 ] && return 1
|
||||
NAMESERVER=$(cat "${TMP_PATH}/resp")
|
||||
writeConfigKey "ip.${ETH}" "${IPADDR}" "${USER_CONFIG_FILE}"
|
||||
writeConfigKey "netmask.${ETH}" "${NETMASK}" "${USER_CONFIG_FILE}"
|
||||
writeConfigKey "gateway.${ETH}" "${GATEWAY}" "${USER_CONFIG_FILE}"
|
||||
writeConfigKey "nameserver.${ETH}" "${NAMESERVER}" "${USER_CONFIG_FILE}"
|
||||
writeConfigKey "static.${ETH}" "true" "${USER_CONFIG_FILE}"
|
||||
#NETMASK=$(convert_netmask "${NETMASK}")
|
||||
/etc/init.d/S41dhcpcd stop >/dev/null 2>&1 || true
|
||||
ip addr add ${IPADDR}/${NETMASK} dev ${ETH}
|
||||
ip route add default via ${GATEWAY} dev ${ETH}
|
||||
echo "nameserver ${NAMESERVER}" >>/etc/resolv.conf.head
|
||||
/etc/init.d/S40network restart
|
||||
IP="${IPADDR}"
|
||||
fi
|
||||
|
@ -25,6 +25,17 @@ if grep -q "^flags.*hypervisor.*" /proc/cpuinfo; then
|
||||
else
|
||||
MACHINE=NATIVE
|
||||
fi
|
||||
# Check for AES and ACPI Support
|
||||
if ! grep -q "^flags.*aes.*" /proc/cpuinfo; then
|
||||
AESSYS="false"
|
||||
else
|
||||
AESSYS="true"
|
||||
fi
|
||||
if ! grep -q "^flags.*acpi.*" /proc/cpuinfo; then
|
||||
ACPISYS="false"
|
||||
else
|
||||
ACPISYS="true"
|
||||
fi
|
||||
|
||||
# Get Loader Disk Bus
|
||||
BUS=$(getBus "${LOADER_DISK}")
|
||||
@ -33,7 +44,10 @@ BUS=$(getBus "${LOADER_DISK}")
|
||||
CUSTOM="$(readConfigKey "arc.custom" "${USER_CONFIG_FILE}")"
|
||||
ETHX=$(ls /sys/class/net/ 2>/dev/null | grep eth) # real network cards list
|
||||
for ETH in ${ETHX}; do
|
||||
if curl --interface ${ETH} -m 5 -skL https://api.github.com/repos/AuxXxilium/arc/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}' > /dev/null 2>&1; then
|
||||
# Update Check
|
||||
NEWTAG=$(curl --interface ${ETH} -m 10 -skL "https://api.github.com/repos/AuxXxilium/arc/releases" | jq -r ".[].tag_name" | sort -rV | head -1)
|
||||
if [ -n "${NEWTAG}" ]; then
|
||||
NEWTAG="${ARC_VERSION}"
|
||||
ARCNIC=${ETH}
|
||||
break
|
||||
fi
|
||||
@ -43,15 +57,16 @@ if [ -n "${ARCNIC}" ]; then
|
||||
elif [ -z "${ARCNIC}" ] && [ "${CUSTOM}" == "false" ]; then
|
||||
writeConfigKey "arc.offline" "true" "${USER_CONFIG_FILE}"
|
||||
cp -f "${PART3_PATH}/configs/offline.json" "${ARC_PATH}/include/offline.json"
|
||||
ARCNIC="eth99"
|
||||
dialog --backtitle "$(backtitle)" --title "Online Check" \
|
||||
--msgbox "No online Connection found.\nSwitch to Offline Mode!" 0 0
|
||||
--msgbox "Could not connect to Github.\nSwitch to Offline Mode!" 0 0
|
||||
elif [ -z "${ARCNIC}" ] && [ "${CUSTOM}" == "true" ]; then
|
||||
dialog --backtitle "$(backtitle)" --title "Online Check" \
|
||||
--infobox "No online Connection found.\nReboot to try again!" 0 0
|
||||
--infobox "Could not connect to Github.\nReboot to try again!" 0 0
|
||||
sleep 5
|
||||
exec reboot
|
||||
fi
|
||||
writeConfigKey "arc.nic" "${ARCNIC:-eth0}" "${USER_CONFIG_FILE}"
|
||||
writeConfigKey "arc.nic" "${ARCNIC}" "${USER_CONFIG_FILE}"
|
||||
ARCNIC="$(readConfigKey "arc.nic" "${USER_CONFIG_FILE}")"
|
||||
|
||||
# Get DSM Data from Config
|
||||
@ -97,15 +112,10 @@ LAYOUT="$(readConfigKey "layout" "${USER_CONFIG_FILE}")"
|
||||
KEYMAP="$(readConfigKey "keymap" "${USER_CONFIG_FILE}")"
|
||||
|
||||
if [ "${OFFLINE}" == "false" ]; then
|
||||
# Update Check
|
||||
NEWTAG=$(curl --interface ${ARCNIC} -m 5 -skL https://api.github.com/repos/AuxXxilium/arc/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}')
|
||||
if [ -z "${NEWTAG}" ]; then
|
||||
NEWTAG="${ARC_VERSION}"
|
||||
fi
|
||||
# Timezone
|
||||
GETREGION=$(curl --interface ${ARCNIC} -m 5 -v http://ip-api.com/line?fields=timezone 2>/dev/null | tr -d '\n' | cut -d '/' -f1)
|
||||
GETTIMEZONE=$(curl --interface ${ARCNIC} -m 5 -v http://ip-api.com/line?fields=timezone 2>/dev/null | tr -d '\n' | cut -d '/' -f2)
|
||||
GETKEYMAP=$(curl --interface ${ARCNIC} -m 5 -v http://ip-api.com/line?fields=countryCode 2>/dev/null | tr '[:upper:]' '[:lower:]')
|
||||
GETREGION=$(curl --interface ${ARCNIC} -m 5 -v "http://ip-api.com/line?fields=timezone" 2>/dev/null | tr -d '\n' | cut -d '/' -f1)
|
||||
GETTIMEZONE=$(curl --interface ${ARCNIC} -m 5 -v "http://ip-api.com/line?fields=timezone" 2>/dev/null | tr -d '\n' | cut -d '/' -f2)
|
||||
GETKEYMAP=$(curl --interface ${ARCNIC} -m 5 -v "http://ip-api.com/line?fields=countryCode" 2>/dev/null | tr '[:upper:]' '[:lower:]')
|
||||
writeConfigKey "time.region" "${GETREGION}" "${USER_CONFIG_FILE}"
|
||||
writeConfigKey "time.timezone" "${GETTIMEZONE}" "${USER_CONFIG_FILE}"
|
||||
[ -z "{KEYMAP}" ] && writeConfigKey "keymap" "${GETKEYMAP}" "${USER_CONFIG_FILE}"
|
||||
@ -369,7 +379,7 @@ function arcVersion() {
|
||||
while read -r ID DESC; do
|
||||
writeConfigKey "modules.\"${ID}\"" "" "${USER_CONFIG_FILE}"
|
||||
for MOD in ${KOLIST[@]}; do
|
||||
[ "${MOD}" == "${ID}" ] && echo "N ${ID}.ko" >>"${USER_UP_PATH}/modulelist"
|
||||
[ "${MOD}" == "${ID}" ] && echo "F ${ID}.ko" >>"${USER_UP_PATH}/modulelist"
|
||||
done
|
||||
done < <(getAllModules "${PLATFORM}" "${KVERP}")
|
||||
# Check for Only Version
|
||||
@ -521,9 +531,14 @@ function arcSettings() {
|
||||
--msgbox "WARN: You have more then 8 Ethernet Ports.\nThere are only 8 supported by DSM." 0 0
|
||||
fi
|
||||
# Check for AES
|
||||
if ! grep -q "^flags.*aes.*" /proc/cpuinfo; then
|
||||
if [ "${AESSYS}" == "false" ]; then
|
||||
dialog --backtitle "$(backtitle)" --title "Arc Warning" \
|
||||
--msgbox "WARN: Your CPU does not have AES Support for Hardwareencryption in DSM." 0 0
|
||||
--msgbox "WARN: Your System doesn't have AES Support for Hardwareencryption in DSM." 0 0
|
||||
fi
|
||||
# Check for ACPI
|
||||
if [ "${ACPISYS}" == "false" ]; then
|
||||
dialog --backtitle "$(backtitle)" --title "Arc Warning" \
|
||||
--msgbox "WARN: Your System doesn't have ACPI Support for CPU Frequency Scaling in DSM." 0 0
|
||||
fi
|
||||
fi
|
||||
EMMCBOOT="$(readConfigKey "arc.emmcboot" "${USER_CONFIG_FILE}")"
|
||||
@ -682,8 +697,8 @@ function make() {
|
||||
--infobox "Get PAT Data from Github..." 3 30
|
||||
idx=0
|
||||
while [ ${idx} -le 3 ]; do # Loop 3 times, if successful, break
|
||||
PAT_URL=$(curl --interface ${ARCNIC} -m 5 -skL "https://raw.githubusercontent.com/AuxXxilium/arc-dsm/main/dsm/${MODEL/+/%2B}/${PRODUCTVER}/pat_url")
|
||||
PAT_HASH=$(curl --interface ${ARCNIC} -m 5 -skL "https://raw.githubusercontent.com/AuxXxilium/arc-dsm/main/dsm/${MODEL/+/%2B}/${PRODUCTVER}/pat_hash")
|
||||
PAT_URL=$(curl --interface ${ARCNIC} -m 10 -skL "https://raw.githubusercontent.com/AuxXxilium/arc-dsm/main/dsm/${MODEL/+/%2B}/${PRODUCTVER}/pat_url")
|
||||
PAT_HASH=$(curl --interface ${ARCNIC} -m 10 -skL "https://raw.githubusercontent.com/AuxXxilium/arc-dsm/main/dsm/${MODEL/+/%2B}/${PRODUCTVER}/pat_hash")
|
||||
PAT_URL=${PAT_URL%%\?*}
|
||||
if [ -n "${PAT_URL}" ] && [ -n "${PAT_HASH}" ]; then
|
||||
if echo "${PAT_URL}" | grep -q "https://"; then
|
||||
|
@ -66,7 +66,7 @@ if ! readConfigMap "addons" "${USER_CONFIG_FILE}" | grep -q nvmesystem; then
|
||||
HASATA=0
|
||||
for D in $(lsblk -dpno NAME); do
|
||||
[ "${D}" == "${LOADER_DISK}" ] && continue
|
||||
if [ "$(getBus "${D}")" == "sata" -o "$(getBus "${D}")" == "scsi" ]; then
|
||||
if [ "$(getBus "${D}")" == "sata" ] || [ "$(getBus "${D}")" == "scsi" ]; then
|
||||
HASATA=1
|
||||
break
|
||||
fi
|
||||
@ -146,7 +146,7 @@ if [ "${DT}" == "true" ] && ! echo "epyc7002 purley broadwellnkv2" | grep -wq "$
|
||||
[ "${CMDLINE['modprobe.blacklist']}" != "" ] && CMDLINE['modprobe.blacklist']+=","
|
||||
CMDLINE['modprobe.blacklist']+="mpt3sas"
|
||||
fi
|
||||
if echo "epyc7002 apollolake geminilake" | grep -wq "${PLATFORM}"; then
|
||||
if echo "apollolake geminilake" | grep -wq "${PLATFORM}"; then
|
||||
CMDLINE["intel_iommu"]="igfx_off"
|
||||
fi
|
||||
if echo "purley broadwellnkv2" | grep -wq "${PLATFORM}"; then
|
||||
@ -195,7 +195,7 @@ if [ "${DIRECTBOOT}" == "true" ]; then
|
||||
elif [ "${DIRECTBOOT}" == "false" ]; then
|
||||
BOOTIPWAIT="$(readConfigKey "arc.bootipwait" "${USER_CONFIG_FILE}")"
|
||||
[ -z "${BOOTIPWAIT}" ] && BOOTIPWAIT=20
|
||||
echo -e "\033[1;34mDetected ${NIC} NIC.\033[0m \033[1;37mWaiting for Connection:\033[0m"
|
||||
echo -e "\033[1;34mDetected ${NIC} NIC.\033[0m \033[1;37mWaiting for DHCP Connection:\033[0m"
|
||||
IPCON=""
|
||||
for ETH in ${ETHX}; do
|
||||
IP=""
|
||||
@ -210,18 +210,18 @@ elif [ "${DIRECTBOOT}" == "false" ]; then
|
||||
elif [ -n "${IP}" ]; then
|
||||
SPEED=$(ethtool ${ETH} 2>/dev/null | grep "Speed:" | awk '{print $2}')
|
||||
if [[ "${IP}" =~ ^169\.254\..* ]]; then
|
||||
echo -e "\r\033[1;37m${DRIVER} (${SPEED} | ${MSG}):\033[0m LINK LOCAL (No DHCP server detected.)"
|
||||
echo -e "\r\033[1;37m${DRIVER} (${SPEED} | ${MSG}):\033[0m LINK LOCAL (No DHCP server found.)"
|
||||
else
|
||||
echo -e "\r\033[1;37m${DRIVER} (${SPEED} | ${MSG}):\033[0m Access \033[1;34mhttp://${IP}:5000\033[0m to connect to DSM via web."
|
||||
[ ! -n "${IPCON}" ] && IPCON="${IP}"
|
||||
fi
|
||||
break
|
||||
elif [ ${COUNT} -gt ${BOOTIPWAIT} ]; then
|
||||
elif [ ${COUNT} -ge ${BOOTIPWAIT} ]; then
|
||||
echo -e "\r\033[1;37m${DRIVER}:\033[0m TIMEOUT"
|
||||
break
|
||||
fi
|
||||
sleep 3
|
||||
COUNT=$((${COUNT} + 3))
|
||||
sleep 5
|
||||
COUNT=$((${COUNT} + 4))
|
||||
done
|
||||
done
|
||||
# Exec Bootwait to check SSH/Web connection
|
||||
@ -261,8 +261,12 @@ elif [ "${DIRECTBOOT}" == "false" ]; then
|
||||
|
||||
# Executes DSM kernel via KEXEC
|
||||
KEXECARGS=""
|
||||
if [ $(echo "${KVER:-4}" | cut -d'.' -f1) -lt 4 ] && [ ${EFI} -eq 1 ]; then
|
||||
echo -e "\033[1;33mWarning, running kexec with --noefi param, strange things will happen!!\033[0m"
|
||||
KEXECARGS="--noefi"
|
||||
fi
|
||||
kexec ${KEXECARGS} -l "${MOD_ZIMAGE_FILE}" --initrd "${MOD_RDGZ_FILE}" --command-line="${CMDLINE_LINE}" >"${LOG_FILE}" 2>&1 || dieLog
|
||||
echo -e "\033[1;37m"Booting DSM..."\033[0m"
|
||||
echo -e "\033[1;37mBooting DSM...\033[0m"
|
||||
for T in $(w -h 2>/dev/null | awk '{print $2}'); do
|
||||
[ -w "/dev/${T}" ] && echo -e "\n\033[1;37mThis interface will not be operational. Wait a few minutes.\033[0m\nUse \033[1;34mhttp://${IPCON}:5000\033[0m or try \033[1;34mhttp://find.synology.com/ \033[0mto find DSM and proceed.\n" >"/dev/${T}" 2>/dev/null || true
|
||||
done
|
||||
|
@ -12,7 +12,7 @@ function updateLoader() {
|
||||
# Check for new Version
|
||||
idx=0
|
||||
while [ ${idx} -le 5 ]; do # Loop 5 times, if successful, break
|
||||
TAG="$(curl --interface ${ARCNIC} -m 5 -skL https://api.github.com/repos/AuxXxilium/arc/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}')"
|
||||
TAG=$(curl --interface ${ARCNIC} -m 10 -skL "https://api.github.com/repos/AuxXxilium/arc/releases" | jq -r ".[].tag_name" | sort -rV | head -1)
|
||||
if [ -n "${TAG}" ]; then
|
||||
echo "New Version: ${TAG}"
|
||||
break
|
||||
@ -68,7 +68,7 @@ function updateAddons() {
|
||||
# Check for new Version
|
||||
idx=0
|
||||
while [ ${idx} -le 5 ]; do # Loop 5 times, if successful, break
|
||||
TAG="$(curl --interface ${ARCNIC} -m 5 -skL https://api.github.com/repos/AuxXxilium/arc-addons/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}')"
|
||||
TAG=$(curl --interface ${ARCNIC} -m 10 -skL "https://api.github.com/repos/AuxXxilium/arc-addons/releases" | jq -r ".[].tag_name" | sort -rV | head -1)
|
||||
if [ -n "${TAG}" ]; then
|
||||
echo "New Version: ${TAG}"
|
||||
break
|
||||
@ -129,7 +129,7 @@ function updatePatches() {
|
||||
# Check for new Version
|
||||
idx=0
|
||||
while [ ${idx} -le 5 ]; do # Loop 5 times, if successful, break
|
||||
TAG="$(curl --interface ${ARCNIC} -m 5 -skL https://api.github.com/repos/AuxXxilium/arc-patches/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}')"
|
||||
TAG=$(curl --interface ${ARCNIC} -m 10 -skL "https://api.github.com/repos/AuxXxilium/arc-patches/releases" | jq -r ".[].tag_name" | sort -rV | head -1)
|
||||
if [ -n "${TAG}" ]; then
|
||||
echo "New Version: ${TAG}"
|
||||
break
|
||||
@ -182,7 +182,7 @@ function updateModules() {
|
||||
# Check for new Version
|
||||
idx=0
|
||||
while [ ${idx} -le 5 ]; do # Loop 5 times, if successful, break
|
||||
TAG="$(curl --interface ${ARCNIC} -m 5 -skL https://api.github.com/repos/AuxXxilium/arc-modules/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}')"
|
||||
TAG=$(curl --interface ${ARCNIC} -m 10 -skL "https://api.github.com/repos/AuxXxilium/arc-modules/releases" | jq -r ".[].tag_name" | sort -rV | head -1)
|
||||
if [ -n "${TAG}" ]; then
|
||||
echo "New Version: ${TAG}"
|
||||
break
|
||||
@ -254,7 +254,7 @@ function updateConfigs() {
|
||||
# Check for new Version
|
||||
idx=0
|
||||
while [ ${idx} -le 5 ]; do # Loop 5 times, if successful, break
|
||||
TAG="$(curl --interface ${ARCNIC} -m 5 -skL https://api.github.com/repos/AuxXxilium/arc-configs/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}')"
|
||||
TAG=$(curl --interface ${ARCNIC} -m 5 -skL "https://api.github.com/repos/AuxXxilium/arc-configs/releases" | jq -r ".[].tag_name" | sort -rV | head -1)
|
||||
if [ -n "${TAG}" ]; then
|
||||
echo "New Version: ${TAG}"
|
||||
break
|
||||
@ -307,7 +307,7 @@ function updateLKMs() {
|
||||
# Check for new Version
|
||||
idx=0
|
||||
while [ ${idx} -le 5 ]; do # Loop 5 times, if successful, break
|
||||
TAG="$(curl --interface ${ARCNIC} -m 5 -skL https://api.github.com/repos/AuxXxilium/arc-lkm/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}')"
|
||||
TAG=$(curl --interface ${ARCNIC} -m 5 -skL "https://api.github.com/repos/AuxXxilium/arc-lkm/releases" | jq -r ".[].tag_name" | sort -rV | head -1)
|
||||
if [ -n "${TAG}" ]; then
|
||||
echo "New Version: ${TAG}"
|
||||
break
|
||||
|
@ -66,7 +66,6 @@ initConfigKey "keymap" "" "${USER_CONFIG_FILE}"
|
||||
initConfigKey "layout" "" "${USER_CONFIG_FILE}"
|
||||
initConfigKey "lkm" "prod" "${USER_CONFIG_FILE}"
|
||||
initConfigKey "mac" "{}" "${USER_CONFIG_FILE}"
|
||||
initConfigKey "nameserver" "{}" "${USER_CONFIG_FILE}"
|
||||
initConfigKey "modules" "{}" "${USER_CONFIG_FILE}"
|
||||
initConfigKey "model" "" "${USER_CONFIG_FILE}"
|
||||
initConfigKey "modelid" "" "${USER_CONFIG_FILE}"
|
||||
@ -92,18 +91,19 @@ NIC=0
|
||||
for ETH in ${ETHX}; do
|
||||
MACR=$(cat /sys/class/net/${ETH}/address | sed 's/://g')
|
||||
if [ -z "${MACR}" ]; then
|
||||
MACR="9009d012345${NIC}"
|
||||
MACR="9009d0123456"
|
||||
fi
|
||||
initConfigKey "mac.${ETH}" "${MACR}" "${USER_CONFIG_FILE}"
|
||||
if [ "${MACSYS}" == "custom" ]; then
|
||||
MACA="$(readConfigKey "mac.${ETH}" "${USER_CONFIG_FILE}")"
|
||||
if [ "${MACA}" != "${MACR}" ]; then
|
||||
if [ -n "${MACA}" ] && [ "${MACA}" != "${MACR}" ]; then
|
||||
MAC="${MACA:0:2}:${MACA:2:2}:${MACA:4:2}:${MACA:6:2}:${MACA:8:2}:${MACA:10:2}"
|
||||
echo "Setting ${ETH} MAC to ${MAC}"
|
||||
ip link set dev ${ETH} address "${MAC}" >/dev/null 2>&1 || true
|
||||
ip link set dev ${ETH} address ${MAC} >/dev/null 2>&1 || true
|
||||
STATICIP="$(readConfigKey "static.${ETH}" "${USER_CONFIG_FILE}")"
|
||||
[ "${STATICIP}" == "false" ] && /etc/init.d/S41dhcpcd restart >/dev/null 2>&1 || true
|
||||
sleep 2
|
||||
fi
|
||||
/etc/init.d/S41dhcpcd restart >/dev/null 2>&1 || true
|
||||
fi
|
||||
NIC=$((${NIC} + 1))
|
||||
done
|
||||
@ -181,9 +181,9 @@ for ETH in ${ETHX}; do
|
||||
NETMASK="$(readConfigKey "netmask.${ETH}" "${USER_CONFIG_FILE}")"
|
||||
GATEWAY="$(readConfigKey "gateway.${ETH}" "${USER_CONFIG_FILE}")"
|
||||
NAMESERVER="$(readConfigKey "nameserver.${ETH}" "${USER_CONFIG_FILE}")"
|
||||
IP="${ARCIP}"
|
||||
IP=${ARCIP}
|
||||
#NETMASK=$(convert_netmask "${NETMASK}")
|
||||
ip addr add ${IP}/${NETMASK} dev ${ETH} 2>/dev/null || true
|
||||
ip addr add ${ARCIP}/${NETMASK} dev ${ETH} 2>/dev/null || true
|
||||
ip route add default via ${GATEWAY} dev ${ETH} 2>/dev/null || true
|
||||
echo "nameserver ${NAMESERVER}" >>/etc/resolv.conf.head 2>/dev/null || true
|
||||
/etc/init.d/S40network restart 2>/dev/null || true
|
||||
@ -200,17 +200,17 @@ for ETH in ${ETHX}; do
|
||||
SPEED=$(ethtool ${ETH} 2>/dev/null | grep "Speed:" | awk '{print $2}')
|
||||
writeConfigKey "ip.${ETH}" "${IP}" "${USER_CONFIG_FILE}"
|
||||
if [[ "${IP}" =~ ^169\.254\..* ]]; then
|
||||
echo -e "\r\033[1;37m${DRIVER} (${SPEED} | ${MSG}):\033[0m LINK LOCAL (No DHCP server detected.)"
|
||||
echo -e "\r\033[1;37m${DRIVER} (${SPEED} | ${MSG}):\033[0m LINK LOCAL (No DHCP server found.)"
|
||||
else
|
||||
echo -e "\r\033[1;37m${DRIVER} (${SPEED} | ${MSG}):\033[0m Access \033[1;34mhttp://${IP}:7681\033[0m to connect to Arc via web."
|
||||
fi
|
||||
break
|
||||
elif [ ${COUNT} -gt ${BOOTIPWAIT} ]; then
|
||||
elif [ ${COUNT} -ge ${BOOTIPWAIT} ]; then
|
||||
echo -e echo -e "\r\033[1;37m${DRIVER}:\033[0m TIMEOUT"
|
||||
break
|
||||
fi
|
||||
sleep 3
|
||||
COUNT=$((${COUNT} + 3))
|
||||
sleep 5
|
||||
COUNT=$((${COUNT} + 4))
|
||||
done
|
||||
done
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user