# Ethernet card not working[SOLVED]

## doubleagent

My info:

```
#lspci

...

02:01.0 Ethernet controller: Broadcom Corporation BCM4401 100Base-T (rev 01)

...

# dmesg | fgrep eth0

[    4.880000] eth0: Broadcom 4400 10/100BaseT Ethernet 00:0f:1f:17:58:4a

[   22.616000] ADDRCONF(NETDEV_UP): eth0: link is not ready
```

Kernel is 2.6.23-r3

The problem:

```
 # /etc/init.d/net.eth0 start

 * Starting eth0

 *   Configuration not set for eth0 - assuming DHCP

 *   Bringing up eth0

 *     dhcp

 *       network interface eth0 does not exist

 *       Please verify hardware or kernel module (driver)                 [ !! ]
```

/etc/conf.d/net is empty (as it should be).

I've compiled the correct kernel module:

```
-> Device Drivers

        -> Network device support (NETDEVICES [=y])

                -> Ethernet (10 or 100Mbit) (NET_ETHERNET [=y])

                        -> EISA, VLB, PCI and on board controllers (NET_PCI [=y])

                                <M>     Broadcom 4400 ethernet support
```

and have written it in '/etc/modules.autoload.d/kernel-2.6'.  It loads fine (side note: for some reason I feel 'mii' module should be available, but it's not.  Any idea on how to make it available?).

I've had problems before on the same machine, in which I had to disable all firewire related stuff.  Currently they're compiled as modules and intentionally not being loaded.  A technician came by recently and replaced the motherboard (after which my configuration at that time stopped working) ...is there any reason why I should now require those firewire modules loaded for my ethernet to work?

Any help is much appreciated.

----------

## pappy_mcfae

 *doubleagent wrote:*   

> My info:
> 
> ```
> -> Device Drivers
> 
> ...

 

My experience is, if it's not compiled directly into the kernel, it's not going to load. I suggest you change the option thusly:

```
-> Device Drivers

        -> Network device support (NETDEVICES [=y])

                -> Ethernet (10 or 100Mbit) (NET_ETHERNET [=y])

                        -> EISA, VLB, PCI and on board controllers (NET_PCI [=y])

                                <*>     Broadcom 4400 ethernet support
```

There are some options that can be set as modules, and some that must. However, I have found that modules fail to load just when to do so is most inconvenient. Therefore, wherever possible, I install options directly into the kernel. The only things I leave modular are the alsa drivers, fuse, and some security options. Everything else; hard drive controllers, file system, wired network adapter(s), and so on is compiled into the kernel.

If that doesn't work, you might have a hardware issue.

Hope that helps

Blessed be!

Pappy

----------

## doubleagent

I'm sitting on an ubuntu partition that uses it as a module successfully, so I don't think it's the hardware or a module.

I do appreciate the help, and will try it out, but personally I've always felt modules are better, for much the same reason that HURD is *technically better.

I'm trying to make the mii module available, but can't figure it out.  Here's what I got through searching:

```
Symbol: MII [=y]

Prompt: Generic Media Independent Interface device support

        Defined at drivers/net/Kconfig:199

        Depends on: NETDEVICES && NET_ETHERNET

        Location:

                -> Device Drivers

                        -> Network device support (NETDEVICES [=y])

                                -> Ethernet (10 or 100Mbit) (NET_ETHERNET [=y])

 B44 && NETDEVICES && NET_ETHERNET && NET_PCI && PCI 
```

I've enabled all those either as modules or into the kernel, 'mii' is still not available.  I've looked through nearly all the options in menuconfig that are under 'Ethernet (10 or 100Mbit), and the info (?) on each of them says nothing like "this module will be called mii".  The b44 info. says "SELECTS: MII", but I don't know what that means.

How do I enable the 'mii' module?

----------

## doubleagent

I tried it...didn't work.

I found this.

I suppose this means I don't need mii, but...well...8139cp and 8139too (realtek stuff) are compiled into the kernel <*>, but from the complete lspci output I don't see why I need them...

```
$ lspci

00:00.0 Host bridge: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)

00:00.1 System peripheral: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)

00:00.3 System peripheral: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)

00:01.0 PCI bridge: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to AGP Controller (rev 02)

00:1d.0 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (rev 01)

00:1d.1 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (rev 01)

00:1d.2 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (rev 01)

00:1d.7 USB Controller: Intel Corporation 82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (rev 01)

00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev 81)

00:1f.0 ISA bridge: Intel Corporation 82801DBM (ICH4-M) LPC Interface Bridge (rev 01)

00:1f.1 IDE interface: Intel Corporation 82801DBM (ICH4-M) IDE Controller (rev 01)

00:1f.5 Multimedia audio controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 01)

00:1f.6 Modem: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (rev 01)

