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
907c85edaa
commit
51c23a2c65
@ -169,6 +169,10 @@ if echo "purley broadwellnkv2" | grep -wq "${PLATFORM}"; then
|
||||
CMDLINE["SASmodel"]="1"
|
||||
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
|
||||
[ -n "${KEY}" ] && CMDLINE["${KEY}"]="${VALUE}"
|
||||
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')"
|
||||
IPR="$(readConfigKey "network.${MACR}" "${USER_CONFIG_FILE}")"
|
||||
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
|
||||
fi
|
||||
[ "${ETH::3}" = "eth" ] && ethtool -s ${ETH} wol g 2>/dev/null || true
|
||||
|
@ -1488,46 +1488,53 @@ function editGrubCfg() {
|
||||
###############################################################################
|
||||
# Set static IP
|
||||
function setStaticIP() {
|
||||
MSG="$(TEXT "Temporary IP: (UI will not refresh)")"
|
||||
ITEMS=""
|
||||
IDX=0
|
||||
ETHX=$(ls /sys/class/net/ 2>/dev/null | grep -v lo)
|
||||
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')"
|
||||
IPR="$(readConfigKey "network.${MACR}" "${USER_CONFIG_FILE}")"
|
||||
ITEMS+="${ETH}(${MACR}) ${IDX} 1 ${IPR:-\"\"} ${IDX} 22 36 16 "
|
||||
done
|
||||
echo ${ITEMS} >"${TMP_PATH}/opts"
|
||||
DIALOG --title "$(TEXT "Advanced")" \
|
||||
--form "${MSG}" 10 60 ${IDX} --file "${TMP_PATH}/opts" \
|
||||
2>"${TMP_PATH}/resp"
|
||||
[ $? -ne 0 ] && return
|
||||
(
|
||||
IDX=1
|
||||
for ETH in ${ETHX}; do
|
||||
MACR="$(cat /sys/class/net/${ETH}/address 2>/dev/null | sed 's/://g')"
|
||||
IPR="$(readConfigKey "network.${MACR}" "${USER_CONFIG_FILE}")"
|
||||
IPC="$(cat "${TMP_PATH}/resp" | sed -n "${IDX}p")"
|
||||
if [ -n "${IPC}" -a "${IPR}" != "${IPC}" ]; then
|
||||
if ! echo "${IPC}" | grep -q "/"; then
|
||||
IPC="${IPC}/24"
|
||||
IFS='/' read -r -a IPRA <<<"$IPR"
|
||||
|
||||
MSG="$(TEXT "Set to ${ETH}(${MACR}): (Delete if empty)")"
|
||||
while true; do
|
||||
DIALOG --title "$(TEXT "Advanced")" \
|
||||
--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 \
|
||||
2>"${TMP_PATH}/resp"
|
||||
RET=$?
|
||||
case ${RET} in
|
||||
0) # ok-button
|
||||
DIALOG --title "$(TEXT "Advanced")" \
|
||||
--infobox "$(TEXT "Setting IP ...")" 0 0
|
||||
address="$(cat "${TMP_PATH}/resp" | sed -n '1p')"
|
||||
netmask="$(cat "${TMP_PATH}/resp" | sed -n '2p')"
|
||||
gateway="$(cat "${TMP_PATH}/resp" | sed -n '3p')"
|
||||
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
|
||||
ip addr add ${IPC} dev ${ETH}
|
||||
writeConfigKey "network.${MACR}" "${IPC}" "${USER_CONFIG_FILE}"
|
||||
sleep 1
|
||||
elif [ -z "${IPC}" ]; then
|
||||
deleteConfigKey "network.${MACR}" "${USER_CONFIG_FILE}"
|
||||
fi
|
||||
IDX=$((${IDX} + 1))
|
||||
touch ${PART1_PATH}/.build
|
||||
break
|
||||
;;
|
||||
1) # cancel-button
|
||||
break
|
||||
;;
|
||||
255) # ESC
|
||||
break 2
|
||||
;;
|
||||
esac
|
||||
done
|
||||
sleep 1
|
||||
IP="$(getIP)"
|
||||
[[ "${IP}" =~ ^169\.254\..* ]] && IP=""
|
||||
) 2>&1 | DIALOG --title "$(TEXT "Advanced")" \
|
||||
--progressbox "$(TEXT "Setting IP ...")" 20 100
|
||||
return
|
||||
done
|
||||
}
|
||||
|
||||
###############################################################################
|
||||
@ -3506,7 +3513,7 @@ else
|
||||
echo "x \"$(TEXT "Reboot to RR")\"" >>"${TMP_PATH}/menu"
|
||||
echo "y \"$(TEXT "Reboot to Recovery")\"" >>"${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"
|
||||
fi
|
||||
echo "s \"$(TEXT "Back to shell")\"" >>"${TMP_PATH}/menu"
|
||||
|
Loading…
x
Reference in New Issue
Block a user