# PCMCIA troubles with Toshiba laptop

## CTU-Butler

I am having quite some difficulty getting my Wireless 802.11G Cardbus card to play nicely with Linux and am wondering if anyone has any suggestions.

I am running kernel 2.6.11-gentoo-r7 on a Toshiba Equium Satellite A30 laptop. No matter what I do I cannot seem to get the machine to recognise that the card (a Belkin F5D7010 v3000UK) is in the slot.

Output of lspci:

```
0000:00:00.0 Host bridge: ATI Technologies Inc R200 AGP Bridge [Mobility Radeon 7000 IGP] (rev 05)

0000:00:01.0 PCI bridge: ATI Technologies Inc PCI Bridge [IGP 340M]

0000:00:13.0 USB Controller: ATI Technologies Inc OHCI USB Controller #1 (rev 01)

0000:00:13.1 USB Controller: ATI Technologies Inc OHCI USB Controller #2 (rev 01)

0000:00:13.2 USB Controller: ATI Technologies Inc EHCI USB Controller (rev 01)

0000:00:14.0 SMBus: ATI Technologies Inc ATI SMBus (rev 18)

0000:00:14.1 IDE interface: ATI Technologies Inc ATI Dual Channel Bus Master PCI IDE Controller

0000:00:14.3 ISA bridge: ATI Technologies Inc: Unknown device 434c

0000:00:14.4 PCI bridge: ATI Technologies Inc: Unknown device 4342

0000:00:14.5 Multimedia audio controller: ATI Technologies Inc IXP150 AC'97 Audio Controller

0000:00:14.6 Modem: ATI Technologies Inc IXP AC'97 Modem (rev 01)

0000:01:05.0 VGA compatible controller: ATI Technologies Inc Radeon Mobility 7000 IGP

0000:02:06.0 CardBus bridge: Texas Instruments PCI1410 PC card Cardbus Controller (rev 02)

0000:02:07.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)

0000:02:0a.0 FireWire (IEEE 1394): Texas Instruments TSB43AB21 IEEE-1394a-2000 Controller (PHY/Link)
```

If I understand correctly, if working the card should be seen here regardless of whether the drivers are loaded? (The Ethernet controller listed is my onboard 10/100 socket.)

The correct driver for the PCMCIA socket is apparently yenta_socket, which I have loaded as per lsmod:

```
Module                  Size  Used by

radeon                 74112  1 

snd_atiixp             16608  0 

ati_agp                 6668  1 

pcmcia                 19336  2 

yenta_socket           19720  2 

rsrc_nonstatic          9216  1 yenta_socket

pcmcia_core            41248  3 pcmcia,yenta_socket,rsrc_nonstatic

```

After looking through the pcmcia-cs mailing list archives, some people have had problems with the TI1410 bridge not being assigned an IRQ, however:

lspci -vv:

```
0000:02:06.0 CardBus bridge: Texas Instruments PCI1410 PC card Cardbus Controller (rev 02)

        Subsystem: Toshiba America Info Systems: Unknown device ff10

        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-

        Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-

        Latency: 168, cache line size 20

        Interrupt: pin A routed to IRQ 19

        Region 0: Memory at 1c001000 (32-bit, non-prefetchable)

        Bus: primary=02, secondary=03, subordinate=06, sec-latency=176

        Memory window 0: 1c400000-1c7ff000 (prefetchable)

        Memory window 1: 1c800000-1cbff000

        I/O window 0: 00004400-000044ff

        I/O window 1: 00004800-000048ff

        BridgeCtl: Parity- SERR- ISA- VGA- MAbort- >Reset- 16bInt- PostWrite+

        16-bit legacy interface ports at 0001
```

Seems to be being assigned an IRQ ok. When /etc/init.d/pcmcia starts one of the lights on the card flashes very quickly as 'cardmgr: watching 1 socket' is printed, but cardctl gives the following output:

```
cardctl status:

Socket 0:

  3.3V CardBus card

  function 0: [ready]

cardctl info:

PRODID_1=""

PRODID_2=""

PRODID_3=""

PRODID_4=""

MANFID=0000,0000

FUNCID=255

```

Useful...

I've hit the wall in terms of both these forums and googling so I can't help thinking that I am missing something really obvious which I hope someone will be able to point out  :Smile: 

Some other stuff which may/may not help:

