mirror of
https://git.yoctoproject.org/poky
synced 2026-05-08 17:19:20 +00:00
dhclient: not always skip the nfsroot interface
Don't skip the nfsroot interface when use dhcp to get the address for nfsroot interface as the nfsroot interface may need dhclient to renew the lease. (From OE-Core rev: 27aec88c2ff4588acacadbe1cd61d7ce233fc817) Signed-off-by: Mingli Yu <mingli.yu@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
4882a93566
commit
5badcf8168
@@ -1,5 +1,19 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Add an initial /var/lib/dhcp/dhclient.leases to make
|
||||
# sure the IP which dhclient try to renew is the same
|
||||
# with the IP which kernel got from dhcp server during
|
||||
# boot
|
||||
update_dhclient_leases()
|
||||
{
|
||||
local addr=$1
|
||||
local interface=$2
|
||||
echo "lease {" >> /var/lib/dhcp/dhclient.leases
|
||||
echo " interface \"${addr}\";" >> /var/lib/dhcp/dhclient.leases
|
||||
echo " fixed-address ${interface:0:-3};" >> /var/lib/dhcp/dhclient.leases
|
||||
echo "}" >> /var/lib/dhcp/dhclient.leases
|
||||
}
|
||||
|
||||
# In case the interface is used for nfs, skip it.
|
||||
nfsroot=0
|
||||
interfaces=""
|
||||
@@ -19,6 +33,7 @@ while read dev mtpt fstype rest; do
|
||||
done
|
||||
exec 0<&9 9<&-
|
||||
|
||||
|
||||
if [ $nfsroot -eq 0 ]; then
|
||||
interfaces="$INTERFACES"
|
||||
else
|
||||
@@ -27,7 +42,16 @@ else
|
||||
fi
|
||||
for i in $INTERFACES; do
|
||||
if test "x$i" = "x$nfs_iface"; then
|
||||
echo "dhclient skipping nfsroot interface $i"
|
||||
interface_addr=`ip -4 address show $nfs_iface | grep 'inet '|sed 's/.*inet \(\S\+\).*/\1/'`
|
||||
if [ "x$interface_addr" != "x" ] && cat /proc/cmdline | grep "ip=dhcp" > /dev/null ; then
|
||||
# use to renew lease if needed
|
||||
interfaces="$interfaces $i"
|
||||
# use to update /var/lib/dhcp/dhclient.leases if needed
|
||||
# when the ip got by kernel, we need use dhclient to renew the ip
|
||||
update_dhclient_leases $nfs_iface $interface_addr
|
||||
else
|
||||
echo "dhclient skipping nfsroot interface $i"
|
||||
fi
|
||||
else
|
||||
interfaces="$interfaces $i"
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user