# eth0 works, dhcp does not.  help? [SOLVED]

## jessicavampirehunter

I have a strange network problem...when I boot up, I see the message

Starting eth0

Bringing up eth0

dhcp

Running dhcpcd    [!!]

And then I have no network connection.  

I've been searching the forums for a while, trying to see if there's a solution, but most people seem to have problems with eth0, and it seems to me that my problem is with dhcpcd (which I emerged, obviously).

The results of ifconfig

lo

Link encap:Local Loopback

inet addr:127.0.0.1 Mask:255.0.0.0

UP LOOPBACK RUNNING MTU:16436 Metric:1

RX Packets:0 errors:0 dropped:0 overruns:0 frame:0

TX Packets:0 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txquelen:0

RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)

The results of ifconfig -a:

eth0

Link encap: UNSPEC HWaddr 3C-3F-02-00-4D-04-04-00-3D-00-00-00-00-00-00-00-00

BROADCAST MULTICAST MTU:1500 Metric:1

RX Packets:0 errors:0 dropped:0 overruns:0 frame:0

TX Packets:0 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txquelen:1000

RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)

eth1

Link encap: Ethernet HWaddr 00:02:3F:69:0C:B8

BROADCAST MULTICAST MTU:1500 Metric:1

RX Packets:0 errors:0 dropped:0 overruns:0 frame:0

TX Packets:0 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txquelen:1000

RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)

Interrupt:19 Base address:0x4800

lo

Link encap:Local Loopback

inet addr:127.0.0.1 Mask:255.0.0.0

UP LOOPBACK RUNNING MTU:16436 Metric:1

RX Packets:0 errors:0 dropped:0 overruns:0 frame:0

TX Packets:0 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txquelen:0

RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)

The results of lspci (the network stuff):

Network controller: Broadcom Corporation BCM4306 802.11b/g Wireless LAN Controller (rev 03)

Ethernet controller: Realtek Semiconductor Co., Ltd.  RTL-8139/8139C/8139C+ (rev 10)

I think my driver is 8139too...the one everyone's been having a problem with.

Baselayout is up-to-date.

The results of lsmod | grep 8139too

8139too  18128 0

mii 2800 1 8139too

net-setup is not found.

My /etc/conf.d/net:

config_eth0=( "dhcp" )

iface_eth0="dhcp"

Um, I think that's everything most people wanted to know...I have wireless, but I haven't even begun to configure it yet.  I'm just trying to get my Ethernet working.  Please help?

----------

## wah

 *Quote:*   

> My /etc/conf.d/net:
> 
> config_eth0=( "dhcp" )
> 
> iface_eth0="dhcp"

 

I was just looking at my /etc/conf.d/net file and comparing it to what you listed above...I only have the second line.  Try commenting out the first line and restart net.eth0.  See if that helps. 

Cheers,

Wah

----------

## jessicavampirehunter

Thank you for your response!

OK, I tried that, and no dice.  It doesn't seem to have changed anything.

----------

## wah

Ok - restart the card and see if you notice anything in your /var/log/messages.  You can tail it since it'll be close to the end of the log.  If you see anything dhcpcd or eth0 related, please post it up.

Wah

----------

## jessicavampirehunter

OK, I ran /etc/init.d/net.eth0 restart, and the last message in /var/log/messages was

Jul 28 12:49:37 shiva dhcpcd[11941]: dhcpStart: interface eth0 is not Ethernet or 802.2 Token Ring

Shiva is the name of my laptop, fyi.

----------

## wah

Good name for the laptop!  Hindu or Final Fantasy buff?

Anyway, dumb questions - have you re-emerged dhcpcd?  Is this an onboard card or a pcmcia card?

Wah

----------

## NeddySeagoon

jessicavampirehunter,

I suspect that your logical device eth0 is not what you think it is. Rather eth1 is your real ethernet port.

Do you have firewire ?

Did you use genkernel?

Does lsmod show eth1394 loaded?

Do you have two real cat5 ethernet interfaces?

If so they have probably swapped logical names between your liveCD install and your own kernel.

Plug your cat5 into the other ethernet port.

----------

## wah

neddyseagoon,

Are you thinking that it's picking up the wireless card as eth0 and the hardwire port as eth1?  That would definitely make sense, as now that I look back at his ifconfig output, it's saying eth1 is link encap Ethernet.  

 *Quote:*   

