D-Link DFE-670 and Linux

Redhat 7.2 kernel 2.4.9-31 dell inspiron 7000 laptop
Other keywords: pcmcia, cardbus, DFE-670 TXD, DFE-670-TXD

This card is supported, but there is no mention of this on D-Link's website.  If it isn't Windows or Novell, they don't care.  Shame on you D-Link.  Get with the program.  At least have a "not officially supported but it works on redhat by doing this" informational page.  Vote with your dollars - if it doesn't say linux on the box, don't get it, if possible.  (I assumed a company the size of D-Link would have at least basic support/info for linux).

Okay, enuf soapboxing.

How I got it going (having never dealt with pcmcia stuff before it was a bit of the learning something new in linux adventure game one goes thru)

"apropos pcmcia"

yields quite a few items.  Of significance are cardmgr and cardctl.  And, unlike far too many programs, the man pages for both of these are excellent.  Read up a bit, esp. the "FILES" and "SEE ALSO" sections.

Okay, so stick the card in.  I suggest only having this one card in to keep things simple.

"/sbin/cardctl status"

yields very basic "5V 16 bit PC Card" and "Ready" for the socket its in.

"/sbin/cardctl ident [socketnum, either 0 or 1]"

product info: "D-Link" "DFE-670TXD" "PC Card"
manfid: 0x0149, 0x4530
function: 6 (network)

if it doesn't something is wrong, or at least different than what I get.

Okay, so how does this pcmcia stuff work?
Reading the manpage for cardmgr, it looks like cardmgr gets notified of a card insertion somehow, it reads the product info and whatnot from the card, tries to match it up in a database of cards -> drivers (/etc/pcmcia/config), and loads the appropriate driver and does the beep.  If the card doesn't have an entry in /etc/pcmcia/config, there is no driver to load and it does a lower pitched beep.

Looking at /etc/pcmcia/config I see that similar-sounding cards from D-Link are supported: DFE-650, DFE-660, and others.  Doing a google (god bless google!) search on DFE-670 produced the info that it is supported, but the two pages found don't say how to set it up.  The page at pcmcia-cs.sourceforge.net listing compatible cards has it under "pcnet_cs driver", so the existing entry for the DFE-650 in /etc/pcmcia/config is probably the one to copy and tweak.

At the end of /etc/pcmcia/config it has a "source" command to include any file in /etc/pcmcia ending in .conf.  How handy and thoughtful.  So (as root of course) make a new file /etc/pcmcia/dfe-670.conf, and in it copy the entry for DFE-650 from /etc/pcmcia/config, and tweak it to read as such:

card "D-Link DFE-670TXD PC Card"
    manfid 0x0149, 0x4530
    bind "pcnet_cs"

Yes, you want to have the quotes!  Save the file, now eject the card, push it back in, and ...
boop.  No worky.  Heh.  Turns out that cardmgr is a fancy little program, and it doesn't parse /etc/pcmcia/config each time a card is inserted - that info (and some hardware settings) are cached after the first read.  So, you have to send the cardmgr daemon a SIGHUP to reload all its configuration stuff.  Do that, eject the card, push it back in, and you should get the beep of success!

Linux home