# [SOLVED] eth0 does not exist

## caminoix

hello  :Smile: 

i'm sorry for coming back to this but i've tried reading the faq and searching the forum and none of advises i've found there seems to work for me.

so, as most people, i've just installed gentoo and everything's great except for that it can't see the eth0 interface.

- lsmod in livecd didn't return anything that looked like network.

- while compiling the kernel (manually) i've already had the ethernet options marked. anyway, i have a marvell card and did a search for marvell which returned one result. i've marked that, too, as a module. however, after a reboot lsmod shows nothing.

- ifconfig -a apart from lo shows something like this:

```

 sit0    Link encap:IPv6-in-IPv4

         NOARP NTV:1480 Metric:1

          (...)
```

- dmesg | grep eth0 shows:

```

 forcedeth.c: Reverse Engineered nForce ethernet driver. Version 0.41
```

- dmesg | grep 3c59x shows nothing

- /etc/init.d/net.eth0 (re)start shows (and this is also shows at boot-time):

```

 * Starting eth0                 [ok]

    * bringing up eth0           [ok]

       * dhcp                    [ok]

          * eth0 does not exist  [!!]
```

perhaps it can help you if i show you these settings on my working linux box (linnexos, based on pclos):

- lsmod:

```

Module                  Size  Used by

autofs4                16484  0

snd_seq_oss            32384  0

snd_seq_midi_event      6112  1 snd_seq_oss

snd_seq                49744  4 snd_seq_oss,snd_seq_midi_event

snd_pcm_oss            48960  0

snd_mixer_oss          17376  1 snd_pcm_oss

snd_via82xx            23040  0

snd_ac97_codec         74648  1 snd_via82xx

snd_pcm                84004  3 snd_pcm_oss,snd_via82xx,snd_ac97_codec

snd_timer              21668  2 snd_seq,snd_pcm

snd_page_alloc          7492  2 snd_via82xx,snd_pcm

gameport                3456  1 snd_via82xx

snd_mpu401_uart         6176  1 snd_via82xx

snd_rawmidi            20160  1 snd_mpu401_uart

snd_seq_device          6860  3 snd_seq_oss,snd_seq,snd_rawmidi

snd                    47652  11 snd_seq_oss,snd_seq,snd_pcm_oss,snd_mixer_oss,snd_via82xx,snd_ac97_codec,snd_pcm,snd_timer,snd_mpu401_uart,snd_rawmidi,snd_seq_device

soundcore               7392  1 snd

ppdev                   7620  0

parport_pc             25220  1

lp                      9672  0

parport                33064  3 ppdev,parport_pc,lp

sk98lin               170696  1

af_packet              17096  2

button                  4816  0

thermal                10792  0

processor              15692  1 thermal

fan                     3044  0

ac                      3268  0

battery                 8132  0

ide_cd                 39044  0

loop                   12712  0

reiserfs              269332  1

nls_cp850               4480  2

vfat                   11488  2

fat                    38048  1 vfat

nls_iso8859_1           3680  3

ntfs                  214104  1

amd64_agp               9096  1

nvidia_agp              5788  0

agpgart                28712  2 amd64_agp,nvidia_agp

evdev                   7552  0

bttv                  148432  0

video_buf              17412  1 bttv

firmware_class          7584  1 bttv

i2c_algo_bit            8776  1 bttv

v4l2_common             4608  1 bttv

btcx_risc               3784  1 bttv

i2c_core               18288  2 bttv,i2c_algo_bit

videodev                7360  1 bttv

dm_mod                 54172  0

usblp                  10848  0

uhci_hcd               30768  0

ehci_hcd               28356  0

ohci_hcd               20200  0

usbcore               110232  5 usblp,uhci_hcd,ehci_hcd,ohci_hcd

rtc                    10456  0

sata_vsc                4900  0

sata_via                4580  6

sata_svw                4740  0

sata_sil                5348  0

sata_promise            7236  0

sata_nv                 5668  0

BusLogic               79252  0

aic7xxx               205580  0

aha152x                37584  0

a100u2w                 9792  0

sg                     35328  0

sr_mod                 15428  0

cdrom                  38784  2 ide_cd,sr_mod

ata_piix                6852  0

sd_mod                 15536  8

libata                 40676  7 sata_vsc,sata_via,sata_svw,sata_sil,sata_promise,sata_nv,ata_piix

scsi_mod              115456  9 sata_promise,BusLogic,aic7xxx,aha152x,a100u2w,sg,sr_mod,sd_mod,libata

ext3                  126952  1

jbd                    55224  1 ext3
```

- dmesg | grep eth0:

```

eth0: Yukon Gigabit Ethernet 10/100/1000Base-T Adapter

eth0: network connection up using port A
```