> eth0
> 
> Link encap: UNSPEC HWaddr 3C-3F-02-00-4D-04-04-00-3D-00-00-00-00-00-00-00-00
> 
> eth1
> ...

 

Interesting.

EDIT:  Or as you said, the ieee1394 could be it as well - as there is support for eth over firewire now.  You're good!  I never would have thought of that.

Regards,

Wah

----------

## jessicavampirehunter

I re-emerged dhcpcd, and the problem is still there.  /var/log/messages still shows the same error as before.

I don't know how to tell what type of card I have...it came with my laptop.  How do I find that out?

----------

## jessicavampirehunter

jessicavampirehunter,

I suspect that your logical device eth0 is not what you think it is. Rather eth1 is your real ethernet port.

Do you have firewire ?

Did you use genkernel?

Does lsmod show eth1394 loaded?

Do you have two real cat5 ethernet interfaces?

If so they have probably swapped logical names between your liveCD install and your own kernel.

Plug your cat5 into the other ethernet port.

I have a firewire port...not sure if it needs to be configured or not, though.

I did indeed use genkernel, recompiled to include 8139too since it apparently didn't before.

lsmod | grep eth1394 shows:

eth1394    14872 0

ieee1394   58776 3 eth1394,sbp2,ohci1394

I have just one cat5 port, and one cable...I suppose it's possible that my wireless is registering as eth0, though.  I didn't emerge any of the stuff necessary for wireless support - I wanted to get my wired up first.

I changed my /etc/conf.d/net to:

config_eth0=( "dhcp" )

iface_eth0="dhcp"

config_eth1=( "dhcp" )

iface_eth1="dhcp"

hoping that this would configure everything to work, but it didn't.  Same error as before..."Running dhcpcd...[!!]"

(incidentally, I'm not a he.  :Smile:  )

----------

## jessicavampirehunter

HA!  I figured out what was wrong.  I think.

I think the problem was what you said - that eth0 is my wireless connection and eth1 is my wired connection.  So I created an initscript for eth1, with

```

cd /etc/init.d

ln -s net.eth0 net.eth1

rc-update add net.eth1 default

/etc/init.d/net.eth1 restart

```

And got the message

```

Caching service dependencies...ok

Starting eth1

Bringing up eth1

dhcp

Running dhcpcd...ok

eth1 received address 192.168.1.101

```

Afterwards I pinged google and got data!  Yay!

Thanks so much for your help, everyone!

----------

## NeddySeagoon

jessicavampirehunter,

Did I say your were a he?  Sorry.

I'm sure that your problem is that the eth0 logical name is being grabbed by the eth1394 module because it loades before your real ethernet port.

You have two ways forward. Make the modules load in the right order. Tolerate the loss of control amd make eth1 work. You will hate that because at your next kernel update, the names may swap again. Since you have started down the make eth1 work, lets finish it off.

It doesn't work for you at the moment because there in no script in /etc/init.d/ to start eth1.  

If you look in /etc/init.d/ now you will find a file called net.eth0 which is a symbolic link to net.lo

We need on just like that for eth1 called net.eth1 make it like this

```
cd /etc/init.d/

ln -s net.lo net.eth1 
```

with the script created to start eth1, your eth1 setup in /etc/conf.d/net can be obeyed.

To test, run 

```
/etc/init.d/net.eth1 restart
```

which should bring networking to life.

To make it automatic, 

```
rc-update net.eth1 add defualt
```

That finishes off what you started.

My preference would be to load the real network module first and the eth1394 later or not at all.

You say your network driver is  8139too  If you add your network driver module name to 

/etc/modules.autoload.d/kernel-2.6 it will be loaded before any of the autodetection gets a chance.

Modules listed here are loading in the order in which ther appear, so insert a line that says  

```
8139too
```

near the top of the file. Your real NIC will then become eth0 at the next boot because its module is loaded before eth1394.

----------

## wah

 *Quote:*   

> (incidentally, I'm not a he.  )

 

Oops...sorry about that.  I was the one that referred to you as a "he".  My bad  :Embarassed: 

Glad you got it up and running!  

@neddyseagoon:

Your advice is as stellar as always!  Thanks for bailing me out there!

Cheers,

Wah

----------

## NeddySeagoon

jessicavampirehunter, 

Tell us what you did please. I helps others reading this thread later.

----------

## jessicavampirehunter

OK, I did everything I said in my last reply, then I executed:

```

nano -w /etc/modules.autoload.d/kernel-2.6

```

and added the line

```

8139too

```

Thanks again everyone!

----------

