tree: only enable staticip for loader, not for dsm.

Signed-off-by: AuxXxilium <info@auxxxilium.tech>
This commit is contained in:
AuxXxilium
2024-03-02 00:08:04 +01:00
parent 572a7ac370
commit febc6c2c62
4 changed files with 62 additions and 87 deletions

View File

@@ -1974,15 +1974,16 @@ function sysinfo() {
TEXT+="\n\Z4> Network: ${NIC} NIC\Zn"
for ETH in ${ETHX}; do
IP=""
STATICIP="$(readConfigKey "static.${ETH}" "${USER_CONFIG_FILE}")"
DRIVER=$(ls -ld /sys/class/net/${ETH}/device/driver 2>/dev/null | awk -F '/' '{print $NF}')
MAC="$(cat /sys/class/net/${ETH}/address | sed 's/://g')"
COUNT=0
while true; do
IP="$(getIP ${ETH})"
if [ "${STATICIP}" = "true" ]; then
IP="$(readConfigKey "ip.${ETH}" "${USER_CONFIG_FILE}")"
MSG="STATIC"
else
IP="$(getIP ${ETH})"
MSG="DHCP"
fi
if [ -n "${IP}" ]; then
@@ -2188,15 +2189,16 @@ function fullsysinfo() {
TEXT+="\nNetwork: ${NIC} NIC"
for ETH in ${ETHX}; do
IP=""
STATICIP="$(readConfigKey "static.${ETH}" "${USER_CONFIG_FILE}")"
DRIVER=$(ls -ld /sys/class/net/${ETH}/device/driver 2>/dev/null | awk -F '/' '{print $NF}')
MAC="$(cat /sys/class/net/${ETH}/address | sed 's/://g')"
COUNT=0
while true; do
IP="$(getIP ${ETH})"
if [ "${STATICIP}" = "true" ]; then
IP="$(readConfigKey "ip.${ETH}" "${USER_CONFIG_FILE}")"
MSG="STATIC"
else
IP="$(getIP ${ETH})"
MSG="DHCP"
fi
if [ -n "${IP}" ]; then
@@ -2434,65 +2436,61 @@ function credits() {
}
###############################################################################
# allow setting Static IP for DSM
# allow setting Static IP for Loader
function staticIPMenu() {
# Get Amount of NIC
ETHX=$(ls /sys/class/net/ | grep -v lo) || true
if findAndMountDSMRoot; then
for ETH in ${ETHX}; do
BOOTPROTO=$(cat "${DSMROOT_PATH}/etc/sysconfig/network-scripts/ifcfg-${ETH}" | grep BOOTPROTO | awk -F'=' '{print $2}')
DRIVER=$(ls -ld /sys/class/net/${ETH}/device/driver 2>/dev/null | awk -F '/' '{print $NF}')
TEXT=""
TEXT+="This feature will allow you to set a static IP for your NIC.\n"
TEXT+="Actual Settings are:\n"
TEXT+="\nNIC: ${ETH} (${DRIVER})\n"
TEXT+="Mode: ${BOOTPROTO}\n"
if [ "${BOOTPROTO}" = "static" ]; then
IPADDR="$(cat "${DSMROOT_PATH}/etc/sysconfig/network-scripts/ifcfg-${ETH}" | grep IPADDR | awk -F'=' '{print $2}')"
NETMASK="$(cat "${DSMROOT_PATH}/etc/sysconfig/network-scripts/ifcfg-${ETH}" | grep NETMASK | awk -F'=' '{print $2}')"
TEXT+="IP: ${IPADDR}\n"
TEXT+="NETMASK: ${NETMASK}\n"
else
IPADDR=""
NETMASK=""
fi
TEXT+=""
TEXT+="Do you want to change Config?"
dialog --backtitle "$(backtitle)" --title "DHCP/StaticIP" \
--yesno "${TEXT}" 0 0
[ $? -ne 0 ] && continue
dialog --clear --backtitle "$(backtitle)" --title "DHCP/StaticIP" \
--menu "DHCP or STATIC?" 0 0 0 \
1 "DHCP" \
2 "STATIC" \
2>"${TMP_PATH}/opts"
opts="$(<"${TMP_PATH}/opts")"
[ -z "${opts}" ] && continue
if [ ${opts} -eq 1 ]; then
writeConfigKey "static.${ETH}" "false" "${USER_CONFIG_FILE}"
elif [ ${opts} -eq 2 ]; then
dialog --backtitle "$(backtitle)" --title "DHCP/StaticIP" \
--inputbox "Type a Static IP\nEq: 192.168.0.1" 0 0 "${IPADDR}" \
2>"${TMP_PATH}/resp"
[ $? -ne 0 ] && continue
IPADDR="$(<"${TMP_PATH}/resp")"
dialog --backtitle "$(backtitle)" --title "DHCP/StaticIP" \
--inputbox "Type a Netmask\nEq: 255.255.255.0" 0 0 "${NETMASK}" \
2>"${TMP_PATH}/resp"
[ $? -ne 0 ] && continue
NETMASK="$(<"${TMP_PATH}/resp")"
writeConfigKey "ip.${ETH}" "${IPADDR}" "${USER_CONFIG_FILE}"
writeConfigKey "netmask.${ETH}" "${NETMASK}" "${USER_CONFIG_FILE}"
writeConfigKey "static.${ETH}" "true" "${USER_CONFIG_FILE}"
NETMASK=$(convert_netmask "${NETMASK}")
ip addr add ${IPADDR}/${NETMASK} dev ${ETH}
fi
done
writeConfigKey "arc.builddone" "false" "${USER_CONFIG_FILE}"
BUILDDONE="$(readConfigKey "arc.builddone" "${USER_CONFIG_FILE}")"
for ETH in ${ETHX}; do
STATIC="$(readConfigKey "static.${ETH}" "${USER_CONFIG_FILE}")"
DRIVER=$(ls -ld /sys/class/net/${ETH}/device/driver 2>/dev/null | awk -F '/' '{print $NF}')
TEXT=""
TEXT+="This Feature allow you to set a StaticIP for the Loader.\n"
TEXT+="Actual Settings are:\n"
TEXT+="\nNIC: ${ETH} (${DRIVER})\n"
TEXT+="StaticIP: ${STATIC}\n"
if [ "${STATIC}" = "true" ]; then
IPADDR="$(readConfigKey "ip.${ETH}" "${USER_CONFIG_FILE}")"
NETMASK="$(readConfigKey "netmask.${ETH}" "${USER_CONFIG_FILE}")"
TEXT+="IP: ${IPADDR}\n"
TEXT+="NETMASK: ${NETMASK}\n"
else
IPADDR=""
NETMASK=""
fi
TEXT+=""
TEXT+="Do you want to change Config?"
dialog --backtitle "$(backtitle)" --title "DHCP/StaticIP" \
--msgbox "Settings written to Config.\nWill be applied to DSM while Build." 5 40
fi
--yesno "${TEXT}" 0 0
[ $? -ne 0 ] && continue
dialog --clear --backtitle "$(backtitle)" --title "DHCP/StaticIP" \
--menu "DHCP or STATIC?" 0 0 0 \
1 "DHCP" \
2 "STATIC" \
2>"${TMP_PATH}/opts"
opts="$(<"${TMP_PATH}/opts")"
[ -z "${opts}" ] && continue
if [ ${opts} -eq 1 ]; then
writeConfigKey "static.${ETH}" "false" "${USER_CONFIG_FILE}"
elif [ ${opts} -eq 2 ]; then
dialog --backtitle "$(backtitle)" --title "DHCP/StaticIP" \
--inputbox "Type a Static IP\nEq: 192.168.0.1" 0 0 "${IPADDR}" \
2>"${TMP_PATH}/resp"
[ $? -ne 0 ] && continue
IPADDR="$(<"${TMP_PATH}/resp")"
dialog --backtitle "$(backtitle)" --title "DHCP/StaticIP" \
--inputbox "Type a Netmask\nEq: 24" 0 0 "${NETMASK}" \
2>"${TMP_PATH}/resp"
[ $? -ne 0 ] && continue
NETMASK="$(<"${TMP_PATH}/resp")"
writeConfigKey "ip.${ETH}" "${IPADDR}" "${USER_CONFIG_FILE}"
writeConfigKey "netmask.${ETH}" "${NETMASK}" "${USER_CONFIG_FILE}"
writeConfigKey "static.${ETH}" "true" "${USER_CONFIG_FILE}"
#NETMASK=$(convert_netmask "${NETMASK}")
ip addr add ${IPADDR}/${NETMASK} dev ${ETH}
fi
done
dialog --backtitle "$(backtitle)" --title "DHCP/StaticIP" \
--msgbox "Settings written and enabled.\nThis will be not applied to DSM." 5 50
}
###############################################################################
@@ -2809,7 +2807,7 @@ while true; do
echo "W \"Force USB Mount \" " >>"${TMP_PATH}/menu"
fi
echo "P \"Custom StoragePanel \" " >>"${TMP_PATH}/menu"
echo "D \"Switch DHCP/StaticIP \" " >>"${TMP_PATH}/menu"
echo "D \"Loader DHCP/StaticIP \" " >>"${TMP_PATH}/menu"
fi
if [ "${ADVOPTS}" = "true" ]; then
echo "5 \"\Z1Hide Advanced Options\Zn \" " >>"${TMP_PATH}/menu"
@@ -2915,7 +2913,6 @@ while true; do
NEXT="W"
;;
P) storagepanelMenu; NEXT="S" ;;
D) staticIPMenu; NEXT="D" ;;
# Advanced Section
5) [ "${ADVOPTS}" = "true" ] && ADVOPTS='false' || ADVOPTS='true'
ADVOPTS="${ADVOPTS}"

