mirror of
https://github.com/RROrg/rr.git
synced 2025-06-21 05:51:05 +08:00
add 'no set macs' option
This commit is contained in:
parent
92b9f6b60e
commit
37fa4c45d0
@ -68,7 +68,7 @@ fi
|
||||
declare -A CMDLINE
|
||||
|
||||
# Fixed values
|
||||
#CMDLINE['netif_num']=0
|
||||
CMDLINE['netif_num']=0
|
||||
# Automatic values
|
||||
CMDLINE['syno_hw_version']="${MODEL}"
|
||||
[ -z "${VID}" ] && VID="0x0000" # Sanity check
|
||||
@ -95,20 +95,26 @@ if [ "${BUS}" = "ata" ]; then
|
||||
DOM="`readModelKey "${MODEL}" "dom"`"
|
||||
fi
|
||||
|
||||
# Validate netif_num
|
||||
MACS=()
|
||||
for N in `seq 1 8`; do # Currently, only up to 8 are supported. (<==> menu.sh L396, <==> lkm: MAX_NET_IFACES)
|
||||
[ -n "${CMDLINE["mac${N}"]}" ] && MACS+=(${CMDLINE["mac${N}"]})
|
||||
done
|
||||
NETIF_NUM=${#MACS[*]}
|
||||
NETRL_NUM=`ls /sys/class/net/ | grep eth | wc -l` # real network cards amount
|
||||
if [ ${NETIF_NUM} -eq 0 ]; then
|
||||
echo -e "\033[1;33m*** `printf "$(TEXT "Detected %s network cards, but No MACs were customized, they will use the original MACs. May affect account related functions.")" "${NETRL_NUM}"` ***\033[0m"
|
||||
NOTSETMACS="`readConfigKey "notsetmacs" "${USER_CONFIG_FILE}"`"
|
||||
if [ "${NOTSETMACS}" = "true" ]; then
|
||||
for N in `seq 1 8`; do # Currently, only up to 8 are supported. (<==> menu.sh L396, <==> lkm: MAX_NET_IFACES)
|
||||
[ -n "${CMDLINE["mac${N}"]}" ] && unset CMDLINE["mac${N}"]
|
||||
done
|
||||
unset CMDLINE['netif_num']
|
||||
echo -e "\033[1;33m*** `printf "$(TEXT "Not set macs is enabled.")"` ***\033[0m"
|
||||
else
|
||||
# Validate netif_num
|
||||
MACS=()
|
||||
for N in `seq 1 8`; do # Currently, only up to 8 are supported. (<==> menu.sh L396, <==> lkm: MAX_NET_IFACES)
|
||||
[ -n "${CMDLINE["mac${N}"]}" ] && MACS+=(${CMDLINE["mac${N}"]})
|
||||
done
|
||||
NETIF_NUM=${#MACS[*]}
|
||||
# set netif_num to custom mac amount, netif_num must be equal to the MACX amount, otherwise the kernel will panic.
|
||||
CMDLINE["netif_num"]=${NETIF_NUM} # The current original CMDLINE['netif_num'] is no longer in use, Consider deleting.
|
||||
# real network cards amount
|
||||
NETRL_NUM=`ls /sys/class/net/ | grep eth | wc -l`
|
||||
if [ ${NETIF_NUM} -le ${NETRL_NUM} ]; then
|
||||
echo -e "\033[1;33m*** `printf "$(TEXT "Detected %s network cards, but only %s MACs were customized, the rest will use the original MACs.")" "${NETRL_NUM}" "${CMDLINE["netif_num"]}"` ***\033[0m"
|
||||
echo -e "\033[1;33m*** `printf "$(TEXT "Detected %s network cards, %s MACs were customized, the rest will use the original MACs.")" "${NETRL_NUM}" "${CMDLINE["netif_num"]}"` ***\033[0m"
|
||||
ETHX=(`ls /sys/class/net/ | grep eth`) # real network cards list
|
||||
for N in `seq $(expr ${NETIF_NUM} + 1) ${NETRL_NUM}`; do
|
||||
MACR="`cat /sys/class/net/${ETHX[$(expr ${N} - 1)]}/address | sed 's/://g'`"
|
||||
@ -121,7 +127,6 @@ else
|
||||
CMDLINE["netif_num"]=${NETRL_NUM}
|
||||
fi
|
||||
fi
|
||||
|
||||
# Prepare command line
|
||||
CMDLINE_LINE=""
|
||||
grep -q "force_junior" /proc/cmdline && CMDLINE_LINE+="force_junior "
|
||||
@ -149,8 +154,9 @@ if [ "${DIRECT}" = "true" ]; then
|
||||
reboot
|
||||
exit 0
|
||||
else
|
||||
sleep 1
|
||||
ETHX=(`ls /sys/class/net/ | grep eth`) # real network cards list
|
||||
echo "`printf "$(TEXT "Detected %s network cards, Waiting IP.(For reference only, not absolute.)")" "${#ETHX[@]}"`"
|
||||
echo "`printf "$(TEXT "Detected %s network cards, Waiting IP.(For reference only)")" "${#ETHX[@]}"`"
|
||||
for N in $(seq 0 $(expr ${#ETHX[@]} - 1)); do
|
||||
COUNT=0
|
||||
DRIVER=`ls -ld /sys/class/net/${ETHX[${N}]}/device/driver 2>/dev/null | awk -F '/' '{print $NF}'`
|
||||
|
@ -76,6 +76,7 @@ if [ ! -f "${USER_CONFIG_FILE}" ]; then
|
||||
touch "${USER_CONFIG_FILE}"
|
||||
writeConfigKey "lkm" "prod" "${USER_CONFIG_FILE}"
|
||||
writeConfigKey "directboot" "false" "${USER_CONFIG_FILE}"
|
||||
writeConfigKey "notsetmacs" "false" "${USER_CONFIG_FILE}"
|
||||
writeConfigKey "model" "" "${USER_CONFIG_FILE}"
|
||||
writeConfigKey "build" "" "${USER_CONFIG_FILE}"
|
||||
writeConfigKey "sn" "" "${USER_CONFIG_FILE}"
|
||||
@ -175,20 +176,21 @@ fi
|
||||
echo "`printf "$(TEXT "Detected %s network cards, Waiting IP.")" "${#ETHX[@]}"`"
|
||||
for N in $(seq 0 $(expr ${#ETHX[@]} - 1)); do
|
||||
COUNT=0
|
||||
echo -en "${ETHX[${N}]}: "
|
||||
DRIVER=`ls -ld /sys/class/net/${ETHX[${N}]}/device/driver 2>/dev/null | awk -F '/' '{print $NF}'`
|
||||
echo -en "${ETHX[${N}]}(${DRIVER}): "
|
||||
while true; do
|
||||
if [ -z "`ip link show ${ETHX[${N}]} | grep 'UP'`" ]; then
|
||||
echo -en "\r${ETHX[${N}]}: $(TEXT "DOWN")\n"
|
||||
echo -en "\r${ETHX[${N}]}(${DRIVER}): $(TEXT "DOWN")\n"
|
||||
break
|
||||
fi
|
||||
if [ ${COUNT} -eq 30 ]; then
|
||||
echo -en "\r${ETHX[${N}]}: $(TEXT "ERROR")\n"
|
||||
echo -en "\r${ETHX[${N}]}(${DRIVER}): $(TEXT "ERROR")\n"
|
||||
break
|
||||
fi
|
||||
COUNT=$((${COUNT}+1))
|
||||
IP=`ip route show dev ${ETHX[${N}]} 2>/dev/null | sed -n 's/.* via .* src \(.*\) metric .*/\1/p'`
|
||||
if [ -n "${IP}" ]; then
|
||||
echo -en "\r${ETHX[${N}]}: `printf "$(TEXT "Access \033[1;34mhttp://%s:7681\033[0m to configure the loader via web terminal.")" "${IP}"`\n"
|
||||
echo -en "\r${ETHX[${N}]}(${DRIVER}): `printf "$(TEXT "Access \033[1;34mhttp://%s:7681\033[0m to configure the loader via web terminal.")" "${IP}"`\n"
|
||||
break
|
||||
fi
|
||||
echo -n "."
|
||||
|
@ -26,6 +26,7 @@ LAYOUT="`readConfigKey "layout" "${USER_CONFIG_FILE}"`"
|
||||
KEYMAP="`readConfigKey "keymap" "${USER_CONFIG_FILE}"`"
|
||||
LKM="`readConfigKey "lkm" "${USER_CONFIG_FILE}"`"
|
||||
DIRECTBOOT="`readConfigKey "directboot" "${USER_CONFIG_FILE}"`"
|
||||
NOTSETMACS="`readConfigKey "notsetmacs" "${USER_CONFIG_FILE}"`"
|
||||
SN="`readConfigKey "sn" "${USER_CONFIG_FILE}"`"
|
||||
|
||||
###############################################################################
|
||||
@ -879,6 +880,7 @@ function advancedMenu() {
|
||||
if loaderIsConfigured; then
|
||||
echo "q \"$(TEXT "Switch direct boot:") \Z4${DIRECTBOOT}\Zn\"" >> "${TMP_PATH}/menu"
|
||||
fi
|
||||
echo "m \"$(TEXT "Switch not set MACs:") \Z4${NOTSETMACS}\Zn\"" >> "${TMP_PATH}/menu"
|
||||
echo "u \"$(TEXT "Edit user config file manually")\"" >> "${TMP_PATH}/menu"
|
||||
echo "t \"$(TEXT "Try to recovery a DSM installed system")\"" >> "${TMP_PATH}/menu"
|
||||
echo "s \"$(TEXT "Show SATA(s) # ports and drives")\"" >> "${TMP_PATH}/menu"
|
||||
@ -913,6 +915,10 @@ function advancedMenu() {
|
||||
writeConfigKey "directboot" "${DIRECTBOOT}" "${USER_CONFIG_FILE}"
|
||||
NEXT="e"
|
||||
;;
|
||||
m) [ "${NOTSETMACS}" = "false" ] && NOTSETMACS='true' || NOTSETMACS='false'
|
||||
writeConfigKey "notsetmacs" "${NOTSETMACS}" "${USER_CONFIG_FILE}"
|
||||
NEXT="e"
|
||||
;;
|
||||
u) editUserConfig; NEXT="e" ;;
|
||||
t) tryRecoveryDSM ;;
|
||||
s) MSG=""
|
||||
|
Loading…
x
Reference in New Issue
Block a user