1 |
On Monday 01 Apr 2013 02:54:08 Philip Webb wrote: |
2 |
> I've spent a lot of today trying to fix a glitch in starting 'dhcpcd' |
3 |
> after upgrading to udev-200 ; I outlined it in a msg to gentoo-dev . |
4 |
> |
5 |
> When I tried to start my I/net connection, I got this : |
6 |
> |
7 |
> root:501 ~> dhcpcd |
8 |
> dhcpcd[831]: version 5.6.7 starting |
9 |
> ... [delay] |
10 |
> ^C |
11 |
> ... [long delay] |
12 |
> dhcpcd[831]: no interfaces have a carrier |
13 |
> dhcpcd[831]: forked to background, child pid 857 |
14 |
> |
15 |
> So having killed it, I restarted & had no problem : |
16 |
> |
17 |
> root:502 ~> dhcpcd |
18 |
> dhcpcd[866]: version 5.6.7 starting |
19 |
> dhcpcd[866]: enp5s0: sending IPv6 Router Solicitation |
20 |
> dhcpcd[866]: enp5s0: rebinding lease of 192.168.1.2 |
21 |
> dhcpcd[866]: enp5s0: acknowledged 192.168.1.2 from 192.168.1.1 |
22 |
> dhcpcd[866]: enp5s0: checking for 192.168.1.2 |
23 |
> dhcpcd[866]: enp5s0: sending IPv6 Router Solicitation |
24 |
> dhcpcd[866]: enp5s0: leased 192.168.1.2 for 86400 seconds |
25 |
> dhcpcd[866]: forked to background, child pid 884 |
26 |
> |
27 |
> Looking at /var/log/syslog , I saw : |
28 |
> |
29 |
> 13:11:16 dhcpcd[831]: version 5.6.7 starting |
30 |
> 13:12:16 klogd: r8169 0000:05:00.0: enp5s0: unable to load firmware patch |
31 |
> rtl_nic/rtl8168e-3.fw (-2) 13:12:16 klogd: r8169 0000:05:00.0: enp5s0: |
32 |
> link down |
33 |
> 13:12:16 klogd: r8169 0000:05:00.0: enp5s0: link down |
34 |
> 13:12:16 klogd: IPv6: ADDRCONF(NETDEV_UP): enp5s0: link is not ready |
35 |
> 13:12:17 dhcpcd[831]: no interfaces have a carrier |
36 |
> 13:12:17 dhcpcd[831]: forked to background, child pid 857 |
37 |
> 13:12:17 dhcpcd[857]: received SIGINT, stopping |
38 |
> 13:12:17 dhcpcd[857]: enp5s0: removing interface |
39 |
> 13:12:18 klogd: r8169 0000:05:00.0: enp5s0: link up |
40 |
> 13:12:18 klogd: IPv6: ADDRCONF(NETDEV_CHANGE): enp5s0: link becomes ready |
41 |
> 13:12:34 dhcpcd[866]: version 5.6.7 starting |
42 |
> 13:12:34 dhcpcd[866]: enp5s0: sending IPv6 Router Solicitation |
43 |
> 13:12:34 dhcpcd[866]: enp5s0: rebinding lease of 192.168.1.2 |
44 |
> 13:12:34 dhcpcd[866]: enp5s0: acknowledged 192.168.1.2 from 192.168.1.1 |
45 |
> 13:12:34 dhcpcd[866]: enp5s0: checking for 192.168.1.2 |
46 |
> 13:12:38 dhcpcd[866]: enp5s0: sending IPv6 Router Solicitation |
47 |
> 13:12:39 dhcpcd[866]: enp5s0: leased 192.168.1.2 for 86400 seconds |
48 |
> 13:12:39 dhcpcd[866]: forked to background, child pid 884 |
49 |
> |
50 |
> It seems that the new set-up with the device name created by the kernel |
51 |
> requires the firmware to be built into the kernel. |
52 |
> This is not mentioned in the recent news item. |
53 |
> |
54 |
> Google led to a Gentoo Forum thread which was unusually helpful (grin): |
55 |
> |
56 |
> http://forums.gentoo.org/viewtopic-t-899002-start-0.html |
57 |
> |
58 |
> This suggested the lines |
59 |
> |
60 |
> CONFIG_PREVENT_FIRMWARE_BUILD=y [NB this is incorrect] |
61 |
> CONFIG_FIRMWARE_IN_KERNEL=y |
62 |
> CONFIG_EXTRA_FIRMWARE="rtl8168e-2.fw" [NB I needed '-3'] |
63 |
> CONFIG_EXTRA_FIRMWARE_DIR="/lib/firmware" |
64 |
> |
65 |
> I was using kernel 3.5.3 , so I updated to 3.8.5 & configured it : |
66 |
> I had to change the 1st line to 'n' -- mb a typo in the original msg -- |
67 |
> & to change .config manually to add '/lib/' before 'firmware', |
68 |
> which 'make menuconfig' insisted on using without allowing editing. |
69 |
> The compile command is |
70 |
> |
71 |
> make && make firmware_install && make modules_install |
72 |
> |
73 |
> Once the kernel was compiled + installed & I had rebooted, I got : |
74 |
> |
75 |
> root:501 ~> dhcpcd |
76 |
> dhcpcd[834]: version 5.6.7 starting |
77 |
> dhcpcd[834]: no interfaces have a carrier |
78 |
> dhcpcd[834]: forked to background, child pid 846 |
79 |
> |
80 |
> & despite the 2nd line of output, the connection had been established. |
81 |
> |
82 |
> 'syslog' now reads : |
83 |
> |
84 |
> dhcpcd[834]: version 5.6.7 starting |
85 |
> klogd: r8169 0000:05:00.0 enp5s0: link down |
86 |
> klogd: IPv6: ADDRCONF(NETDEV_UP): enp5s0: link is not ready |
87 |
> klogd: r8169 0000:05:00.0 enp5s0: link down |
88 |
> dhcpcd[834]: no interfaces have a carrier |
89 |
> dhcpcd[834]: forked to background, child pid 846 |
90 |
> dhcpcd[846]: enp5s0: waiting for carrier |
91 |
> dhcpcd[846]: sit0: unsupported interface type 308, falling back to |
92 |
> ethernet dhcpcd[846]: sit0: broadcasting for a lease |
93 |
> dhcpcd[846]: enp5s0: carrier acquired |
94 |
> klogd: r8169 0000:05:00.0 enp5s0: link up |
95 |
> klogd: IPv6: ADDRCONF(NETDEV_CHANGE): enp5s0: link becomes ready |
96 |
> dhcpcd[846]: enp5s0: sending IPv6 Router Solicitation |
97 |
> dhcpcd[846]: enp5s0: sendmsg: Cannot assign requested address |
98 |
> dhcpcd[846]: enp5s0: rebinding lease of 192.168.1.2 |
99 |
> dhcpcd[846]: enp5s0: acknowledged 192.168.1.2 from 192.168.1.1 |
100 |
> dhcpcd[846]: enp5s0: checking for 192.168.1.2 |
101 |
> dhcpcd[846]: enp5s0: sending IPv6 Router Solicitation |
102 |
> dhcpcd[846]: enp5s0: sending IPv6 Router Solicitation |
103 |
> dhcpcd[846]: enp5s0: leased 192.168.1.2 for 86400 seconds |
104 |
> |
105 |
> I'm not sure what 'sit0' is, but it doesn't seem to affect the outcome. |
106 |
> |
107 |
> HTH others who may face the same problem. |
108 |
|
109 |
Thanks for sharing this Philip. I was surprised to see that firmware for NICs |
110 |
are meant to be added in this kernel config option. I thought that this |
111 |
config option was only for the video card firmware ... |
112 |
|
113 |
# cat /usr/src/linux/.config | grep EXTRA_FIRMWARE |
114 |
CONFIG_EXTRA_FIRMWARE="radeon/R600_rlc.bin radeon/R700_rlc.bin" |
115 |
CONFIG_EXTRA_FIRMWARE_DIR="/lib/firmware/" |
116 |
|
117 |
In my /lib/firmware I have: |
118 |
|
119 |
# ls -la /lib/firmware/ |
120 |
total 1448 |
121 |
drwxr-xr-x 5 root root 4096 Sep 14 2012 . |
122 |
drwxr-xr-x 14 root root 12288 Mar 31 09:26 .. |
123 |
drwxr-x--- 2 root root 4096 Feb 4 2012 b43 |
124 |
drwxr-xr-x 2 root root 4096 Sep 14 2012 intel-ucode |
125 |
-rw-r--r-- 1 root root 1451687 Sep 14 2012 microcode.dat |
126 |
drwxr-xr-x 2 root root 4096 Dec 31 09:58 radeon |
127 |
|
128 |
and from dmesg I can see that all of these get loaded *without* being defined |
129 |
in the CONFIG_EXTRA_FIRMWARE= ... |
130 |
|
131 |
On this box in any case I do not have sys-kernel/linux-firmware installed, but |
132 |
have installed x11-drivers/radeon-ucode for the video card and net- |
133 |
wireless/b43-fwcutter for the wireless NIC. Are you saying that the correct |
134 |
way to go about this is to uninstall these packages and instead define the |
135 |
firmware in the kernel in CONFIG_EXTRA_FIRMWARE= ??? |
136 |
|
137 |
I'm confused. :-/ |
138 |
|
139 |
PS. I'm currently running kernel-3.7.10-gentoo. |
140 |
-- |
141 |
Regards, |
142 |
Mick |