# ifconfig stopped showing eth1

## i92guboj

Hello.

Straight to the details. I have two nics (one on-board, one on a pci card). The one on-board works (eth0), the pci card has been working for many years. Now it seems not to work correctly. eth0 connects me to the internet. eth1 connects this machine to my LAN. This machine does NAT, so, right now the rest of machines on my LAN can't connect to the internet.

ifconfig now doesn't show up eth1. However, with -a it shows the nic.

```
# ifconfig

eth0      Link encap:Ethernet  HWaddr 00:80:5a:46:cf:9b  

          inet addr:212.231.219.241  Bcast:212.231.219.255  Mask:255.255.254.0

          inet6 addr: fe80::280:5aff:fe46:cf9b/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:2588420 errors:0 dropped:0 overruns:0 frame:0

          TX packets:51858 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000 

          RX bytes:178457853 (170.1 MiB)  TX bytes:23166819 (22.0 MiB)

          Interrupt:22 Base address:0xe800 

lo        Link encap:Local Loopback  

          inet addr:127.0.0.1  Mask:255.0.0.0

          inet6 addr: ::1/128 Scope:Host

          UP LOOPBACK RUNNING  MTU:16436  Metric:1

          RX packets:287 errors:0 dropped:0 overruns:0 frame:0

          TX packets:287 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:0 

          RX bytes:25548 (24.9 KiB)  TX bytes:25548 (24.9 KiB)

# ifconfig -a

eth0      Link encap:Ethernet  HWaddr 00:80:5a:46:cf:9b  

          inet addr:212.231.219.241  Bcast:212.231.219.255  Mask:255.255.254.0

          inet6 addr: fe80::280:5aff:fe46:cf9b/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:2584556 errors:0 dropped:0 overruns:0 frame:0

          TX packets:51816 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000 

          RX bytes:178217328 (169.9 MiB)  TX bytes:23151959 (22.0 MiB)

          Interrupt:22 Base address:0xe800 

eth1      Link encap:Ethernet  HWaddr ed:0b:00:00:e0:00  

          inet addr:192.168.0.1  Bcast:192.168.0.255  Mask:255.255.255.0

          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 txqueuelen:1000 

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

          Interrupt:40 Base address:0x2000 

lo        Link encap:Local Loopback  

          inet addr:127.0.0.1  Mask:255.0.0.0

          inet6 addr: ::1/128 Scope:Host

          UP LOOPBACK RUNNING  MTU:16436  Metric:1

          RX packets:287 errors:0 dropped:0 overruns:0 frame:0

          TX packets:287 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:0 

          RX bytes:25548 (24.9 KiB)  TX bytes:25548 (24.9 KiB)
```

The drivers are loaded, and the newly auto-generated udev rules file looks like this:

```
# cat /etc/udev/rules.d/70-persistent-net.rules 

# This file was automatically generated by the /lib64/udev/write_net_rules

# program, run by the persistent-net-generator.rules rules file.

#

# You can modify it, as long as you keep each rule on a single

# line, and change only the value of the NAME= key.

# PCI device 0x10ec:0x8168 (r8169)

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="ed:0b:00:00:e0:00", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

# PCI device 0x10ec:0x8139 (8139too)

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:80:5a:46:cf:9b", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
```

```
# grep -v ^# /etc/conf.d/net

config_eth1="192.168.0.1/24"

config_eth0="dhcp"

```

