mirror of
https://github.com/RROrg/rr.git
synced 2025-06-21 05:51:05 +08:00
fix setStaticIP
This commit is contained in:
parent
8feb56926e
commit
ed002e1866
@ -169,6 +169,10 @@ if echo "purley broadwellnkv2" | grep -wq "${PLATFORM}"; then
|
|||||||
CMDLINE["SASmodel"]="1"
|
CMDLINE["SASmodel"]="1"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
while IFS=': ' read KEY VALUE; do
|
||||||
|
[ -n "${KEY}" ] && CMDLINE["network.${KEY}"]="${VALUE}"
|
||||||
|
done <<<$(readConfigMap "network" "${USER_CONFIG_FILE}")
|
||||||
|
|
||||||
while IFS=': ' read KEY VALUE; do
|
while IFS=': ' read KEY VALUE; do
|
||||||
[ -n "${KEY}" ] && CMDLINE["${KEY}"]="${VALUE}"
|
[ -n "${KEY}" ] && CMDLINE["${KEY}"]="${VALUE}"
|
||||||
done <<<$(readConfigMap "cmdline" "${USER_CONFIG_FILE}")
|
done <<<$(readConfigMap "cmdline" "${USER_CONFIG_FILE}")
|
||||||
|
@ -85,7 +85,16 @@ if [ ! "LOCALBUILD" = "${LOADER_DISK}" ]; then
|
|||||||
MACR="$(cat /sys/class/net/${ETH}/address 2>/dev/null | sed 's/://g')"
|
MACR="$(cat /sys/class/net/${ETH}/address 2>/dev/null | sed 's/://g')"
|
||||||
IPR="$(readConfigKey "network.${MACR}" "${USER_CONFIG_FILE}")"
|
IPR="$(readConfigKey "network.${MACR}" "${USER_CONFIG_FILE}")"
|
||||||
if [ -n "${IPR}" ]; then
|
if [ -n "${IPR}" ]; then
|
||||||
ip addr add ${IPC}/24 dev ${ETH}
|
IFS='/' read -r -a IPRA <<<"$IPR"
|
||||||
|
ip addr flush dev $ETH
|
||||||
|
ip addr add ${IPRA[0]}/${IPRA[1]:-"255.255.255.0"} dev $ETH
|
||||||
|
if [ -n "${IPRA[2]}" ]; then
|
||||||
|
ip route add default via ${IPRA[2]} dev $ETH
|
||||||
|
fi
|
||||||
|
if [ -n "${IPRA[3]:-${IPRA[2]}}" ]; then
|
||||||
|
sed -i "/nameserver ${IPRA[3]:-${IPRA[2]}}/d" /etc/resolv.conf
|
||||||
|
echo "nameserver ${IPRA[3]:-${IPRA[2]}}" >>/etc/resolv.conf
|
||||||
|
fi
|
||||||
sleep 1
|
sleep 1
|
||||||
fi
|
fi
|
||||||
[ "${ETH::3}" = "eth" ] && ethtool -s ${ETH} wol g 2>/dev/null || true
|
[ "${ETH::3}" = "eth" ] && ethtool -s ${ETH} wol g 2>/dev/null || true
|
||||||
|
@ -1488,46 +1488,53 @@ function editGrubCfg() {
|
|||||||
###############################################################################
|
###############################################################################
|
||||||
# Set static IP
|
# Set static IP
|
||||||
function setStaticIP() {
|
function setStaticIP() {
|
||||||
MSG="$(TEXT "Temporary IP: (UI will not refresh)")"
|
|
||||||
ITEMS=""
|
|
||||||
IDX=0
|
|
||||||
ETHX=$(ls /sys/class/net/ 2>/dev/null | grep -v lo)
|
ETHX=$(ls /sys/class/net/ 2>/dev/null | grep -v lo)
|
||||||
for ETH in ${ETHX}; do
|
for ETH in ${ETHX}; do
|
||||||
[ ${IDX} -gt 7 ] && break # Currently, only up to 8 are supported. (<==> boot.sh L96, <==> lkm: MAX_NET_IFACES)
|
|
||||||
IDX=$((${IDX} + 1))
|
|
||||||
MACR="$(cat /sys/class/net/${ETH}/address 2>/dev/null | sed 's/://g')"
|
MACR="$(cat /sys/class/net/${ETH}/address 2>/dev/null | sed 's/://g')"
|
||||||
IPR="$(readConfigKey "network.${MACR}" "${USER_CONFIG_FILE}")"
|
IPR="$(readConfigKey "network.${MACR}" "${USER_CONFIG_FILE}")"
|
||||||
ITEMS+="${ETH}(${MACR}) ${IDX} 1 ${IPR:-\"\"} ${IDX} 22 36 16 "
|
IFS='/' read -r -a IPRA <<<"$IPR"
|
||||||
done
|
|
||||||
echo ${ITEMS} >"${TMP_PATH}/opts"
|
MSG="$(TEXT "Set to ${ETH}(${MACR}): (Delete if empty)")"
|
||||||
DIALOG --title "$(TEXT "Advanced")" \
|
while true; do
|
||||||
--form "${MSG}" 10 60 ${IDX} --file "${TMP_PATH}/opts" \
|
DIALOG --title "$(TEXT "Advanced")" \
|
||||||
2>"${TMP_PATH}/resp"
|
--form "${MSG}" 10 60 4 "address" 1 1 "${IPRA[0]}" 1 9 36 16 "netmask" 2 1 "${IPRA[1]}" 2 9 36 16 "gateway" 3 1 "${IPRA[2]}" 3 9 36 16 "dns" 4 1 "${IPRA[3]}" 4 9 36 16 \
|
||||||
[ $? -ne 0 ] && return
|
2>"${TMP_PATH}/resp"
|
||||||
(
|
RET=$?
|
||||||
IDX=1
|
case ${RET} in
|
||||||
for ETH in ${ETHX}; do
|
0) # ok-button
|
||||||
MACR="$(cat /sys/class/net/${ETH}/address 2>/dev/null | sed 's/://g')"
|
DIALOG --title "$(TEXT "Advanced")" \
|
||||||
IPR="$(readConfigKey "network.${MACR}" "${USER_CONFIG_FILE}")"
|
--infobox "$(TEXT "Setting IP ...")" 0 0
|
||||||
IPC="$(cat "${TMP_PATH}/resp" | sed -n "${IDX}p")"
|
address="$(cat "${TMP_PATH}/resp" | sed -n '1p')"
|
||||||
if [ -n "${IPC}" -a "${IPR}" != "${IPC}" ]; then
|
netmask="$(cat "${TMP_PATH}/resp" | sed -n '2p')"
|
||||||
if ! echo "${IPC}" | grep -q "/"; then
|
gateway="$(cat "${TMP_PATH}/resp" | sed -n '3p')"
|
||||||
IPC="${IPC}/24"
|
dnsname="$(cat "${TMP_PATH}/resp" | sed -n '4p')"
|
||||||
|
if [ -z "${address}" ]; then
|
||||||
|
deleteConfigKey "network.${MACR}" "${USER_CONFIG_FILE}"
|
||||||
|
else
|
||||||
|
ip addr flush dev $ETH
|
||||||
|
ip addr add ${address}/${netmask:-"255.255.255.0"} dev $ETH
|
||||||
|
if [ -n "${gateway}" ]; then
|
||||||
|
ip route add default via ${gateway} dev $ETH
|
||||||
|
fi
|
||||||
|
if [ -n "${dnsname:-${gateway}}" ]; then
|
||||||
|
sed -i "/nameserver ${dnsname:-${gateway}}/d" /etc/resolv.conf
|
||||||
|
echo "nameserver ${dnsname:-${gateway}}" >>/etc/resolv.conf
|
||||||
|
fi
|
||||||
|
writeConfigKey "network.${MACR}" "${address}/${netmask}/${gateway}/${dnsname}" "${USER_CONFIG_FILE}"
|
||||||
|
sleep 1
|
||||||
fi
|
fi
|
||||||
ip addr add ${IPC} dev ${ETH}
|
touch ${PART1_PATH}/.build
|
||||||
writeConfigKey "network.${MACR}" "${IPC}" "${USER_CONFIG_FILE}"
|
break
|
||||||
sleep 1
|
;;
|
||||||
elif [ -z "${IPC}" ]; then
|
1) # cancel-button
|
||||||
deleteConfigKey "network.${MACR}" "${USER_CONFIG_FILE}"
|
break
|
||||||
fi
|
;;
|
||||||
IDX=$((${IDX} + 1))
|
255) # ESC
|
||||||
|
break 2
|
||||||
|
;;
|
||||||
|
esac
|
||||||
done
|
done
|
||||||
sleep 1
|
done
|
||||||
IP="$(getIP)"
|
|
||||||
[[ "${IP}" =~ ^169\.254\..* ]] && IP=""
|
|
||||||
) 2>&1 | DIALOG --title "$(TEXT "Advanced")" \
|
|
||||||
--progressbox "$(TEXT "Setting IP ...")" 20 100
|
|
||||||
return
|
|
||||||
}
|
}
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
@ -3506,7 +3513,7 @@ else
|
|||||||
echo "x \"$(TEXT "Reboot to RR")\"" >>"${TMP_PATH}/menu"
|
echo "x \"$(TEXT "Reboot to RR")\"" >>"${TMP_PATH}/menu"
|
||||||
echo "y \"$(TEXT "Reboot to Recovery")\"" >>"${TMP_PATH}/menu"
|
echo "y \"$(TEXT "Reboot to Recovery")\"" >>"${TMP_PATH}/menu"
|
||||||
echo "z \"$(TEXT "Reboot to Junior")\"" >>"${TMP_PATH}/menu"
|
echo "z \"$(TEXT "Reboot to Junior")\"" >>"${TMP_PATH}/menu"
|
||||||
if efibootmgr | grep -q "^Boot0000" ; then
|
if efibootmgr | grep -q "^Boot0000"; then
|
||||||
echo "b \"$(TEXT "Reboot to BIOS")\"" >>"${TMP_PATH}/menu"
|
echo "b \"$(TEXT "Reboot to BIOS")\"" >>"${TMP_PATH}/menu"
|
||||||
fi
|
fi
|
||||||
echo "s \"$(TEXT "Back to shell")\"" >>"${TMP_PATH}/menu"
|
echo "s \"$(TEXT "Back to shell")\"" >>"${TMP_PATH}/menu"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user