add DiskIdxMap recommended, fix multiple network cards

This commit is contained in:
Ing 2023-04-23 05:03:09 +08:00
parent 36440fc087
commit bf6ede928a
3 changed files with 13 additions and 11 deletions

View File

@ -91,7 +91,7 @@ NETIF_NUM=${CMDLINE["netif_num"]}
NETRL_NUM=`ip link show | grep ether | wc -l`
if [ ${NETIF_NUM} -ne ${NETRL_NUM} ]; then
echo -e "\033[1;33m*** `printf "$(TEXT "netif_num is not equal to real network card amount, set netif_num to %s")" "${NETRL_NUM}"` ***\033[0m"
CMDLINE["netif_num"]=${MACS}
CMDLINE["netif_num"]=${NETRL_NUM}
fi
# Prepare command line
@ -117,12 +117,12 @@ echo -e "$(TEXT "Cmdline:\n")\033[1;36m${CMDLINE_LINE}\033[0m"
COUNT=0
echo -n "$(TEXT "IP")"
while true; do
IP=`ip route get 1.1.1.1 2>/dev/null | awk '{print$7}'`
IP=`ip route 2>/dev/null | sed -n 's/.* via .* dev \(.*\) src \(.*\) metric .*/\1: \2 /p'` # `ip route get 1.1.1.1 2>/dev/null | awk '{print$7}'`
if [ -n "${IP}" ]; then
echo -e ": \033[1;32m${IP}\033[0m"
echo -e ": \033[1;32m\n${IP}\033[0m"
break
elif [ ${COUNT} -eq 30 ]; then
echo -e ": \033[1;31mERROR\033[0m"
echo -e ": \033[1;31m\nERROR\033[0m"
break
fi
COUNT=$((${COUNT}+1))

View File

@ -70,7 +70,7 @@ fi
# Get first MAC address
MACS=`ip link show | awk '/ether/{print$2}'`
MACFS=(`echo ${MACS} | sed 's/://g'`)
MACFS=(`echo ${MACS} | sed 's/://g'`) # MACFS=(`cat /sys/class/net/eth*/address | sed 's/://g'`) # ?
# If user config file not exists, initialize it
if [ ! -f "${USER_CONFIG_FILE}" ]; then
@ -183,7 +183,7 @@ while true; do
break
fi
COUNT=$((${COUNT}+1))
IP=`ip route 2>/dev/null | sed -n 's/.* via .* src \(.*\) metric .*/\1/p' | head -1` # IP=`ip route get 1.1.1.1 2>/dev/null | awk '{print$7}'`
IP=`ip route 2>/dev/null | sed -n 's/.* via .* src \(.*\) metric .*/\1/p' | head -1` # IP=`ip route get 1.1.1.1 2>/dev/null | awk '{print$7}'`
if [ -n "${IP}" ]; then
echo -en "`printf "$(TEXT "OK\nAccess \033[1;34mhttp://%s:7681\033[0m to configure the loader via web terminal")" "${IP}"`"
break

View File

@ -13,7 +13,7 @@ if [ `cat /sys/block/${LOADER_DEVICE_NAME}/${LOADER_DEVICE_NAME}3/size` -lt 4194
fi
# Get actual IP
IP=`ip route get 1.1.1.1 2>/dev/null | awk '{print$7}'`
IP=`ip route 2>/dev/null | sed -n 's/.* via .* src \(.*\) metric .*/\1/p' | head -1` # `ip route get 1.1.1.1 2>/dev/null | awk '{print$7}'`
# Dirty flag
DIRTY=0
@ -417,7 +417,7 @@ function cmdlineMenu() {
--title "$(TEXT "User cmdline")" --progressbox "$(TEXT "Changing MAC")" 20 70
/etc/init.d/S41dhcpcd restart 2>&1 | dialog --backtitle "`backtitle`" \
--title "$(TEXT "User cmdline")" --progressbox "$(TEXT "Renewing IP")" 20 70
IP=`ip route 2>/dev/null | sed -n 's/.* via .* src \(.*\) metric .*/\1/p' | head -1` # IP=`ip route get 1.1.1.1 2>/dev/null | awk '{print$7}'`
IP=`ip route 2>/dev/null | sed -n 's/.* via .* src \(.*\) metric .*/\1/p' | head -1` # IP=`ip route get 1.1.1.1 2>/dev/null | awk '{print$7}'`
fi
done
;;
@ -771,13 +771,14 @@ function advancedMenu() {
t) tryRecoveryDSM ;;
s) MSG=""
NUMPORTS=0
ATTACHTPORTS=0
ATTACHTNUM=0
DiskIdxMap=""
for PCI in `lspci -d ::106 | awk '{print$1}'`; do
NAME=`lspci -s "${PCI}" | sed "s/\ .*://"`
MSG+="\Zb${NAME}\Zn\nPorts: "
unset HOSTPORTS
declare -A HOSTPORTS
ATTACHTIDX=0
while read LINE; do
ATAPORT="`echo ${LINE} | grep -o 'ata[0-9]*'`"
PORT=`echo ${ATAPORT} | sed 's/ata//'`
@ -787,13 +788,14 @@ function advancedMenu() {
ls -l /sys/block | fgrep -q "${PCI}/ata${PORT}" && ATTACH=1 || ATTACH=0
PCMD=`cat /sys/class/scsi_host/${HOSTPORTS[${PORT}]}/ahci_port_cmd`
[ "${PCMD}" = "0" ] && DUMMY=1 || DUMMY=0
[ ${ATTACH} -eq 1 ] && MSG+="\Z2\Zb" && ATTACHTPORTS=$((${ATTACHTPORTS}+1))
[ ${ATTACH} -eq 1 ] && MSG+="\Z2\Zb" && ATTACHTIDX=$((${ATTACHTIDX}+1))
[ ${DUMMY} -eq 1 ] && MSG+="\Z1"
MSG+="${PORT}\Zn "
NUMPORTS=$((${NUMPORTS}+1))
done < <(echo ${!HOSTPORTS[@]} | tr ' ' '\n' | sort -n)
MSG+="\n"
DiskIdxMap+=`printf '%02x' ${ATTACHTPORTS}`
[ ${ATTACHTIDX} -gt 0 ] && DiskIdxMap+=`printf '%02x' ${ATTACHTNUM}` || DiskIdxMap+="ff"
ATTACHTNUM=$((${ATTACHTNUM}+${ATTACHTIDX}))
done
MSG+="`printf "$(TEXT "\nTotal of ports: %s\n")" "${NUMPORTS}"`"
MSG+="$(TEXT "\nPorts with color \Z1red\Zn as DUMMY, color \Z2\Zbgreen\Zn has drive connected.")"