From 3257fd03200e20b8d568eb0908449e5d3fbc4fb9 Mon Sep 17 00:00:00 2001 From: AuxXxilium Date: Wed, 15 Nov 2023 13:35:38 +0100 Subject: [PATCH] arc: test network rewrite Signed-off-by: AuxXxilium --- files/initrd/opt/arc/arc.sh | 14 +++++++------- files/initrd/opt/arc/boot.sh | 16 ++++++++-------- files/initrd/opt/arc/init.sh | 18 +++++++++--------- 3 files changed, 24 insertions(+), 24 deletions(-) diff --git a/files/initrd/opt/arc/arc.sh b/files/initrd/opt/arc/arc.sh index a0992e1e..c7e3db6b 100755 --- a/files/initrd/opt/arc/arc.sh +++ b/files/initrd/opt/arc/arc.sh @@ -2030,7 +2030,7 @@ function sysinfo() { [ -d /sys/firmware/efi ] && BOOTSYS="EFI" || BOOTSYS="Legacy" VENDOR="$(dmidecode -s system-product-name)" BOARD="$(dmidecode -s baseboard-product-name)" - ETHX=($(ls /sys/class/net/ | grep eth)) + ETHX=$(ls /sys/class/net/ | grep -v lo || true) NIC="$(readConfigKey "device.nic" "${USER_CONFIG_FILE}")" CONFDONE="$(readConfigKey "arc.confdone" "${USER_CONFIG_FILE}")" BUILDDONE="$(readConfigKey "arc.builddone" "${USER_CONFIG_FILE}")" @@ -2073,18 +2073,18 @@ function sysinfo() { TEXT+="\n Memory: \Zb$((${RAMTOTAL} / 1024))GB\Zn" TEXT+="\n" TEXT+="\n\Z4> Network: ${NIC} Adapter\Zn" - for N in $(seq 0 $((${#ETHX[@]} - 1))); do - DRIVER=$(ls -ld /sys/class/net/${ETHX[${N}]}/device/driver 2>/dev/null | awk -F '/' '{print $NF}') - MAC="$(cat /sys/class/net/${ETHX[$((${N} - 1))]}/address | sed 's/://g')" + for N in ${ETHX}; do + DRIVER=$(ls -ld /sys/class/net/${N}/device/driver 2>/dev/null | awk -F '/' '{print $NF}') + MAC="$(cat /sys/class/net/${N}/address | sed 's/://g')" while true; do - if ethtool ${ETHX[${N}]} | grep 'Link detected' | grep -q 'no'; then + if ethtool ${N} | grep 'Link detected' | grep -q 'no'; then TEXT+="\n ${DRIVER}: \ZbIP: NOT CONNECTED | MAC: ${MAC}\Zn" break fi NETIP="$(getIP)" if [ "${STATICIP}" = "true" ]; then ARCIP="$(readConfigKey "arc.ip" "${USER_CONFIG_FILE}")" - if [[ "${ETHX[${N}]}" = "eth0" && -n "${ARCIP}" ]]; then + if [[ "${N}" = "eth0" && -n "${ARCIP}" ]]; then NETIP="${ARCIP}" MSG="STATIC" else @@ -2094,7 +2094,7 @@ function sysinfo() { MSG="DHCP" fi if [ -n "${NETIP}" ]; then - SPEED=$(ethtool ${ETHX[${N}]} | grep "Speed:" | awk '{print $2}') + SPEED=$(ethtool ${N} | grep "Speed:" | awk '{print $2}') TEXT+="\n ${DRIVER} (${SPEED} | ${MSG}) \ZbIP: ${NETIP} | Mac: ${MAC}\Zn" break fi diff --git a/files/initrd/opt/arc/boot.sh b/files/initrd/opt/arc/boot.sh index e67c0197..a15af90f 100755 --- a/files/initrd/opt/arc/boot.sh +++ b/files/initrd/opt/arc/boot.sh @@ -168,20 +168,20 @@ elif [[ "${DIRECTBOOT}" = "true" && ${BOOTCOUNT} -eq 0 ]]; then echo -e "\033[1;34mDSM not installed - Reboot with Directboot\033[0m" exec reboot elif [ "${DIRECTBOOT}" = "false" ]; then - ETHX=($(ls /sys/class/net/ | grep eth)) # real network cards list + ETHX=$(ls /sys/class/net/ | grep -v lo || true) STATICIP="$(readConfigKey "arc.staticip" "${USER_CONFIG_FILE}")" BOOTIPWAIT="$(readConfigKey "arc.bootipwait" "${USER_CONFIG_FILE}")" - echo -e "\033[1;34mDetected ${#ETHX[@]} NIC.\033[0m \033[1;37mWaiting for Connection:\033[0m" - for N in $(seq 0 $((${#ETHX[@]} - 1))); do - DRIVER=$(ls -ld /sys/class/net/${ETHX[${N}]}/device/driver 2>/dev/null | awk -F '/' '{print $NF}') + echo -e "\033[1;34mDetected ${ETHX} NIC.\033[0m \033[1;37mWaiting for Connection:\033[0m" + for N in ${ETHX}; do + DRIVER=$(ls -ld /sys/class/net/${N}/device/driver 2>/dev/null | awk -F '/' '{print $NF}') COUNT=0 sleep 3 while true; do - IP="$(getIP ${ETHX[${N}]})" + IP="$(getIP ${N})" if [ "${STATICIP}" = "true" ]; then ARCIP="$(readConfigKey "arc.ip" "${USER_CONFIG_FILE}")" NETMASK="$(readConfigKey "arc.netmask" "${USER_CONFIG_FILE}")" - if [[ "${ETHX[${N}]}" = "eth0" && -n "${ARCIP}" && ${BOOTCOUNT} -gt 0 ]]; then + if [[ "${N}" = "eth0" && -n "${ARCIP}" && ${BOOTCOUNT} -gt 0 ]]; then IP="${ARCIP}" NETMASK=$(convert_netmask "${NETMASK}") ip addr add ${IP}/${NETMASK} dev eth0 @@ -193,7 +193,7 @@ elif [ "${DIRECTBOOT}" = "false" ]; then MSG="DHCP" fi if [ -n "${IP}" ]; then - SPEED=$(ethtool ${ETHX[${N}]} | grep "Speed:" | awk '{print $2}') + SPEED=$(ethtool ${N} | grep "Speed:" | awk '{print $2}') 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." break fi @@ -202,7 +202,7 @@ elif [ "${DIRECTBOOT}" = "false" ]; then echo -e "\r${DRIVER}: TIMEOUT." break fi - if ethtool ${ETHX[${N}]} | grep 'Link detected' | grep -q 'no'; then + if ethtool ${N} | grep 'Link detected' | grep -q 'no'; then echo -e "\r${DRIVER}: NOT CONNECTED" break fi diff --git a/files/initrd/opt/arc/init.sh b/files/initrd/opt/arc/init.sh index 87c0549a..44a53eb5 100755 --- a/files/initrd/opt/arc/init.sh +++ b/files/initrd/opt/arc/init.sh @@ -59,9 +59,9 @@ initConfigKey "arc.version" "${ARC_VERSION}" "${USER_CONFIG_FILE}" initConfigKey "device" "{}" "${USER_CONFIG_FILE}" # Init Network -ETHX=($(ls /sys/class/net/ | grep eth)) # real network cards list +ETHX=$(ls /sys/class/net/ | grep -v lo || true) # No network devices -[ ${#ETHX[@]} -le 0 ] && die "No NIC found! - Loader does not work without Network connection." +[ $(echo ${ETHX} | wc -w) -le 0 ] && die "No NIC found! - Loader does not work without Network connection." MACSYS="$(readConfigKey "arc.macsys" "${USER_CONFIG_FILE}")" if [ "${MACSYS}" = "custom" ]; then MACR="$(cat /sys/class/net/eth0/address | sed 's/://g')" @@ -129,17 +129,17 @@ BOOTCOUNT="$(readConfigKey "arc.bootcount" "${USER_CONFIG_FILE}")" STATICIP="$(readConfigKey "arc.staticip" "${USER_CONFIG_FILE}")" BOOTIPWAIT="$(readConfigKey "arc.bootipwait" "${USER_CONFIG_FILE}")" [ -z "${BOOTIPWAIT}" ] && BOOTIPWAIT=20 -echo -e "\033[1;34mDetected ${#ETHX[@]} NIC.\033[0m \033[1;37mWaiting for Connection:\033[0m" -for N in $(seq 0 $((${#ETHX[@]} - 1))); do - DRIVER=$(ls -ld /sys/class/net/${ETHX[${N}]}/device/driver 2>/dev/null | awk -F '/' '{print $NF}') +echo -e "\033[1;34mDetected ${ETHX} NIC.\033[0m \033[1;37mWaiting for Connection:\033[0m" +for N in ${ETHX}; do + DRIVER=$(ls -ld /sys/class/net/${N}/device/driver 2>/dev/null | awk -F '/' '{print $NF}') COUNT=0 sleep 3 while true; do - IP="$(getIP ${ETHX[${N}]})" + IP="$(getIP ${N})" if [ "${STATICIP}" = "true" ]; then ARCIP="$(readConfigKey "arc.ip" "${USER_CONFIG_FILE}")" NETMASK="$(readConfigKey "arc.netmask" "${USER_CONFIG_FILE}")" - if [[ "${ETHX[${N}]}" = "eth0" && -n "${ARCIP}" && ${BOOTCOUNT} -gt 0 ]]; then + if [[ "${N}" = "eth0" && -n "${ARCIP}" && ${BOOTCOUNT} -gt 0 ]]; then IP="${ARCIP}" NETMASK=$(convert_netmask "${NETMASK}") ip addr add ${IP}/${NETMASK} dev eth0 @@ -151,7 +151,7 @@ for N in $(seq 0 $((${#ETHX[@]} - 1))); do MSG="DHCP" fi if [ -n "${IP}" ]; then - SPEED=$(ethtool ${ETHX[${N}]} | grep "Speed:" | awk '{print $2}') + SPEED=$(ethtool ${N} | grep "Speed:" | awk '{print $2}') echo -e "\r${DRIVER} (${SPEED} | ${MSG}): Access \033[1;34mhttp://${IP}:7681\033[0m to connect to Arc via web." break fi @@ -160,7 +160,7 @@ for N in $(seq 0 $((${#ETHX[@]} - 1))); do echo -e "\r${DRIVER}: TIMEOUT" break fi - if ethtool ${ETHX[${N}]} | grep 'Link detected' | grep -q 'no'; then + if ethtool ${N} | grep 'Link detected' | grep -q 'no'; then echo -e "\r${DRIVER}: NOT CONNECTED" break fi