I recently had the pleasure of getting a D-Link DFE 530TX+ ethernet card to work under Linux. And by pleasure, I mean that it took a bit of tinkering to get the damn thing working.
I checked the Linux Ethernet How-to before buying this card. The DFE 530TX is listed as being supported by Linux. I bought the DFE 530TX+. Note the "+"; it makes a big difference.
As it turns out, the 530TX+ uses the RealTek 8139 chipset, which is a completely different chipset than the one used by the 530TX. And of course the RealTek 8139 chipset is only semi-supported by Linux. Bummer.
Not surprisingly, a few Google searches revealed that I'm not the only one to have trouble getting this particular card working under my OS of choice. Believe it or not, D-Link provides Linux drivers on their web site. For some reason I chose not to try those drivers. We'll come back to that part later.
Anyhow, and bit more Google-ing revealed that one needs to enable experimental code in the kernel in order to have access to the rtl8139 driver (in the 2.2 kernels anyway, which is what I'm using). So I did. And the driver didn't work. When I tried to load it, I saw the dreaded "Device or resource busy" error. Sigh. I tried passing IRQ and I/O addresses as parameters to the driver (which I was fairly certain was not necessary), to no avail.
After a bit of grumbling and saying of naughty words, I was all ready to buy a new ethernet card. But, as a last-ditch effort, I decided to try the vendor-supplied drivers. I compiled rtl8139.c,and installed rtl8139.o into the modules directory. With very low expectations, I ran insmod rtl8139. And it worked. The driver loaded and recognized my card.
Yeah, I know. I should have used this driver in the first place. But it's working now, so I can't complain. Not too much, anyway.