Wednesday, December 28, 2011

Problems with Realtek r8169 & Debian

I've run into a problem with Proxmox (technically, Debian 5) and Realtek NIC's, specifically Realtek R8169. Some probably know about this bug, and most system admins know almost automatically realtek = unacceptable. However, I am just going to jot down a few things I learned in the process of deducing this that I found useful. 

First: 

lshw -class network
Example of output are:
*-network
       description: Ethernet interface
       product: VT6105 [Rhine-III]
       vendor: VIA Technologies, Inc.
       physical id: 7
       bus info: pci@03:07.0
       logical name: eth0
       version: 9a
       serial: 00:88:88
       width: 32 bits
       clock: 33MHz
       capabilities: bus_master cap_list ethernet physical
       configuration: broadcast=yes driver=via-rhine driverversion=2.6.22-14-generic latency=32 maxlatency=8 mingnt=3 multicast=yes
       resources: ioport=d300-d3ff iomemory:d8883888-d88838ff
 
Also: 
 
awk '/:/ { sub(":", "", $1); print $1 }' /proc/net/dev 
Which lead me into looking into sed & awk. Good thing I have a copy of Linux + Guide to Linux Certification.
I think I understand these commands a littler better now, and how to better use them.
 
Also:
 
lspci -v : a lot of good information about the components of your system
 
I also ran into " Interface eth0 does not exist - e1000e/e1000 " when running:
 
/etc/init.d/networking restart
 
Which lead me to wonder how eth0 was assigned to an interface. What, or who does the assigning?
Udev. That is the answer, to the best of my knowledge.  
 
 
"I would suspect the same thing.  If that is what it is doing, delete

this file, unless you really need it for some custom settings, and reboot.

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

Mine starts with a 70, yours may vary.  The key thing is the net part.

Once you reboot, it should reset itself."
 
I also ran into this because I discovered odd entries in my /etc/network/config folder, things like eth1_rename, eth2_rename, etc.
I found out the way to clear that is through this /etc/udev/70-persistent-net.rules file. However, even after modifying this file, I was not
sucessful. I had to delete it completely along with /etc/networking/interfaces, which I added back after I rebooted. I assigned eth0 and eth1
to my intel dual port NIC, and it was smooth sailing from there. This comes as a bit of a blow, however, because I was going to have
one of the Realtek NICs bridged into my dynamips-server to attach to the routers themselves. I wasn't sure this was possible, but for now
it looks like I will not be able to implement that as planned. 

You can see here my Realtek NICs are not functioning properly, as they obviously have the same [incorrect] MAC addresses:
More to come on this as I decided to try and update the kernel to the newest version.
 
 

No comments:

Post a Comment