# [Solved] dhcpcd cannot start network rtl8111b/8168

## brntoki

Hi all! I'm very noobish so it's completely conceivable that I've done something obviously stupid. Here goes . . .

I got gentoo up and running and thought all was good, but when I booted into my install networking was nill. After searching I found that my onboard Realtek 8111b/8168b card had been problematic with Linux and the make menuconfig available 8169 driver. I assumed that was my problem and did a kernel recompile without any drivers, downloaded from Realtek and manually made/installed the supposedly proper driver, r8168, but it gives me the same result as noted below. ifconfig -a shows my eth0. It will come up, but when I do /etc/init.d/net.eth0 start I get the same results. lsmod shows the r8168 loaded. My Mint6/Ubuntu 8.10 install shows that it's using mii r8169 and I have no problems with it.

So, it appears that the r8169 driver would/should work, though if that driver is compiled into the kernel, or whether I manually install the Realtek driver as a module, I get the same exact results.

Kernel 2.6.30-r5

Note: lspci lists the onboard NIC as RTL8111/8168B PCIExpress Gigabit Ethernet Controller. My manual says it's an rtl8111B.

starting eth0

config not set - assume dhcp

Bringing up eth0

dhcp

Running dhcpcd

eth0: dhcpcd 4.0.15 ...

eth0: open_socket: Address family not supported by protocol

eth0: broadcasting for lease

eth0: send_raw_packet: Bad file descriptor

eth0: timed out

eth0: trying to use old lease in 'var/lib/dhcpcd/dhcpcd-eth0.lease

eth0: probing for an IPV4LL address

eth0: checking 169.254.244.9 is available on attached networks

eth0: send_arp: Bad file descriptor

ERROR: Cannot start netmount as net.eth0 could not start

[Solved] Didn't have Packet Socket compiled in the kernel.Last edited by brntoki on Wed Nov 25, 2009 9:54 am; edited 1 time in total

----------

## doctork

I've been using the r8169 driver for a built-in RTL8111/8168B since kernel 2.6.25 and have never had a problem.  You need to check the rest of you network configuration.  The error messages indicate you don't have unix socket support enabled.

--

doc

----------

## brntoki

 *doctork wrote:*   

> The error messages indicate you don't have unix socket support enabled.
> 
> --
> 
> doc

 

Thanks. I think you mean I need to make sure I've compiled this into the kernel?

By the way, I should mention that when in a chrooted environment I can run init.d and it works with either driver. So, whatever would be different in how a chrooted environment would handle the init.d and from the native environment would help pinpoint the problem. Unfortunately it's way past bedtime on my side of the globe and I'll have to get back to this after some sleep.

Thanks doctork! And if you and anyone else can remember the "noobish" part of my post and spell things out just a little that'd be a tremendous help.

----------

## coRpTitan

Hello brntoki,

as doctork wrote, it seems like you are having problems with "Unix domain sockets"

Can you go to /usr/src/linux (or whatever where you have kernel sources) and run: make menuconfig and there go to: 

-> Networking support

 -> Networking options

and there you should have turned on: "Unix domain sockets".

Or just run there:

```

# cat .config | grep CONFIG_UNIX=

CONFIG_UNIX=y

#
```

You should get exactly same output...

Last think: What do you mean by chrooted environment? If you mean when you boot form live CD then it's because when you are at that chroot it's still using kernel from liveCD, not that one from HDD.

----------

## Mike Hunt

... and if you are running the kernel from the installCD, then the R8169 driver is built in the kernel as a module, which it seems is a better idea for network card drivers in general.

So you should have this in your kernel config: 

```
# grep CONFIG_R8169 .config

CONFIG_R8169=m

#
```

----------

## brntoki

Unfortunately the Unix domain sockets isn't the simple fix. It is in fact in the kernel as confirmed by both the make menuconfig and the cat .config | grep CONFIG_UNIX= verification methods.

I wonder if Dhcpcd isn't just screwy.

eth0: open_socket: Address family not supported by protocol

&

eth0: checking 169.254.244.9 is available on attached networks

These lines just make me think that Dhcpcd is perhaps the culprit. Doesn't 169.254.244.9 just look funny? Dhcpcd 4.0.15.

As for the question about the chrooted environment, I was chrooted from my Mint6/Ubuntu 8.10 install. Seeing as there were no complaints about init.d starting in that environment, it makes me want to go back on my Dhcpcd culpability above. It would seem it's the kernel missing something.

----------

## brntoki

I have now confirmed . . . I am a dork.  I didn't have "packet socket" enabled. Recompiling now . . . again.

Found the info in this post:

https://forums.gentoo.org/viewtopic-t-681245-highlight-8111b.html

Will report back after a refreshing run, reboot, etc.

----------

## brntoki

Works! Will mark as solved. Though I ultimately found the answer in another post, I was put on the right track with everyone's help here. Thanks a lot!

Now . . . how about your thoughts on a bug report. I mean, for a newbie, the Unix Domain Socket kernel option is well commented in the help. It states very strongly that, unless you know what you are doing, you definitely want to say "yes" to that option. It seems to me the Packet Socket should be similarly commented, no? Especially since, to me, these options sound so similar that I would think they are for doing the same thing; and the one being worded so strongly, I figured that I had what I needed already.

Thoughts?

----------

