Profile

unixronin: Galen the technomage, from Babylon 5: Crusade (Default)
Unixronin

December 2012

S M T W T F S
      1
2345678
9101112131415
16171819202122
23242526272829
3031     

Most Popular Tags

Expand Cut Tags

No cut tags
Wednesday, February 7th, 2007 06:37 pm

I seek a geek with the fu of PC card support under Linux.

Specifically, I have here a Thinkpad 600E, model 2645-3AU.  It has a very recent and almost completely stock Slackware 11 install, except for a 2.6.20 kernel and pcmciautils 0.14.  I have also a Xircom Cardbus Ethernet 10/100 NIC, and a Linksys Wireless-G NIC.  The laptop has two TI PCI1251A CardBus bridges, both of which show up in lspci output.

Unfortunately, I can't get the cards to work in the slots.  Under kernel 2.4, cardmgr announced that it was managing two slots, then said it couldn't do so because of resource conflicts.  (However, the cards were visible to lspci when inserted.)  using kernel 2.6, all the services appear to be running, but inserting a card yields only the following kernel message:

llioness kernel: cs: pcmcia_socket1: cardbus cards are not supported

I'm pretty certain I enabled and properly configured every PCMCIA and CardBus related option in the kernel, including enabling PCI hotplug.  Can anyone with experience at having done this before give me any pointers?  This is the first time I've tried to deal with PCMCIA under Linux, and I don't really know enough about what I'm doing to know how to debug it.  I've been able to find exactly two relevant hits with a web search, and neither was helpful.  (In fact, one was someone having exactly the same problem with a SuSE install on a Thinkpad 600E, who as far as I can see never got an answer.)

Tags:
Thursday, February 8th, 2007 12:12 am (UTC)
Are you certain that those cards have linux drivers? I was not aware that any Wireless-G cards worked outside of linuxant. Not certain about the Xircom. I am not always up to date, but that information is about six months old. I hang out on the linux-sxs mailing list. This comes up about once a year.
Thursday, February 8th, 2007 12:20 am (UTC)
Right now, we're before the drivers-for-the-cards stage. The other card is a Xircom 10/100 card, for which there is a driver right there in the kernel source (and I enabled it); but it's never getting to the point of checking for drivers. It detects the card insertion and tells me Cardbus cards are not supported, and that's it. Something is clearly missing or misconfigured in Cardbus support, but I'll be damned if I can figure out what.

As far as Wireless-G drivers, what I've found seems to indicate that the solution there is ndiswrapper (http://ndiswrapper.sourceforge.net/).
Thursday, February 8th, 2007 01:59 am (UTC)
Er ... actually, NDISwrapper is one option. There's also a native Linux ACX100/111 driver project on Sourceforge (http://acx100.sourceforge.net/).
Thursday, February 8th, 2007 01:22 am (UTC)
I ran into problems on my Thinkpad A21 as well. As well as I remember it, which, mind, may be suspect, it's been a while:

There exist two sets of PCMCIA drivers for Linux. You can use the stuff built into the kernel, or you can use a separate package; in gentoo, I believe it was called something like pcmcia-utils or pcmcia-cs or something screwy like that. Oh, and I seem to recall there's a package for 2.4 kernels as well, just to muddy the waters a little more.

I couldn't make the built-in kernel stuff work-- apparently some assumptions are often made when coding drivers, and they want the external package that's not as folded into the kernel. If you use the external package, you have to turn off all the stuff in the kernel.

Sadly, this is about all I remember. (Oh, that and using ndiswrapper to make the wireless-G card talk...)
Thursday, February 8th, 2007 01:57 am (UTC)
There's the support in the kernel (for PCMCIA and for CardBus, separate but overlapping), and there's the utility packages (pcmcia-cs for 2.4 kernels, pcmciautils for 2.6 kernels). For 2.6, which is closer to working at present, apparently you're supposed to use pcmciautils plus the kernel drivers, and not use pcmcia-cs at all, as far as I can figure out.

I knew about NDISwrapper, yes; there's also a Linux native ACX100/111 driver project on Sourceforge (http://acx100.sourceforge.net/), and the Linksys WPC54G is indeed an ACX111 device. I'm looking into both, with preference given to the ACX native driver, but first I have to get the kernel to acknowledge that the system has CardBus support and at least make some effort to load a driver in the first place.

Unless, of course, the error I'm seeing means "You don't have a driver for this card". Just knowing that would be a step forward. But the PCMCIA How-To documents are silent on that error message.
Thursday, February 8th, 2007 02:20 am (UTC)
Not sure if anything at http://kernel.org/pub/linux/utils/kernel/pcmcia/howto.html or http://kernel.org/pub/linux/utils/kernel/pcmcia/pcmcia.html will help.
Thursday, February 8th, 2007 03:58 am (UTC)
Already been all the way through those, and the specific Linux-on-Thinkpad and even more specific Linux-on-Thinkpad-600E how-tos.

Good thought though.
Thursday, February 8th, 2007 06:51 am (UTC)
Search your .config for CONFIG_CARDBUS.
Thursday, February 8th, 2007 11:42 am (UTC)
CONFIG_CARDBUS=Y

It's there. And also:

CONFIG_HOTPLUG=Y
CONFIG_HOTPLUG_PCI=Y
CONFIG_HOTPLUG_PCI_IBM=Y
CONFIG_HOTPLUG_ACPI=Y
CONFIG_HOTPLUG_ACPI_IBM=Y
Thursday, February 8th, 2007 02:57 pm (UTC)
http://occom.no-ip.biz/r4000.html (http://occom.no-ip.biz/r4000.html) suggests
"add irqpoll to your kernel options" and
"add pci=assign-busses to your kernel's init line"
... and some other stuff.
Thursday, February 8th, 2007 03:17 pm (UTC)
Hmmm ....... Didn't come across that. I'll give it a shot and see if it works.
Thursday, February 8th, 2007 02:59 pm (UTC)
http://www.linuxquestions.org/questions/showthread.php?t=440706 (http://www.linuxquestions.org/questions/showthread.php?t=440706) says:
"With the stock 2.6.13 kernel I managed to get the cardbus card recognized.

First I installed (like I have done 20 times before, lol) the madwifi-ng driver (make and make install).

Second I added this to my /etc/lilo.conf.
append="irqpoll pci=assign-busses"

Third I added -f to the CARDMGR_OPTS= in the /etc/rc.d/rc.pcmcia file. Looks like this.
CARDMGR_OPTS=-f

Fourth, I removed port 0x800-0x8ff and port 0xc00-0xcff from the /etc/pcmcia/config.opts.

Then I rebooted and it worked like a charm."
Thursday, February 8th, 2007 04:22 pm (UTC)
Just tried all that. No joy....
Thursday, February 8th, 2007 04:32 pm (UTC)
Belay that! Forgot to rerun lilo.

CardBus subsystem is now online, detecting and identifying cards.

Next, to get the network interfaces up .....
Friday, February 9th, 2007 12:45 am (UTC)
I'm gonna stop watching this thread then. Open a new post if you run into trouble. ;-)