After reading through the forums I'm pretty sure I need to use ndiswrapper and my Windows Rt2500.inf driver for the card. However when modprobed ndiswrapper only mentions 'driver present', nothing about the hardware. I'm guessing this is to do with the card not being seen rather than it being the wrong driver?

dmesg on pcmcia stuff:

```
Linux Kernel Card Services

  options:  [pci] [cardbus] [pm]

ACPI: PCI interrupt 0000:02:06.0[A] -> GSI 19 (level, low) -> IRQ 19

Yenta: CardBus bridge found at 0000:02:06.0 [1179:ff10]

Yenta: Using CSCINT to route CSC interrupts to PCI

Yenta: Routing CardBus interrupts to PCI

Yenta TI: socket 0000:02:06.0, mfunc 0x01111122, devctl 0x64

Yenta: ISA IRQ mask 0x0c78, PCI irq 19

Socket status: 30000020

cs: IO port probe 0xc00-0xcff: excluding 0xc00-0xc07 0xc10-0xc17 0xc50-0xc57 0xc68-0xc6f 0xcd0-0xcd7

cs: IO port probe 0x800-0x8ff: clean.

cs: IO port probe 0x100-0x4ff: excluding 0x220-0x227 0x300-0x307 0x310-0x317 0x4d0-0x4d7

cs: IO port probe 0xa00-0xaff: clean.

```

On removing the card dmesg gives the following:

```
PCMCIA: socket db028c2c: *** DANGER *** unable to remove socket power
```

Putting the card back in then gives no additional messages.

Kernel config for PCMCIA stuff:

```
#

# PCCARD (PCMCIA/CardBus) support

#

CONFIG_PCCARD=m

# CONFIG_PCMCIA_DEBUG is not set

CONFIG_PCMCIA=m

CONFIG_CARDBUS=y

#

# PC-card bridges

#

CONFIG_YENTA=m

CONFIG_PD6729=m

CONFIG_I82092=m

CONFIG_I82365=m

CONFIG_TCIC=m

CONFIG_PCMCIA_PROBE=y

CONFIG_PCCARD_NONSTATIC=m

# 

# Wireless LAN (non-hamradio)

# 

CONFIG_NET_RADIO=y

#

# PCMCIA network device support

#

CONFIG_NET_PCMCIA=y

```

I have tried both the latest test version of Fedora and Knoppix and neither of them could get the card recognised either, so I've run out of ideas. Please help!

Thanks

(sorry for the long post but wanted to include as much as I could!)

----------

## fixit

 *Quote:*   

> If I understand correctly, if working the card should be seen here regardless of whether the drivers are loaded?

 

Yes, lspci should show the hardware whether the driver is loaded for it or not.