could you help me, please?Last edited by caminoix on Mon Jan 02, 2006 11:51 am; edited 1 time in total

----------

## ewtrowbr

It seems that the SKGE driver is the one to use for marvell chips with gentoo. Configure you kernel with the setting

DeviceDrivers->NetworkDeviceSupport->Ethernet(1000Mbit)->NewSysconGigaEthernetSupport 

set this to either on or module. If you choose module, be sure to add skge to your /etc/modules.autoload.d/kernel-2.6 file

If that deosn't work, boot up withthe livecd and do a lspci, and let us know what card model is shown...

erich

----------

## NeddySeagoon

caminoix,

This comes up fairly regularly, so I'll write a networking debug guide.

NeddySeagoons' Rough guide to Fixing Networking

Boot normally and run 

```
ifconfig -a
```

 if eth0 is not listed at all, your kernel module is not loaded.

Proceed as follows:-

Boot the liveCD and check that networking works. Now run 

```
lsmod
```

write down the module names that are listed.

One of them is your ethernet module.

Boot normally and run 

```
lsmod
```

cross off the list any modules that appear. You don't have an eth0 so nome of these modules provided it. For every module not crossed off the list do 

```
modprobe <module_name>

ifconfig -a
```

When eth0 appears, you have discovered your module.

Add the module to the list to be loaded at boot with 

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

put the name you used in modprobe on a line on its own at the end of the file, save and exit.

Bring up networking with the command 

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

if it works you are done, it will work after a reboot.

Genkernel users will probably be OK, since almost every module known to Linus is made. If you made your kernel manually, you may have left the module out, in which case some of the modprobe attempts will result in error messages and you will need to make a module for your kernel. You will know this if you get to the end of your list and eth0 has not appeared.

if eth0 exists and has a HWAddr consisting of lots of zeros Your eth0 is Ethernet over firewire. you may also have an eth1, which is your real ethernet or eth1 may be missing, in which case, you need to follow the steps for  if eth0 is not listed at all, above but look for the appearance of eth1.

Next delete the eth1394 module from the kernel modules tree. In future, when you build kernels, ensure that Ethernet over firewire is not selected in make menuconfig - no need to do that just now.

run the command

```
modprobe -l | grep eth1394
```

to find the file eth1394.ko and remove it with 

```
rm /path/to/eth1394.ko
```

Reboot. Your real Ethernet will be eth0 and if your /etc/conf.d/net is correct, eth0 will get an IP.

----------

## caminoix

ewtrowbr:

thank you very much for a fast answer  :Smile:  it worked  :Smile: 

NeddySeagoon:

i know i'm not the first one with this problem. i've read the posts concerning it and the faq but somehow didn't manage to make the answers work for me.

i've actually did an lsmod in livecd and then tried to know something more about the modules with modinfo but still couldn't find out it was skge. anyway, even if i had found out that was it, i wouldn't know how to find it in the kernel menu, and lsmod in the installed gentoo showed nothing... so ewtrowbr's answer helped me a lot  :Smile: 

but naturally your guide is certainly much more general and can help lots of people, not just me  :Smile:  it's a very nice piece of help and i think it could be very helpful if it was extracted from this thread and sticked somewhere. thank you  :Smile: 

oh, if it was to really get sticked, i think it would be great if you were so kind as to add some information on how to find the right module in the kernel menu.

all:

thank you both very much for your fast and acurate help  :Smile: 

ps. i hope this post looks ok; it's my first time in lynx  :Wink: 

----------

## NeddySeagoon

caminoix,

Thank you for your comments. See this  other guide, for DIY kernels. Its difficult to know how much to put in one place.

Maybe these Rough guides will get smoothed off a little and added to the handbook as a trouble shooting section.

----------

## UberLord

 *NeddySeagoon wrote:*   

> Maybe these Rough guides will get smoothed off a little and added to the handbook as a trouble shooting section.

 

Write them in GuideXML and then attach them to a bug assigned to the docs team.

Chances are it will get added  :Smile: 

----------

## caminoix

 *NeddySeagoon wrote:*   

> See this  other guide, for DIY kernels. Its difficult to know how much to put in one place.

 

it's very nice, too  :Smile: 

i know it's a very hard thing to guess what a newbie will not know... i've recently tried to teach my wife programming  :Wink: 

but if i could have one more question: when i do lsmod in gentoo livecd, it lists a number of loaded modules by their short names. how can i know, when compiling a kernel, which entries are for which short names?

i mean, i have say via82xx, now how can i find it in the menuconfig (simply pressing "/" for search and typing "via82xx" returns no results)?

i've tried googling and searching the forum for it but without much success. i don't really even know how to formulate the query...

----------

## NeddySeagoon

caminoix,

Its not showing newbies how to do something right thats hard, its picking up the pieces when they have done something wrong.

