diff --git a/files/initrd/opt/arc/arc.sh b/files/initrd/opt/arc/arc.sh index 2b5dcd18..3bca7044 100755 --- a/files/initrd/opt/arc/arc.sh +++ b/files/initrd/opt/arc/arc.sh @@ -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}" diff --git a/files/initrd/opt/arc/boot.sh b/files/initrd/opt/arc/boot.sh index 069dc78c..37b57c29 100755 --- a/files/initrd/opt/arc/boot.sh +++ b/files/initrd/opt/arc/boot.sh @@ -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." diff --git a/files/initrd/opt/arc/init.sh b/files/initrd/opt/arc/init.sh index 4bbfdf8c..4e81bd17 100755 --- a/files/initrd/opt/arc/init.sh +++ b/files/initrd/opt/arc/init.sh @@ -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" diff --git a/files/initrd/opt/arc/ramdisk-patch.sh b/files/initrd/opt/arc/ramdisk-patch.sh index ad132bc6..053d459b 100755 --- a/files/initrd/opt/arc/ramdisk-patch.sh +++ b/files/initrd/opt/arc/ramdisk-patch.sh @@ -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