I have a different notebook and different wireless card, but was in a somewhat similar situation in that my PCMCIA wireless adapter wasn't supported by a kernel driver. Here's what I compiled in (didn't use modules as it seemed to me like it just added an extra step of making sure stuff was getting loaded):

```
Bus options (PCI, PCMCIA, EISA, MCA, ISA) --->

 PCCARD (PCMCIA/CardBus) support --->

  <*> PCCard (PCMCIA/CardBus) support

  <*> 16-bit PCMCIA support

  [*] 32-bit CardBus support

  <*> CardBus yenta-compatible bridge support

Device Drivers --->

 Wireless LAN (non-hamradio) --->

  [*] Wireless LAN drivers (non-hamradio) & Wireless Extensions
```

That's all. I didn't enable PCMCIA network device support, no PCI Hotplug Support in the kernel, no drivers under Wireless LAN drivers -- just the category itself. I don't know if your PCMCIA bridge is yenta or not. I would try to confirm that if I were you, and enable whichever bridge is correct.

As per the handbook, I did: USE="-X" emerge pcmcia-cs and then: rc-update add pcmcia default, during the install.

Then I did: emerge hotplug, so that the system would respond when the card was inserted or removed.

----------

## CTU-Butler

Thanks for the swift reply.

 *fixit wrote:*   

>  *Quote:*   If I understand correctly, if working the card should be seen here regardless of whether the drivers are loaded? 
> 
> Yes, lspci should show the hardware whether the driver is loaded for it or not.

 

I get the feeling that this is the crux of the problem but I don't really have any idea how to resolve it...

 *fixit wrote:*   

> I have a different notebook and different wireless card, but was in a somewhat similar situation in that my PCMCIA wireless adapter wasn't supported by a kernel driver. Here's what I compiled in (didn't use modules as it seemed to me like it just added an extra step of making sure stuff was getting loaded):
> 
> <snip>
> 
> That's all. I didn't enable PCMCIA network device support, no PCI Hotplug Support in the kernel, no drivers under Wireless LAN drivers -- just the category itself. I don't know if your PCMCIA bridge is yenta or not. I would try to confirm that if I were you, and enable whichever bridge is correct.

 

The Gentoo LiveCD, Fedora and Knoppix all used yenta_socket, I've compiled all the bridges in now and yenta_socket still seems to be used. I do get the following added in dmesg now though:

```
Device 'i823650' does not have a release() function, it is broken and must be fixed.

Badness in device_release at drivers/base/core.c:85

 [<c0248bf2>] kobject_cleanup+0x9a/0x9c

 [<c0248c1c>] kobject_put+0x1e/0x22

 [<c0248bf4>] kobject_release+0x0/0xa

 [<c057beb1>] init_i82365+0x1bf/0x1d5

 [<c0251b7a>] pci_register_driver+0x72/0x7a

 [<c057a8a7>] init_raw1394+0xa3/0xc5

 [<c055e7f6>] do_initcalls+0x53/0xb5

 [<c010028f>] init+0x0/0x109

 [<c010028f>] init+0x0/0x109

 [<c01002be>] init+0x2f/0x109

 [<c01012a0>] kernel_thread_helper+0x0/0xb

 [<c01012a5>] kernel_thread_helper+0x5/0xb

```

Not sure of it's relevance though as the other probes all report back negative.

 *fixit wrote:*   

> As per the handbook, I did: USE="-X" emerge pcmcia-cs and then: rc-update add pcmcia default, during the install.
> 
> Then I did: emerge hotplug, so that the system would respond when the card was inserted or removed.

 

As per the handbook I've already done this. Any other ideas?

<edit>Meant to add the card works fine under Windoze, but when it comes to choose between OS or wireless card, I can always get a USB wireless adapter I guess  :Wink:  </edit>

----------

## quatsch

make sure you have ndiswrapper set up correctly. 

ndiswrapper -l

should list the drivers installed and you should see rt2500 in the list. If it is installed,

modprobe ndiswrapper

should load the driver and create wlan0 and you should see something to this effect in dmesg and cardctl should also report the card correctly.

Also, maybe this page helps:

http://gentoo-wiki.com/HARDWARE_rt2500

----------

## CTU-Butler

Thank you for the reply.

 *quatsch wrote:*   

> make sure you have ndiswrapper set up correctly. 
> 
> ndiswrapper -l
> 
> should list the drivers installed and you should see rt2500 in the list. If it is installed,
> ...

 

ndiswrapper -l:

```
Installed ndis drivers:

rt2500  driver present

```

but I have seen other people with working configs usually have "rt2500 hardware,driver present".

Tried emerging the rt2500 driver from portage and modprobing it, same thing happens, no wireless interfaces.

----------

## chidychi

Hey 

Did you ever get it working.  

I am having the same problem with the same cardbus.  except i get nothing in dmesg when  i pull out the card.

cardctl status always reports no card.

very frustrating  :Evil or Very Mad: 

----------

## CTU-Butler

No, I have still had no luck at all. Anyone else struggling with the same problem?

----------

## chidychi

When you use knoppix can you see your card in lspci ?

----------

## CTU-Butler

No I cant.

As a mini update I managed to get it working using a friend's copy of SUSE 9.3 using the following parameters on booting:

```
pci=usepirqmask pci=biosirq
```

after some hints from dmesg under SUSE. Initially it was getting assigned an IRQ of 0 so ndiswrapper couldn't load, but it did show in lspci. After making the above changes it worked fine in SUSE. It's assigned ID 0000:03:00.0 on lspci. (shame that just about everything else doesn't work under SUSE hehe  :Smile: )

However I have tried this with Knoppix and Gentoo and no luck, the lines in dmesg that mentioned 'try pci=usepirqmask' and 'use pci=biosirq' dont even show. I'm aware that SUSE use some proprietary bits in the kernel but I have googled and seen people with other distros using this option. I will try and get a hold of the exact lines somehow (having to post this from Windoze  :Embarassed: )

Still scratching my head here, but thanks everyone for the help so far. Just hoping this will help a bit more with a solution. Thanks a lot.

----------

## PMT

I have advice for you.

I wrote a guide for a similar laptop, and what I got working. Go here for it...the steps I wrote are quite involved. Go to the PCMCIA section.

Let me know how it works out!

----------