01:00.0 VGA compatible controller: nVidia Corporation NV34M [GeForce FX Go5200 64M] (rev a1)

02:01.0 Ethernet controller: Broadcom Corporation BCM4401 100Base-T (rev 01)

02:04.0 CardBus bridge: Texas Instruments PCI4510 PC card Cardbus Controller (rev 02)

02:04.1 FireWire (IEEE 1394): Texas Instruments PCI4510 IEEE-1394 Controller

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

----------

## d2_racing

have you tested the kernel 2.6.24-gentoo ?

----------

## doubleagent

 *d2_racing wrote:*   

> have you tested the kernel 2.6.24-gentoo ?

 I've nearly finished off the previous 2 week upgrade experience (granted, I hadn't upgraded for a year and a half, but...).

I'll look into it.

----------

## energyman76b

try to set mode and speed with ethtool.

----------

## doubleagent

 *energyman76b wrote:*   

> try to set mode and speed with ethtool.

 

```
 # ethtool eth0

Settings for eth0:

        Supported ports: [ MII ]

        Supported link modes:   10baseT/Half 10baseT/Full 

                                100baseT/Half 100baseT/Full 

        Supports auto-negotiation: Yes

        Advertised link modes:  10baseT/Half 10baseT/Full 

                                100baseT/Half 100baseT/Full 

        Advertised auto-negotiation: Yes

        Speed: 10Mb/s

        Duplex: Half

        Port: Twisted Pair

        PHYAD: 1

        Transceiver: internal

        Auto-negotiation: on

        Supports Wake-on: g

        Wake-on: d

        Current message level: 0x000000ff (255)

        Link detected: no
```

hmmm....

```
 # ethtool -i eth0

driver: b44

version: 1.01

firmware-version: 

bus-info: 0000:02:01.0
```

hmmm....

I'm chrooted in through ubuntu though, I should probably reboot and see what it gives.

----------

## doubleagent

found mii module...didn't help any.

ethtool says nothing about eth0 when booted into gentoo, well...it says something about it not existing.  I'll get the stuff later (kind of difficult with no ethernet card support.

----------

## poly_poly-man

ifconfig -a (from in the gentoo side - not a chroot).

Though it's very unlikely, you _could_ have been hit with the eth1394 driver... that's a beast.

poly-p man

----------

## doubleagent

 *poly_poly-man wrote:*   

> ifconfig -a (from in the gentoo side - not a chroot).
> 
> Though it's very unlikely, you _could_ have been hit with the eth1394 driver... that's a beast.
> 
> poly-p man

 Nah didn't compile it.

Anyhoo...solved:

```
# dmesg

...

net eth1: device_rename: sysfs_create_symlink failed (-17)

udev: renamed network interface eth0 to eth1

eth1: Broadcom 4400 10/100BaseT Ethernet 00:0f:1f:17:58:4a

...
```

Facepalm.

Fixed it a moment ago.

(I wondered why ubuntu was using eth1...now I know: similiar udev's)

----------

## dakster

I've got the same problem. How did you get udev to stop doing this? I already have a eth1 (different network), so I'm puzzled as to why it's renaming eth0 to eth1, as it's already taken....

----------

## chrisashton84

 *doubleagent wrote:*   

> 
> 
> ```
> # dmesg
> 
> ...

 

So... what was the fix?  I've got a similar issue... I get normal eth0 lines then later the "net eth1: device_rename: sysfs_create_symlink failed (-17)" line in dmesg - but not the following lines after that.  Do I just need to create a file for eth1?  In my case I only have this one ethernet device...

----------

## doubleagent

 *chrisashton84 wrote:*   

>  *doubleagent wrote:*   
> 
> ```
> # dmesg
> 
> ...

 I wish I remembered exactly what I did.  :Confused: 

At the time it was so obvious to me I just didn't type it out.  Anyhoo, I will guess at what I did.

```
# cp /etc/init.d/net.eth0 /etc/init.d/net.eth1

# rc-update add net.eth1
```

There was probably a little more to it than that but I don't recall exactly what.  :Confused: 

----------

## poly_poly-man

 *doubleagent wrote:*   

> At the time it was so obvious to me I just didn't type it out.  Anyhoo, I will guess at what I did.
> 
> ```
> # cp /etc/init.d/net.eth0 /etc/init.d/net.eth1
> 
> ...

 

Actually, ln -s is a bit better - ln -s /etc/init.d/lo /etc/init.d/net.eth1.

To do that, make sure that /etc/conf.d/net is set up properly for eth1...

I actually got an eth1 to swap into eth0 using udev once - I have no idea how anymore  :Very Happy: 

poly-p man

----------

## towerk

I had the same issue,never noticd it

/etc/udev/rules.d/70-persistent-net.rules

it ties your ethernet device to a mac address

ifconfig -a    shows all devices

----------

