[conspire] Re: pcmcia 16 bit modems
rick at linuxmafia.com
Sun Jan 5 13:39:23 PST 2003
Just catching up on old list-mail. Apologies for breaking threading,
but I no longer have Dan's original in my mailbox, and so have to quote
from the Web archive.
Quoting Dan (robxbob at LinuxWillBe.com):
> I'm looking for suggestions on a good pcmcia modem to buy for my
> linux laptops.
> I'm convinced I need a pcmcia 16 bit pc-card modem as opposed to
> a 32 bit pcmcia device since my current (working) network cards have
> "pc-card 16" written on them.
You know, I didn't address the question when you first posted it,
because I wasn't sure about this, but: My recollection is that the
32-bit PCMCIA "CardBus" stuff is pretty much fully backwards compatible.
That is, I'll bet that a card described as 32-bit/CardBus will work OK
in any PCMCIA socket -- and all you have to do is use drivers whose
names end in "cs" for Card Services, instead of "cb" for CardBus. But I
don't know this for certain.
> Is a pcmcia 16 bit pc-card modem enough of a generic device that
> I may be free to pick one from a wide variey of choices?
The 3Com / US Robotics / Megahertz cards _tend_ to be safe choices,
though I know those mainly from combo (ethernet/modem) cards. But
there's the winmodem plague in their product line, as in many others.
(The cheaper the card, the more likely it is to be a winmodem, because
winmodems are all about cutting costs by omitting circuitry.)
You could do a lot worse than to just print out the PCMCIA section of
Rob Clark's "winmodem" database, and take it with you to stores:
In Linux, cards get detected by the /sbin/cardmgr daemon (part of David
Hinds's PCMCIA Card Services aka PCMCIA-CS package). cardmgr queries
the card for its identity string or manufacturer ID ("manfid"), and then
compares that string or manfid against known entries in the
SUPPORTED.CARDS database, here: /etc/pcmcia/config (Don't be scared by
the word "database": It's a plain old flat text file.)
I believe you can actually update your /etc/pcmcia/config from updates
David posts here: http://pcmcia-cs.sourceforge.net/ftp/SUPPORTED.CARDS
When you insert a card and cardmgr detects the insertion event, you'll
(always) hear a beep, to acknowledge that. A second or two later,
depending on whether cardmgr finds a match for the card's ID string or
manfid in /etc/pcmcia/config, you'll either hear another of the same
beep (match found), or a lower-pitched beep (no match).
If a match has been found, then cardmgr will initiate an "insmod"
(insertion of a driver module into the running kernel) of the PCMCIA
driver indicated as appropriate for that card. Here's an example
/etc/pcmcia/config entry that looks for ID strings:
card "Megahertz XJ2288 V.34 Fax Modem"
version "MEGAHERTZ", "XJ2288", "V.34 PCMCIA MODEM"
...and an equivalent one that looks for manfids:
card "Megahertz XJ2288 V.34 Fax Modem"
manfid 0x0101, 0x1234
If a match is _not_ found, then cardmgr won't attempt anything further
until you give it more to go on. Such as one of the two entries above,
which say "Look out for these strings (or these manfids). If you see
them, then insmod the serial_cs driver. No special options."
Essentially, somebody owned an early sample of one of those cards, did
"cardmgr ident" at the Linux command prompt to query it manually for its
ID strings and manfids, and then sent David e-mail saying "Hey, I have
this new Megahertz XJ2288 PCMCIA modem that your Card Services package
doesn't support yet. Here are its 'cardmgr ident' return values." Next
release, David would include a new entry for that card in
/etc/pcmcia/config . Meanwhile, the card's owner probably hand-edited
the local-additions file, /etc/pcmcia/config.opts , to contain an entry
like one of the above.
I had to do exactly that, for a couple of my old cards. Here's stuff I
added to my /etc/pcmcia/config.opts:
card "Cisco 350"
manfid 0x015f, 0x000a
card "Intel EtherExpress PRO/100 LAN/Modem PC Card Adapter"
version "Intel", "EtherExpress(TM) PRO/100 LAN/Modem PC Card Adapter", "PRO/10 0 M16B", "1.00"
bind "xirc2ps_cs" to 0
In the case of the Intel card, I didn't care at that time whether Linux
could use the modem half of that card, just the ethernet half, so I
didn't bother to tell it to bind serial_cs to card function #1, just
the xirc2ps_cs driver to function #0. (I guessed how that worked by
looking at other entries for Intel cards, and experimenting.)
However, with reasonable luck, you won't have to do any of that.
Hmm, David's SUPPORTED.CARDS file has words of wisdom on the
Modem and serial cards:
[ Virtually all modem cards, simple serial port cards, and
digital cellular modems should work. The only exceptions are
so-called "WinModems" that require special drivers. ISDN
modems that emulate a standard UART are also supported. Some
Winmodem drivers do exist (i.e., the ltmodem driver for Lucent
chipsets). For more information about WinModems, drivers,
etc, see either http://www.o2.net/~gromitkc/winmodem.html,
http://www.linmodems.org, or http://linmodems.technion.ac.il ]
[serial_cs driver] [x86,axp,ppc,smp]
Advantech COMpad-32/85 dual port, COMpad-32/85B-4 quad port
Anycom ECO II dual serial
Argosy dual serial
Black Box I114A RS-422/485
Brain Boxes 2-Port RS-232
Brain Boxes BL-500 Bluetooth Adapter
National Instruments PCMCIA-232, PCMCIA-232/2, PCMCIA-232/4
National Instruments PCMCIA-485, PCMCIA-485/2
Omega Engineering QSP-100
Quatech, IOTech dual RS-232 cards
Quatech quad RS-232 card, dual and quad RS-422 cards
Socket Communications dual RS-232 card
Trimble Mobile GPS
[pcmcia-cs driver: serial_cb] [x86]
[2.4+ kernel driver: serial]
Xircom RBM56G, CBM56G
[ The following cards are WinModems and are NOT supported by
the serial drivers included in the PCMCIA package ]
3Com/Megahertz 3CXM356/3CCM356, 3CXM656/3CCM656
3Com/Megahertz XJ/CC2560, 3013, 3014
3Com/USRobotics 3014A, 3056, 3057
Billionton 56K HSP
Com1 Platinum MC221 Discovery 56K
IBM 10L7393, 10L7394
Lucent LT Winmodem
New Media WinSurfer
Paradise CW56K HSP
Xircom R2BM56W, R2BM56WB
> If it turns out that I need to try out 10 different pcmcia modems
> before I find one which works, I'd prefer to just buy a tiny external
> hayes compatible modem and connect it to my serial port.
Suggestion: Bring your (Linux-installed) laptop with you to the store.
If it's Action Computer, they'll be willing to let you plug cards into
your laptop's PCMCIA socket, to see if you can hear that cheery double
beep that means you've won without hassle.
Just for completeness's sake, I should mention that, just because
cardmgr finds a match for the card's ID strings or manfids, and just
because it's insmod'ed a driver that you or David Hinds considers
appropriate, doesn't absolutely guarantee that it'll actually work.
The manufacturer could have done something really perverse like change
to a completely different -- or subtlely different -- chipset without
changing the ID string / manfids. Or the card could ID properly but be
defective. But that's very unlikely to happen with something as basic
as a modem card.
Rick Moen This space for rant.
rick at linuxmafia.com
More information about the conspire