mirror of
https://github.com/RROrg/rr.git
synced 2025-06-21 05:51:05 +08:00
add DiskIdxMap recommended, fix multiple network cards
This commit is contained in:
parent
36440fc087
commit
bf6ede928a
@ -91,7 +91,7 @@ NETIF_NUM=${CMDLINE["netif_num"]}
|
|||||||
NETRL_NUM=`ip link show | grep ether | wc -l`
|
NETRL_NUM=`ip link show | grep ether | wc -l`
|
||||||
if [ ${NETIF_NUM} -ne ${NETRL_NUM} ]; then
|
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"
|
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
|
fi
|
||||||
|
|
||||||
# Prepare command line
|
# Prepare command line
|
||||||
@ -117,12 +117,12 @@ echo -e "$(TEXT "Cmdline:\n")\033[1;36m${CMDLINE_LINE}\033[0m"
|
|||||||
COUNT=0
|
COUNT=0
|
||||||
echo -n "$(TEXT "IP")"
|
echo -n "$(TEXT "IP")"
|
||||||
while true; do
|
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
|
if [ -n "${IP}" ]; then
|
||||||
echo -e ": \033[1;32m${IP}\033[0m"
|
echo -e ": \033[1;32m\n${IP}\033[0m"
|
||||||
break
|
break
|
||||||
elif [ ${COUNT} -eq 30 ]; then
|
elif [ ${COUNT} -eq 30 ]; then
|
||||||
echo -e ": \033[1;31mERROR\033[0m"
|
echo -e ": \033[1;31m\nERROR\033[0m"
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
COUNT=$((${COUNT}+1))
|
COUNT=$((${COUNT}+1))
|
||||||
|
@ -70,7 +70,7 @@ fi
|
|||||||
|
|
||||||
# Get first MAC address
|
# Get first MAC address
|
||||||
MACS=`ip link show | awk '/ether/{print$2}'`
|
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 user config file not exists, initialize it
|
||||||
if [ ! -f "${USER_CONFIG_FILE}" ]; then
|
if [ ! -f "${USER_CONFIG_FILE}" ]; then
|
||||||
|
@ -13,7 +13,7 @@ if [ `cat /sys/block/${LOADER_DEVICE_NAME}/${LOADER_DEVICE_NAME}3/size` -lt 4194
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Get actual IP
|
# 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 flag
|
||||||
DIRTY=0
|
DIRTY=0
|
||||||
@ -771,13 +771,14 @@ function advancedMenu() {
|
|||||||
t) tryRecoveryDSM ;;
|
t) tryRecoveryDSM ;;
|
||||||
s) MSG=""
|
s) MSG=""
|
||||||
NUMPORTS=0
|
NUMPORTS=0
|
||||||
ATTACHTPORTS=0
|
ATTACHTNUM=0
|
||||||
DiskIdxMap=""
|
DiskIdxMap=""
|
||||||
for PCI in `lspci -d ::106 | awk '{print$1}'`; do
|
for PCI in `lspci -d ::106 | awk '{print$1}'`; do
|
||||||
NAME=`lspci -s "${PCI}" | sed "s/\ .*://"`
|
NAME=`lspci -s "${PCI}" | sed "s/\ .*://"`
|
||||||
MSG+="\Zb${NAME}\Zn\nPorts: "
|
MSG+="\Zb${NAME}\Zn\nPorts: "
|
||||||
unset HOSTPORTS
|
unset HOSTPORTS
|
||||||
declare -A HOSTPORTS
|
declare -A HOSTPORTS
|
||||||
|
ATTACHTIDX=0
|
||||||
while read LINE; do
|
while read LINE; do
|
||||||
ATAPORT="`echo ${LINE} | grep -o 'ata[0-9]*'`"
|
ATAPORT="`echo ${LINE} | grep -o 'ata[0-9]*'`"
|
||||||
PORT=`echo ${ATAPORT} | sed 's/ata//'`
|
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
|
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=`cat /sys/class/scsi_host/${HOSTPORTS[${PORT}]}/ahci_port_cmd`
|
||||||
[ "${PCMD}" = "0" ] && DUMMY=1 || DUMMY=0
|
[ "${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"
|
[ ${DUMMY} -eq 1 ] && MSG+="\Z1"
|
||||||
MSG+="${PORT}\Zn "
|
MSG+="${PORT}\Zn "
|
||||||
NUMPORTS=$((${NUMPORTS}+1))
|
NUMPORTS=$((${NUMPORTS}+1))
|
||||||
done < <(echo ${!HOSTPORTS[@]} | tr ' ' '\n' | sort -n)
|
done < <(echo ${!HOSTPORTS[@]} | tr ' ' '\n' | sort -n)
|
||||||
MSG+="\n"
|
MSG+="\n"
|
||||||
DiskIdxMap+=`printf '%02x' ${ATTACHTPORTS}`
|
[ ${ATTACHTIDX} -gt 0 ] && DiskIdxMap+=`printf '%02x' ${ATTACHTNUM}` || DiskIdxMap+="ff"
|
||||||
|
ATTACHTNUM=$((${ATTACHTNUM}+${ATTACHTIDX}))
|
||||||
done
|
done
|
||||||
MSG+="`printf "$(TEXT "\nTotal of ports: %s\n")" "${NUMPORTS}"`"
|
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.")"
|
MSG+="$(TEXT "\nPorts with color \Z1red\Zn as DUMMY, color \Z2\Zbgreen\Zn has drive connected.")"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user