[solved/workaround] nic e1000e disappears in 13.37
Hi,
I have been running Slackware for quite some time. Started with Slackware 8.0, then moved to 10.0, then 12.0 when that came out. Another machine was running 13.0, which I've upgraded to 13.1 and then to 13.37 using the UPGRADE.txt method. For the 12.0 machine the upgrade failed with 13.0 (filesystem of root partition could not be read although it could read the /boot). So I decided to do a fresh 13.37 install. I have an onboard nic forcedeth and a PCI card skge (3com2000) and a PCI-E intel e1000e card. There is also a wifi thingy on the mainboard which I do not use. The onboard is eth0 and in /etc/rc.d/inet1.conf defined with fixed ip 192.168.1.3 (internal lan). The e1000e is eth1 fixed at 10.0.0.152 to connect to my ADSL modem. The skge is eth2 had dhcpcd provided ip from my cable ISP. I have used udev to swap eth2 and eth0 names. Code:
/etc/rc.d# cat /etc/udev/rules.d/70-persistent-net.rules I first thought it had to do with dhcpcd because logs show that the e1000e was bringing down the interface every 3 seconds or so. Therefore I swapped the dhcpcd to the skge card. Than that was bringing down the interface. using dhclient on the skge it worked to get all 3 interfaces up. Now I have rebooted I no longer see the e1000e card at all. lsmod shows that the module is loaded but there is no eth1. I've upgraded the intel driver supplied with 13.37 to 1.3.17 which is the latest according to intel but no result. The same hardware has been running under Slackware 12.0 without any problem. If I put back my Slackware 12.0 bootdisk (which I still have, backup with dd total disk) all networks come up fine. lspci : Code:
root@riwilinux:/var/log# lspci Code:
root@riwilinux:/var/log# ifconfig Thanks for any hints you may have. Sorry for the lengthy post. Richard |
messages :
Code:
Jul 5 18:26:55 riwilinux kernel: [ 7.411877] EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null) |
I have now recompiled the kernel + modules for my Athlon64 x2-3800 CPU
I reinstalled the intel e1000e 1.3.17 driver I removed the udev/rules.d/70..net file so the system will re create it. I swapped the cables so no eth renaming will be needed. skge will become eth0 forcedeth is now eth1 e1000e should become eth2 but doesn't show yet Maybe I should swap the hardware, I still have one spare e1000e lying around. |
OK, one step further the new NIC is detected and dhcpcd is saying it went OK :
Code:
root@riwilinux:~# /sbin/dhcpcd -p -t 10 eth2 but ifconfig still says it can't find dhcp server : Code:
root@riwilinux:/home/richard# ifconfig eth2 Code:
Jul 5 22:50:37 riwilinux dhcpcd[1602]: eth2: broadcasting for a lease |
Now I have managed with "dhclient eth2" to put (again new) ip on the eth2
Also after killing dhclient, I can give dhcpcd eth2 again and the IP will stick. I would very much like someone's opinion about these issues : faulty HW? problem with e1000e? or with dhcpcd? I am afraid that if I reboot the machine again in a day or 2 that the problem will be back. This is annoying because the PC acts as my webserver, NAS, firewall, dual WAN router etc :) |
Today I renamed the eth devices again using the udev rules.
This because my internal lan was eth0 and my firewall and routing rules have eth0 in them and so on. Also I wanted the internal lan to be the forcedeth because it has better throughput than the PCI skge card (70MB/sec vs. 45 MB/sec with SMB). This has reproduced the problem. eth2, the e1000e card is not usable anymore after renaming eth with udev rules. I noticed that after renaming eth0 and eth1 (reversing the name) eth2 will no longer be available. Also the led's on the eth2 nic will stay off. Even after deleting the udev rules the eth2 will not become available again. Powering off the PC (full power off, remove AC cord) does not bring back eth2/e1000e. I re-inserted the first e1000e card that was giving problems yesterday, then deleted all udev net rules. Then I adapted my rc.routes, rc.inet1.conf, rc.firewall, dhcpd startup file, etc to match the new "internal_lan=eth1" Now eth2/e1000e is up and running, dhcpcd does not give a problem, eth1 is forcedeth, eth0 is skge PCI. I think that as long as I do not use the udev eth renaming that all will be OK My conclusion : DO NOT USE UDEV ETH RENAMING!! It is faulty and does not work properly (thanks for reading, sorry for my lone private ramblings). |
I just rebooted it and again lost the e1000e card.
I put it in the PEG16 slot instead of the PCI-E 1x slot but there it does not work at all. So I deleted all udev rules again, swapped e1000e cards once more, inserted in the PCIE 1x slot, and it is working again now. Albeit with yet again a new order of eth devices so I had to redo my scripts and config again. To me it looks as if the e1000e is not recognized IF any net rules are listed under /etc/udev/rules.d. And once it has failed I need to do a : remove rules,shutdown, remove NIC, (boot, shutdown), insert NIC, boot I'll buy another PCI-E Gbit NIC, see if that is better. Any recommendations? Preferably something compatible with slackware 13.37 ;) |
Because the e1000e together with udev is not stable for me in 13.37 I have decided to go another way :
I removed the e1000e. Now I only have onboard forcedeth for local lan and the PCI card skge for external lans. I defined with vconfig a vlan interface on the skge card. Now in my cisco slm2008 I route both external vlans on the same cable to the Slackware router PC. I adapted my firewall and routing scripts to match. All works OK now. Code:
root@riwilinux:~# ifconfig |
All times are GMT -5. The time now is 11:11 AM. |