summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYi Zhao <yi.zhao@windriver.com>2021-07-27 12:22:44 +0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2021-08-10 11:14:11 +0100
commit0a7e7c888295238d3734f5a85b3e92c35ca7969f (patch)
tree4d893b35671749b5e7961bdb686c298d98b0b231
parent6a4ccf65e84b0b7e3da3ae4e8ddc7b2151d7ef19 (diff)
downloadpoky-0a7e7c888295238d3734f5a85b3e92c35ca7969f.tar.gz
ifupdown: added -1 option to dhclient for dhcpv6
When dhclient is used with ifupdown and in the /etc/network/interfaces file is something like e.g. "iface eth0 inet6 dhcp" the system does not boot but hangs at the after dhcp configuration of IPv4 at the stage where IPv6 should be configured. The reason seems to be, that ifupdown calls the dhclient in a blocking way which leads to a permanent block of the boot when no DHCPv6 server is available. A similar bug in Redhat: https://bugzilla.redhat.com/show_bug.cgi?id=585047 [YOCTO #14117] (From OE-Core rev: 6d8bf12bffa146cb51153a79a4b96b05298c4fbf) Signed-off-by: Yi Zhao <yi.zhao@windriver.com> Signed-off-by: Steve Sakoman <steve@sakoman.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/recipes-core/ifupdown/files/0001-inet6.defn-Added-1-option-to-dhclient-on-upping-an-i.patch65
-rw-r--r--meta/recipes-core/ifupdown/ifupdown_0.8.35.bb1
2 files changed, 66 insertions, 0 deletions
diff --git a/meta/recipes-core/ifupdown/files/0001-inet6.defn-Added-1-option-to-dhclient-on-upping-an-i.patch b/meta/recipes-core/ifupdown/files/0001-inet6.defn-Added-1-option-to-dhclient-on-upping-an-i.patch
new file mode 100644
index 0000000000..e374d8ca59
--- /dev/null
+++ b/meta/recipes-core/ifupdown/files/0001-inet6.defn-Added-1-option-to-dhclient-on-upping-an-i.patch
@@ -0,0 +1,65 @@
1From e2263b58d7733835355d7b46c3caa96d911a4717 Mon Sep 17 00:00:00 2001
2From: Simon Schwarz <simon.schwarz@infoteam.de>
3Date: Fri, 6 Nov 2020 08:53:20 +0100
4Subject: [PATCH] inet6.defn: Added -1 option to dhclient on upping an
5 interface
6
7This prevents hangs on startup when no server is available and dhcpv6 is used
8
9Upstream-Status: Pending
10
11Signed-off-by: Simon Schwarz <simon.schwarz@infoteam.de>
12Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
13---
14 inet6.defn | 12 ++++++------
15 1 file changed, 6 insertions(+), 6 deletions(-)
16
17diff --git a/inet6.defn b/inet6.defn
18index 73dce24..25022e3 100644
19--- a/inet6.defn
20+++ b/inet6.defn
21@@ -29,9 +29,9 @@ method auto
22 if (var_set("accept_ra", ifd) && !var_true("accept_ra", ifd))
23 /sbin/ip link set dev %iface% up
24 /lib/ifupdown/wait-for-ll6.sh if (var_true("dhcp", ifd) && execable("/lib/ifupdown/wait-for-ll6.sh"))
25- /sbin/dhclient -6 -v -P -pf /run/dhclient6.%iface%.pid -lf /var/lib/dhcp/dhclient6.%iface%.leases -I -df /var/lib/dhcp/dhclient.%iface%.leases %iface% \
26+ /sbin/dhclient -6 -1 -v -P -pf /run/dhclient6.%iface%.pid -lf /var/lib/dhcp/dhclient6.%iface%.leases -I -df /var/lib/dhcp/dhclient.%iface%.leases %iface% \
27 if (var_true("dhcp", ifd) && execable("/sbin/dhclient") && var_true("request_prefix", ifd))
28- /sbin/dhclient -6 -v -S -pf /run/dhclient6.%iface%.pid -lf /var/lib/dhcp/dhclient6.%iface%.leases -I -df /var/lib/dhcp/dhclient.%iface%.leases %iface% \
29+ /sbin/dhclient -6 -1 -v -S -pf /run/dhclient6.%iface%.pid -lf /var/lib/dhcp/dhclient6.%iface%.leases -I -df /var/lib/dhcp/dhclient.%iface%.leases %iface% \
30 elsif (var_true("dhcp", ifd) && execable("/sbin/dhclient"))
31 echo 'No DHCPv6 client software found!' >&2; false \
32 elsif (var_true("dhcp", ifd))
33@@ -154,9 +154,9 @@ method dhcp
34 if (var_set("accept_ra", ifd) && !var_true("accept_ra", ifd))
35 /sbin/ip link set dev %iface% [[address %hwaddress%]] up
36 /lib/ifupdown/wait-for-ll6.sh if (execable("/lib/ifupdown/wait-for-ll6.sh"))
37- /sbin/dhclient -6 -v -pf /run/dhclient6.%iface%.pid -lf /var/lib/dhcp/dhclient6.%iface%.leases -I -P -N -df /var/lib/dhcp/dhclient.%iface%.leases %iface% \
38+ /sbin/dhclient -6 -1 -v -pf /run/dhclient6.%iface%.pid -lf /var/lib/dhcp/dhclient6.%iface%.leases -I -P -N -df /var/lib/dhcp/dhclient.%iface%.leases %iface% \
39 if (execable("/sbin/dhclient") && var_true("request_prefix", ifd))
40- /sbin/dhclient -6 -v -pf /run/dhclient6.%iface%.pid -lf /var/lib/dhcp/dhclient6.%iface%.leases -I -df /var/lib/dhcp/dhclient.%iface%.leases %iface% \
41+ /sbin/dhclient -6 -1 -v -pf /run/dhclient6.%iface%.pid -lf /var/lib/dhcp/dhclient6.%iface%.leases -I -df /var/lib/dhcp/dhclient.%iface%.leases %iface% \
42 elsif (execable("/sbin/dhclient"))
43 echo 'No DHCPv6 client software found!' >&2; false \
44 elsif (1)
45@@ -325,7 +325,7 @@ method dhcp
46
47 up
48 /sbin/ifconfig %iface% [[link %hwaddress%]] up
49- /sbin/dhclient -6 -pf /run/dhclient6.%iface%.pid -lf /var/lib/dhcp/dhclient6.%iface%.leases -I -df /var/lib/dhcp/dhclient.%iface%.leases %iface% \
50+ /sbin/dhclient -6 -1 -pf /run/dhclient6.%iface%.pid -lf /var/lib/dhcp/dhclient6.%iface%.leases -I -df /var/lib/dhcp/dhclient.%iface%.leases %iface% \
51 if (execable("/sbin/dhclient"))
52 echo 'No DHCPv6 client software found!' >&2; false \
53 elsif (1)
54@@ -397,7 +397,7 @@ method dhcp
55 up
56 [[Warning: Option hwaddress: %hwaddress% not yet supported]]
57 inetutils-ifconfig --interface %iface% --up
58- /sbin/dhclient -6 -pf /run/dhclient6.%iface///.%.pid -lf /var/lib/dhcp/dhclient6.%iface///.%.leases -I -df /var/lib/dhcp/dhclient.%iface///.%.leases %iface% \
59+ /sbin/dhclient -6 -1 -pf /run/dhclient6.%iface///.%.pid -lf /var/lib/dhcp/dhclient6.%iface///.%.leases -I -df /var/lib/dhcp/dhclient.%iface///.%.leases %iface% \
60 if (execable("/sbin/dhclient"))
61 echo 'No DHCPv6 client software found!' >&2; false \
62 elsif (1)
63--
642.17.1
65
diff --git a/meta/recipes-core/ifupdown/ifupdown_0.8.35.bb b/meta/recipes-core/ifupdown/ifupdown_0.8.35.bb
index ae175848b7..16807eb675 100644
--- a/meta/recipes-core/ifupdown/ifupdown_0.8.35.bb
+++ b/meta/recipes-core/ifupdown/ifupdown_0.8.35.bb
@@ -12,6 +12,7 @@ SRC_URI = "git://salsa.debian.org/debian/ifupdown.git;protocol=https \
12 file://99_network \ 12 file://99_network \
13 file://0001-Define-FNM_EXTMATCH-for-musl.patch \ 13 file://0001-Define-FNM_EXTMATCH-for-musl.patch \
14 file://0001-Makefile-do-not-use-dpkg-for-determining-OS-type.patch \ 14 file://0001-Makefile-do-not-use-dpkg-for-determining-OS-type.patch \
15 file://0001-inet6.defn-Added-1-option-to-dhclient-on-upping-an-i.patch \
15 file://run-ptest \ 16 file://run-ptest \
16 ${@bb.utils.contains('DISTRO_FEATURES', 'ptest', 'file://tweak-ptest-script.patch', '', d)} \ 17 ${@bb.utils.contains('DISTRO_FEATURES', 'ptest', 'file://tweak-ptest-script.patch', '', d)} \
17 " 18 "