I can start /etc/init.d/net.eth* without errors, apparently, and the right IP is assigned (it doesn't complain). However, using ifconfig directly:

```
# LC_ALL=C ifconfig eth1 down

# LC_ALL=C ifconfig eth1 up

SIOCSIFFLAGS: Cannot assign requested address
```

Is my NIC fried or something? It used to work. I have tested booting a 2.6.36.2 kernel (using .37 now) and it made no difference. Reverting from udev 164-r1 to 151-r4 didn't make a difference either. Any ideas (other than trying a new NIC)?

Thanks beforehand.

ps. I can ping the nic locally.

```
# ping 192.168.0.1

PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.

64 bytes from 192.168.0.1: icmp_req=1 ttl=64 time=0.067 ms

64 bytes from 192.168.0.1: icmp_req=2 ttl=64 time=0.048 ms

64 bytes from 192.168.0.1: icmp_req=3 ttl=64 time=0.047 ms

64 bytes from 192.168.0.1: icmp_req=4 ttl=64 time=0.048 ms
```

ps(2). I found a thread where one person has the same problem, and the MAC for his card is the same that my NIC has, and a quite strange one, by the way (ed:0b:00:00:e0:00). The hardware problem theory is becoming stronger, I guess.

https://forums.gentoo.org/viewtopic-p-6554540.html#6554540

----------

## Jimini

Does the symbolic link "net.eth1" exist in /etc/init.d/? A few days ago, I upgraded to baselayout-2, which had the effect, that on a few machines these symbolic links were deleted. Nevertheless, ifconfig -a listed them all.

If the file is missing, create a new one by executing ln -s /etc/init.d/net.eth1 /etc/init.d/net.lo.

Best regards,

Jimini

----------

## Anon-E-moose

what does "route -n" return

You might also check to make sure that no other box on the lan has grabbed 192.168.0.1 

(unplug the cable from the card and see what it does)

You could also try changing the mac address

example -- mac_eth1="00:11:22:33:44:55" just make sure it doesn't conflict with a real one on another machine.

----------

## d2_racing

One good test to see if you card is dead :

```

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

# reboot

```

If the kernel see your card, then at least if not totally dead.

----------

## i92guboj

 *Jimini wrote:*   

> Does the symbolic link "net.eth1" exist in /etc/init.d/? A few days ago, I upgraded to baselayout-2, which had the effect, that on a few machines these symbolic links were deleted. Nevertheless, ifconfig -a listed them all.
> 
> If the file is missing, create a new one by executing ln -s /etc/init.d/net.eth1 /etc/init.d/net.lo.
> 
> Best regards,
> ...

 

The link exists, otherwise I wouldn't be able to run the /etc/init.d/* scripts at all. 

 *Anon-E-moose wrote:*   

> what does "route -n" return

 

```
# route -n

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

212.231.244.0   0.0.0.0         255.255.254.0   U     0      0        0 eth1

127.0.0.0       127.0.0.1       255.0.0.0       UG    0      0        0 lo

0.0.0.0         212.231.244.1   0.0.0.0         UG    4      0        0 eth1
```

 *Quote:*   

> You might also check to make sure that no other box on the lan has grabbed 192.168.0.1 
> 
> (unplug the cable from the card and see what it does)

 

Unplugging it and running again the init script for that nic doesn't help. Ifconfig still doesn't show it (only with -a).

 *Quote:*   

> You could also try changing the mac address
> 
> example -- mac_eth1="00:11:22:33:44:55" just make sure it doesn't conflict with a real one on another machine.

 

I don't think so, the net is not that big. However I have some new data about the problem. I wrongly assumed it was the old pci nic which was causing the problem, but it's the on-board nic the problematic one. With that in mind, I remembered that I upgraded my BIOS a couple of days ago to solve some other problem. So, I looked at the back of the computer, and found that the nic led is orange, instead of green as it should. So, it seems there's some nasty problem in there. According to my BIOS setup, the on-board lan controller is enabled. But... Well, it's time to try some other things.

----------

## Anon-E-moose

Something is messed up between udev ordering and your configuration.

You have eth0 set as dhcp, eth1 as 192* and ipconfig confirms this, 

but "routing" shows eth1 as being dhcp addr range (definitely not 192*)

----------

## i92guboj

 *Anon-E-moose wrote:*   

> Something is messed up between udev ordering and your configuration.
> 
> You have eth0 set as dhcp, eth1 as 192* and ipconfig confirms this, 
> 
> but "routing" shows eth1 as being dhcp addr range (definitely not 192*)

 

That state, probably, was due to me messing around the the interfaces. Probably they changed order more than once while I was doing my tests. I have been toying around with many rom versions (thanks to flashrom, programming my BIOS from linux is now a breeze, and having a PSU it scares my much less). 

I am one of the rare animals who actually do backups. So all I did was to run "flashrom -w foo.img", being "foo.img" an image of my old BIOS. After that everything works again. I have reflased back to the new version and I am sure the settings in the BIOS are ok, just like they were on the old BIOS, so, this is probably a bug introduced in the new BIOS image. I even trying some pnp options to let the OS do the job and bypass the BIOS, but nothing helped. So, I guess I will have to do incremental updates to my BIOS to find the concrete update that caused the nic to stop working.

The procedure is quite simple, I use flashrom to program the BIOS, then I delete /etc/udev/rules.d/70-persistent-net.rules, and reboot.

----------

## Anon-E-moose

Glad putting the old bios back worked.

Whenever I update my bios, I keep the old one for just such emergencies. 

Anyway, glad it's working.

----------

