# [SOLVED] eth1 does not exist

## Jumento

Hi,

On my Sun Blade 100 i was having troubles with the onboard NIC so i decided to use an other NIC instead.

But i can't get this NIC to work.

When i boot from the live-cd it automatic assigns a IP-address to the second NIC and i can connect to the Internet.

But when i make a symbolic link from the file net.lo to the file net.eth1 and add this one to the default startup sequence using the following command:

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

i get the following error:

```
eth1 does not exist
```

*EDIT* The second network card i try to use is a: 3COM 3C9058-TX *EDIT*Last edited by Jumento on Mon Apr 10, 2006 4:18 pm; edited 2 times in total

----------

## peka

Check if you have more eth* interfaces. I've heared that e.g. firewire kicking up first on boot may mess eth numbers.

But I'm not sure  :Sad: 

----------

## _loki_

please post output of

```

ls -l /etc/init.d/

```

----------

## Jumento

How can i check if i have more eth* devices?

Output of ls -l /etc/init.d:

```
-rwxr-xr-x  1 root root   571 Feb  9 07:44 audioctl

-rwxr-xr-x  1 root root  3637 Feb  9 07:02 bootmisc

-rwxr-xr-x  1 root root  1205 Feb  9 07:02 checkfs

-rwxr-xr-x  1 root root  3022 Feb  9 07:02 checkroot

-rwxr-xr-x  1 root root  2486 Feb  9 07:02 clock

-rwxr-xr-x  1 root root  1414 Feb  9 07:02 consolefont

-rwxr-xr-x  1 root root  1625 Feb  9 07:43 crypto-loop

lrwxrwxrwx  1 root root    21 Apr 10 03:36 depscan.sh -> ../../sbin/depscan.sh

-rwxr-xr-x  1 root root  1416 Feb  9 07:02 domainname

lrwxrwxrwx  1 root root    23 Apr 10 03:36 functions.sh -> ../../sbin/functions.sh

-rwxr-xr-x  1 root root  4947 Feb  9 07:02 halt.sh

-rwxr-xr-x  1 root root  2674 Feb  9 07:41 hdparm

-rwxr-xr-x  1 root root   945 Feb  9 07:02 hostname

-rwxr-xr-x  1 root root  1859 Feb  9 07:02 keymaps

-rwxr-xr-x  1 root root   620 Feb  9 07:02 local

-rwxr-xr-x  1 root root  1316 Feb  9 07:02 localmount

-rwxr-xr-x  1 root root  2439 Feb  9 07:02 modules

lrwxrwxrwx  1 root root     6 Apr 10 03:32 net.eth0 -> net.lo

lrwxrwxrwx  1 root root    20 Apr 10 05:15 net.eth1 -> /etc/init.d/net.eth0

-rwxr-xr-x  1 root root 24317 Feb  9 07:02 net.lo

-rwxr-xr-x  1 root root  3055 Feb  9 07:02 netmount

-rwxr-xr-x  1 root root  1379 Feb  9 06:05 nscd

-rwxr-xr-x  1 root root   670 Feb  9 07:02 numlock

-rwxr-xr-x  1 root root   221 Feb  9 07:02 reboot.sh

-rwxr-xr-x  1 root root   276 Feb  9 07:02 rmnologin

-rwxr-xr-x  1 root root   438 Feb  9 07:08 rsyncd

lrwxrwxrwx  1 root root    23 Apr 10 03:36 runscript.sh -> ../../sbin/runscript.sh

-rwxr-xr-x  1 root root   215 Feb  9 07:02 shutdown.sh

-rwxr-xr-x  1 root root  1643 Feb  9 07:37 sshd

-rwxr-xr-x  1 root root   915 Feb  9 07:02 urandom

```

*EDIT* The second network card i try to use is a: 3COM 3C9058-TX *EDIT*Last edited by Jumento on Mon Apr 10, 2006 7:54 am; edited 1 time in total

----------

## peka

 *Jumento wrote:*   

> How can i check if i have more eth* devices?

 

try:

```
cat /proc/net/dev
```

or

```
cat /proc/devices
```

and see what it shows.

----------