View File

@@ -208,22 +208,11 @@ elif [ "${DIRECTBOOT}" = "false" ]; then
echo -e " \033[1;34mDetected ${N} NIC.\033[0m \033[1;37mWaiting for Connection:\033[0m"
for ETH in ${ETHX}; do
IP=""
STATICIP="$(readConfigKey "static.${ETH}" "${USER_CONFIG_FILE}")"
DRIVER=$(ls -ld /sys/class/net/${ETH}/device/driver 2>/dev/null | awk -F '/' '{print $NF}')
COUNT=0
while true; do
ARCIP="$(readConfigKey "ip.${ETH}" "${USER_CONFIG_FILE}")"
if [[ "${STATICIP}" = "true" && -n "${ARCIP}" ]]; then
NETMASK="$(readConfigKey "netmask.${ETH}" "${USER_CONFIG_FILE}")"
IP="${ARCIP}"
NETMASK=$(convert_netmask "${NETMASK}")
[ ! -n "${NETMASK}" ] && NETMASK="16"
ip addr add ${IP}/${NETMASK} dev ${ETH}
MSG="STATIC"
else
IP="$(getIP ${ETH})"
MSG="DHCP"
fi
IP="$(getIP ${ETH})"
MSG="DHCP"
if [ -n "${IP}" ]; then
SPEED=$(ethtool ${ETH} | 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."

View File

@@ -152,7 +152,7 @@ for ETH in ${ETHX}; do
if [[ "${STATICIP}" = "true" && -n "${ARCIP}" ]]; then
NETMASK="$(readConfigKey "netmask.${ETH}" "${USER_CONFIG_FILE}")"
IP="${ARCIP}"
NETMASK=$(convert_netmask "${NETMASK}")
#NETMASK=$(convert_netmask "${NETMASK}")
[ ! -n "${NETMASK}" ] && NETMASK="16"
ip addr add ${IP}/${NETMASK} dev ${ETH}
MSG="STATIC"

View File

@@ -187,21 +187,10 @@ fi
IPV6="$(readConfigKey "arc.ipv6" "${USER_CONFIG_FILE}")"
ETHX=$(ls /sys/class/net/ | grep -v lo) || true
for ETH in ${ETHX}; do
STATICIP="$(readConfigKey "static.${ETH}" "${USER_CONFIG_FILE}")"
if [ "${STATICIP}" = "true" ]; then
IPADDR="$(readConfigKey "ip.${ETH}" "${USER_CONFIG_FILE}")"
NETMASK="$(readConfigKey "netmask.${ETH}" "${USER_CONFIG_FILE}")"
if [ "${IPV6}" = "true" ]; then
echo -e "DEVICE=${ETH}\nBOOTPROTO=static\nONBOOT=yes\nIPV6INIT=dhcp\nIPV6_ACCEPT_RA=1\nIPADDR=${IPADDR}\nNETMASK=${NETMASK}" >"${RAMDISK_PATH}/etc/sysconfig/network-scripts/ifcfg-${ETH}"
else
echo -e "DEVICE=${ETH}\nBOOTPROTO=static\nONBOOT=yes\nIPV6INIT=no\nIPADDR=${IPADDR}\nNETMASK=${NETMASK}" >"${RAMDISK_PATH}/etc/sysconfig/network-scripts/ifcfg-${ETH}"
fi
if [ "${IPV6}" = "true" ]; then
echo -e "DEVICE=${ETH}\nBOOTPROTO=dhcp\nONBOOT=yes\nIPV6INIT=dhcp\nIPV6_ACCEPT_RA=1" >"${RAMDISK_PATH}/etc/sysconfig/network-scripts/ifcfg-${ETH}"
else
if [ "${IPV6}" = "true" ]; then
echo -e "DEVICE=${ETH}\nBOOTPROTO=dhcp\nONBOOT=yes\nIPV6INIT=dhcp\nIPV6_ACCEPT_RA=1" >"${RAMDISK_PATH}/etc/sysconfig/network-scripts/ifcfg-${ETH}"
else
echo -e "DEVICE=${ETH}\nBOOTPROTO=dhcp\nONBOOT=yes\nIPV6INIT=no" >"${RAMDISK_PATH}/etc/sysconfig/network-scripts/ifcfg-${ETH}"
fi
echo -e "DEVICE=${ETH}\nBOOTPROTO=dhcp\nONBOOT=yes\nIPV6INIT=no" >"${RAMDISK_PATH}/etc/sysconfig/network-scripts/ifcfg-${ETH}"
fi
done