They often don't know the question to ask or the information to offer. Most of all, they are always finding new ways of getting it wrong.

I hope the guides were useful. I intend to write them up as UberLord suggested.

Going from module file names back to make menuconfig is quite difficult. I can tell you that your example is the Via ALSA PCI sound chip driver because I 'know'. Probably from too much time spend doing these things.

When you are really stuck a command like 

```
 /usr/src/linux $ grep -R via82xx ./
```

in the kernel tree will pick it out of the help, source code, etc. so you get a good idea of were to look. These lines from the output

```
./Documentation/sound/alsa/ALSA-Configuration.txt:  Module snd-via82xx

./Documentation/sound/alsa/ALSA-Configuration.txt:  Module snd-via82xx-modem

./sound/pci/Kconfig:      will be called snd-via82xx.

./sound/pci/Kconfig:      will be called snd-via82xx-modem.

```

are a strong hint. You can add some context to each line out output by asking grep for some lines before and afer the hits. I'll leave you to read

```
man grep
```

to see how to do that.

----------

## rimian

this information looks to be very useful. but i am stuck with which modules to load as my lsmod return nothing [no modules loaded] and i can't work out in menuconfig which option is the right one for my network card. where can i find information on each option in menuconfig? some of them are too cryptic for my n00b skills [though i am picking it up at a good pace]

i tried modprobe on the cd but that doesn't seem to work. 

the installation instruction were great except:

http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=1&chap=7#kernel_modules

"If you require it, don't forget to include support in the kernel for your ethernet card." 

any help is much appreciated. thanks for the help so far.

----------

## rimian

i did it the other way.

boot from the cd and modprobe -r <module name> until the eth0 stopped working and i found it!

----------

## shareaweb

NeddySeagoon's guide NEEDS TO BE PLACE IN THE GENTOO MANUAL so a million forum posts can dissipate.. 

how about a section in networking part 3 where it says.. "Troubleshooting eth0 after install reboot"...

Im not new to Linux, but Im dang new to Gentoo and my memory was jarred a bit, so Neddy, AAAA+++ 

Thanks. 

BTW I used genkern and it was missing tulip.. a needed driver for my Microsoft VPC 2004 image networking support. 

 :Wink: 

----------

## Brayshakes

thank you. Helped a lot.

----------

## Aurisor

 *rimian wrote:*   

> i did it the other way.
> 
> boot from the cd and modprobe -r <module name> until the eth0 stopped working and i found it!

 

You know that's a really bad idea, right?  :Smile: 

----------

## soldstatic

For kicks and giggles, could somebody post the output of that lsmod from the livecd?

----------

## soldstatic

hell, i'll do it!

 *Quote:*   

> 
> 
> Module                  Size  Used by
> 
> floppy                 40644  0
> ...

 

----------

## soldstatic

Usually I can kind of tell what something does, but the module names are a bit more cryptic or somethin. Anyone have an idea of which modules are at least network related/ I doubt the usb module not being probed is causing me to not get internet... lol I'd just rather not go through the entire list! (but i will anyway...)

----------

## CKirocZ

I have found that even with a properly configured /etc/conf.d/net, /etc/dhcp/dhclient.conf, etc., sometimes networking just stops networking!!

Maybe it is because of an update or changes in file permissions(executable or not?) or just an actual network problem (GREMLINS?!?!?!?); whatever it is, once it happens, it usually happens over and over again no matter what you do.

My solution was to use static DNS servers (OpenDNS= 208.67.220.220, 208.67.222.222) because that is what I always lose- DNS resolution. If you choose to do this you can set your /etc/resolv.conf file to be "immutable" AFTER you get connectivity. The resolv.conf file stores the IP addresses of your DNS servers along with your hostname and who knows what else. Get your network up and running then check /etc/resolv.conf for any entries that can be made static.

Find the appropriate config files and edit them, restart your network, check connectivity, check /etc/resolv.conf once again to make sure your static settings are in use, and IF they are do:

```
chattr -v +i /etc/resolv.conf
```

The -v is for verbose and the +i makes the file "immutable", it can't be changed or deleted by anyone or anything until you do:

```
chattr -v -i /etc/resolv.conf
```

The -i is "minus i" to remove the immutable bit, then you can change your settings and reset it by using +i (plus i).

You will see an error scroll by when booting, but if all your settings are correct you can ignore it!!

I hope this was clear enough for everyone!

Good luck.

----------

## Littlenux

 *rimian wrote:*   

> this information looks to be very useful. but i am stuck with which modules to load as my lsmod return nothing [no modules loaded]

 

Unless I'm wrong, this is because modules are compiled with the kernel in your linux system.

The solution is to change, in VirtualBox preferences, the emulated network card so it match the lan driver already compiled in the kernel.

----------