## Jumento

i don't understand the output of these commands but maybe you could help me.

output of cat /proc/net/dev:

```
Inter-|   Receive                                                |  Transmit

 face |bytes    packets errs drop fifo frame compressed multicast|bytes    packets errs drop fifo colls carrier compressed

    lo:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0

  eth0:  144282     209    0    0    0     0          0         0    12570     130    0    0    0     0       0          0

```

output of cat /proc/devices

```
Character devices:

  1 mem

  2 pty/m%d

  3 pty/s%d

  4 vc/0

  5 ptmx

  7 vcs

 10 misc

 13 input

 29 fb

 36 netlink

 81 video_capture

 89 i2c

128 ptm

136 pts/%d

162 raw

180 usb

Block devices:

  3 ide0
```

Do i need to load extra modules/drivers for the second network card?

*EDIT* The second network card i try to use is a: 3COM 3C9058-TX *EDIT*

----------

## peka

seems like your network device is eth0 while you try laounchin net.eth1

I have never had an eth connection but I think you should use net.eth0 for launching your network (provided other thing work properly)

----------

## _loki_

eth0 could also be the device for the onboard NIC.. Are you sure you have compiled the kernel support you need for the second interface? Also you should link net.eth1 against net.lo, doesn't really make a difference, but linking against a link sounds somehow not right..

I might be wrong with my assumption for eth0/1 but if eth0 is the onboard NIC I'b be pretty sure..

----------

## Jumento

ETH0 is the onboard NIC

I didn't select anything specific for the second interface during the install. Cause when i booted from the live-cd it worked automatically. Should i select specific drivers during install to make it work? And can i do this on a installed system?

*EDIT* I don't think it nessasary to select special modules, because standard 3COM cards are supported *EDIT*

----------

## _loki_

sure;you need to compilile support for the NIC in the kernel- if you're not sure what that would be, try to find it with lspci, or if you're unsure boot the live CD and have a look on the loaded modules-- must be somewhere there! You know how to rebuild the kernel I guess? If not just post again..

----------

## Jumento

When i use the command lspci i get the following output:

```
00:00.0 Host bridge: Sun Microsystems Computer Corp. Ultra IIe

00:03.0 Non-VGA unclassified device: ALi Corporation M7101 Power Management Controller [PMU]

00:05.0 PCI bridge: Digital Equipment Corporation DECchip 21152 (rev 03)

00:07.0 ISA bridge: ALi Corporation M1533/M1535 PCI to ISA Bridge [Aladdin IV/V/V+]

00:08.0 Multimedia audio controller: ALi Corporation M5451 PCI AC-Link Controller Audio Device (rev 01)

00:0c.0 Bridge: Sun Microsystems Computer Corp. RIO EBUS (rev 01)

00:0c.1 Ethernet controller: Sun Microsystems Computer Corp. RIO GEM (rev 01)

00:0c.2 FireWire (IEEE 1394): Sun Microsystems Computer Corp. RIO 1394 (rev 01)

00:0c.3 USB Controller: Sun Microsystems Computer Corp. RIO USB (rev 01)

00:0d.0 IDE interface: ALi Corporation M5229 IDE (rev c3)

00:13.0 VGA compatible controller: ATI Technologies Inc Rage XL (rev 27)

01:01.0 Ethernet controller: 3Com Corporation 3c905B 100BaseTX [Cyclone] (rev 24)

```

So i need to compile support for the last Ethernet controller in the kernel? But how can i do this?

----------

## _loki_

```

01:01.0 Ethernet controller: 3Com Corporation 3c905B 100BaseTX [Cyclone] (rev 24) 

```

go to /usr/src/linux and run

```

make menuconfig

```

there, find the appropate driver you need (somewhere in device drivers --> networking I guess) select it (if the card is going to stay in the board I'd compile staticly, means set a * not a M); if you're not sure about what the right driver is, read the "help" of them (I think there are not too much for 3com), then leave the menuconfig, and save the configuration. Run

```

make && make modules_install

```

copy /usr/src/linux/arch/yourarch/boot/bzImage to /boot/kernel-whatever and rebbotLast edited by _loki_ on Mon Apr 10, 2006 1:16 pm; edited 1 time in total

----------

## Jumento

Jup that last one is it.

No i don't know how to recompile the kernel and how to select the correct drivers/modules

Sorry for these simple questions  :Smile: 

----------

## Jumento

 :Crying or Very sad: 

When i go in menuconfig via "Network device support" => "Ethernet (10 or 100Mbit) and select the following options:

 <*>     3c590/3c900 series (592/595/597) "Vortex/Boomerang" support                                  

 <*>     3cr990 series "Typhoon" support

On reboot i still get the error: "eth1 does not exist"

----------

## _loki_

I don't have a linux box where I am right now, but I'm not sure you selected the right stuff, from a 3com site:

 *Quote:*   

> 
> 
> The 3C90x NIC driver for Linux supports the following EtherLink NICs:
> 
>     EtherLink 10/100 PCI NICs
> ...

 

so there should be a module, called 3c90x.. that one should work, also just sellecting is not enough..- did you recompile and copy the new image to /boot ?

----------

## peka

what does it say when you do:

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

?

----------

## Jumento

I'm sure that i selected the right one. Because when i press ? on the first option i see this.

```
"Cyclone"   (3c540/3c900/3c905/3c980/3c575/3c656)    PCI and Cardbus  
```

Is there a way to see of the module is installed correct? Because i did recompile, copy the image and reboot

----------

## Jumento

 *peka wrote:*   

> what does it say when you do:
> 
> ```
> /etc/init.d/net.eth0 start
> ```
> ...

 

```

Starting eth0

     Bringing up eth0

          192.168.123.123

```

----------

## _loki_

the device should be created automaticly if the kernel finds a supporting driver, for debugging you can compile as modules and look if hotplug loads them.. peka has a point I think, what was wrong with the onboard NIC in the first place? Maybe that's the easier option..

----------

## swooshOnLn

```

Starting eth0

     Bringing up eth0

          192.168.123.123 

```

Is it not connecting to your local network?

----------

## vinky

One thing you can do is to select all networkcarddrivers in the kernel as modules and install them. Thats what I did when I didnt know which driver I would use for mine. When you know which driver it is then remove all the others

The others might disagree on this solution ,but anyway thats my tip

Vinky

----------

## Jumento

The problem with the onboard NIC was when downloading files from the internet. Because some of the files were not downloaded correctly.

And when i booted from the live-cd with the second network card and then downloaded the same files they were downloaded correct.

----------

## _loki_

 *Quote:*   

> 
> 
> some of the files were not downloaded correctly
> 
> 

 

weird problem, but well if you're sure it's the NIC, we stay to get the other working

 *Quote:*   

> 
> 
> One thing you can do is to select all networkcarddrivers in the kernel as modules and install them
> 
> 

 

you can do that (of course you have to run hotplug also then), maybe it's simpler to boot the live CD and run a lsmod , to see what modules are loaded by the autodetection..

----------

## Jumento

When i run lsmod from the live-cd i get a few loaded modules. But the one i need : 3c59x

How can i install/load this module?

----------

## _loki_

find it in menuconfig, and do what I wrote before; for debugging you can choose "M", then you can see if the module gets loaded by hotplug (do you use hotplug?), you can check then with lsmod if the module gets loaded; if not load it manually with

```

modprobe 3c59x

```

the device should be created then.. When it works automaticly you might just stay with that, if not put the module in /etc/modules.autoload/kernel-2.6, or compile one more time staticly..

----------

## Jumento

I installed the whole system again and selected the correct network card on the menuconfig.

After emerging dhcpcd it seems to work.

So thank you guys for the great help  :Smile: 

----------

## _loki_

what do you mean by "whole system"? Anyway, glad you did it!

----------

## Jumento

Format the disk and install it all over again

----------

## _loki_

wow, okay that's really shouldn't have been necessary, as it was a kernel issue.. if it works now it's good, but I'nm sure you don't wanna kill a working system for a missing module every time  :Wink: 

----------

## Jumento

No i don't think so. 

But i had nothing installed besides the base system so it wasn't a problem for me to install it all over again.

----------

