Can't get PCMCIA 802.11b card to work in Linux

Electrode

Diamond Member
May 4, 2001
6,063
2
81
Hey all. I'm having yet another hair loss inducing problem with PCMCIA 802.11b cards in Linux.

I have pcmcia-cs and wireless_tools all set up, and I have built all neccissary kernel modules. The setup (software-wise) is almost identical to that of another computer, which works just fine. However, when I plug the card in, I get this error in dmesg:

eth0: failed to reset hardware (err = -19)
orinoco_cs: register_netdev() failed

What might the problem be, and how do I fix it?

Thanks in advance for any help!
 

TonyRic

Golden Member
Nov 4, 1999
1,972
0
71
What distro and version? Stock kernel or upgraded generic from kernel.org?

If it WAS a stock kernel you should have only needed to adjust the section concerning the Orinoco card in /etc/pcmcia/wireless.opts

I have successfully used the updated pcmcia-cs and wireless tools, but the newest kernels (2.4.18 and 19) have all that is needed built in and it works great. :)

 

TonyRic

Golden Member
Nov 4, 1999
1,972
0
71
Well, if you followed the instructions to the letter, and setup /etc/pcmcia/wireless.opts then you should be fine.
 

Electrode

Diamond Member
May 4, 2001
6,063
2
81
There are no instructions to follow. All I know is that the same exact card, with the same exact configuration works on one computer and doesn't work on another. :frown:
 

Electrode

Diamond Member
May 4, 2001
6,063
2
81
Once I dig out the floppy drive I'll put the kernel .config, /etc/pcmcia/network.opts, /etc/pcmcia/wireless.opts, and /var/log/messages on a disk and post links to them here.

Unless, of course, I get it working before then. Right now I'm trying Slackware 8.0.0 and compiling pcmcia_cs and wireless-tools myself.
 

andrey

Diamond Member
Oct 9, 1999
3,238
1
81
Hi,

I am not an expert on this, but I've got Orinico Gold wireless card to work on Linux RedHat 7.3 (kernel 2.4.18-5) and the following might help.

When I installed linux I had the wireless card inserted. I think this is important. At least, I have not figured out how to get things to work if the card is not in place during the install. During install I set the card to not activate on boot and to use dhcp. You can change these parameters by editing /etc/sysconfig/network-scripts/ifcfg-eth1 (assuming your card is configured as eth1).

On booting up the PCMCIA devices were working automatically. Inserting the wireless card resulted in two beeps which means all is okay. But this is not sufficient to connect to a network.

I need to connect to two different networks - work and work. While the home network does have an ESSID (provided by the router) this information is not needed to make the connection. In contrast, my work connection needs to specify both the ESSID and a KEY value. In what follows I will set my work ESSID to "WorkESSIS" and the KEY to "WorkKEY". You will need to change these to the correct values for your network.

I needed to edit /etc/pcmcia/wireless.opt. This file contains the following line:

# Note also that this script will work only with the original Pcmcia
# scripts,and not with the default Red Hat scripts. Send a bug
# report to Red Hat ;-)

I don't know if this is true or not, but for me this file was the key to getting my system to work.

I edited this file to look like this:

# /etc/pcmcia/wireless.opt
# Wireless LAN adapter configuration

case "$ADDRESS" in

home,*,*,*)
INFO="Home Network"
ESSID="any"
;;

work,*,*,*)
INFO="WORK"
ESSID="WorkESSID"
KEY="s:WorkKEY"
;;

esac

This results in two different "schemes" - home and work. Each scheme is made active by entering (as root):

cardctl scheme <scheme-name>

e.g. cardctl scheme home.

This allows me to switch networks easily.

After selecting your scheme you might need to restart pcmcia:
/etc/init.d/pcmcia restart

Finally bring up the network: pump -i eth1
(You may need to install pump).

You should now be connected. You don't really need pump. I've found that if I boot up without the card in place, switch schemes, and then insert the card, then the connection is made automatically. If I do not need to change schemes then inserting the card before booting up will automatically connect me to the network. However, I've found there are times when pump is needed.

Hope this helps.
Andrey
 

andrey

Diamond Member
Oct 9, 1999
3,238
1
81
When you insert your Orinoco PCMCIA card, how many and what kind of beeps do you get?

--Andrey
 

Electrode

Diamond Member
May 4, 2001
6,063
2
81
two beeps, one high and one low

IIRC, this indicates that some error occurred. not exactly helpful info...
 

andrey

Diamond Member
Oct 9, 1999
3,238
1
81
When the ORiNOCO PC Card is inserted, the card manager
will emit beeps in different tones to indicate success
or failure of particular configuration steps.
a) Two high beeps
- The card was identified and configured
successfully.
b) One high beep followed by a low beep
- The card was identified, but could not be
configured.
- Examine the system log (dmesg) for PCMCIA error
or warning messages.
c) One low beep
- The card could not be identified.
- Execute "cardctl ident" to display the adapter
PnP information.
Verify the PnP information matches an entry in
the PCMCIA configuration file
(/etc/pcmcia/config).
- Examine the system log (dmesg) for PCMCIA error
or warning messages.

The ORiNOCO PC Card has two LEDs that indicate the
state of the adapter and network.
* Power LED (toward the middle of the adapter)
- This LED indicates power has been applied, and
the card is functional. In normal operation mode
with Card Power Management disabled, it will be
steady-on. With Card Power Management enabled, it
will blink rapidly (several times per second).
* Transmit/Receive LED (closer to the edge of the
adapter)
- This LED will flash when it detects transmit or
receive packets.

* Both LEDs blink at the same time every 10 seconds.
- The adapter was unable to make contact with the
named wireless network. Verify the network_name,
in the config.opts file matches the network name
of the access point.
* LEDs indicate normal operation with the Power LED
steady-on or blinking rapidly and Transmit/Receive
LED flashing, but no traffic.
- If the network is operating in normal mode (ie.
port_type = 0 or not specified), and a
network_name has been specified, verify the
workstation network parameters (ifconfig, route,
etc.) are correct for the wireless network.
- If the network is operating in Ad-Hoc (peer-to-
peer) mode (ie. port_type = 3), the adapter needs
another workstation/adapter to communicate with.
Verify the network parameters on both of the
workstations (ifconfig, route, etc.) are correct.


Also, as I mentioned in my original reply, I didn't have to install any additional drivers
or updates in order for my Orinoco Gold PCMCIA card to work. All I had to do is to
edit /etc/pcmcia/wireless.opt file.

--Andrey
 

Nighthawk69

Golden Member
Oct 10, 2000
1,113
0
0
OK, here's what I did to get my Orinoco card working with the Orinoco PCMCIA-PCI adapter....

First, I went to the Orinoco website and grabbed their Linux PCMCIA card drivers. These drivers had instructions to use the orinoco-cs drivers together with those when installing. What I did was follow the instructions in the Orinoco driver package to the the letter. Now, after I did all that, I still could not get it working and after talking to the people in #redhat irc I found that I needed to disable my ethernet card that was installed in this computer too... right away, the wireless came up.

I suggest you follow the orinoco driver instructions to the letter and see where that gets you, if you have not done so already (my apologies if you have).

Regards,

 

Soybomb

Diamond Member
Jun 30, 2000
9,506
2
81
I just quickly skimmed the thread, but did you compile pcmcia support into the kernel? Insert the card and run lsmod and give us the output
 

Electrode

Diamond Member
May 4, 2001
6,063
2
81
all needed support is enabled in the kernel. drivers for the card are made as modules. lsmod when card is inserted shows that 'hermes', 'orinoco', and 'orinoco_cs' are loaded, in addition to the modules for sound and other non-PCMCIA-related stuff.

Also, there is no ethernet NIC present. Just the loopback interface and the 802.11b card.

Now that I mention it, I wonder if killing the loopback interface would help...
 

Nighthawk69

Golden Member
Oct 10, 2000
1,113
0
0
I show wavelan_cs in my lsmod. Make sure you are following the instructions that came with the orinoco drivers that you download of the orinoco wireless website.
 

Electrode

Diamond Member
May 4, 2001
6,063
2
81
So far, I have tried every single recommendation you have all given (most of you said 'read the instructions', which doesn't help) and nothing has helped. Some things made it worse, but nothing has made anything better.

The only indications of any sort I get are still a high-low beep and a "failed to reset hardware (err = -19)" message when I insert the card.

If anyone has any advice to offer, OTHER than 'read the instructions', please post! Nothing I've done has changed anything and I'm completely out of ideas!!! :|:frown:
 

andrey

Diamond Member
Oct 9, 1999
3,238
1
81
Electrode,
I hear you regarding the instructions, and believe it or not, I found Orinoco driver documentation horrible and totally not up to date.

I actually have two laptops. One is IBM Thinkpad T23 (my personal) and another is Dell Inspiron 4100 (work). I use my Orinoco Gold card in both laptops and on both laptops I have Linux RH 7.3 (kernel 2.4.18-5). Originally on my Dell laptop I've tried to follow Orinoco's instructions and before compiling pcmcia kernel, laptop would make two high beep sounds when card was inserted. After compiling pcmcia kernel (which I found later was totally unnecessary), laptop started to make one high and one low beep. Unfortunately I didn't look in dmesg to see exactly what was the error. As I found with my IBM laptop, 2.4.18 kernel already has built-in support for wireless PCMCIA NICs and in my case RH 7.3 even came with drivers for Orinoco Wireless card. Why Orinoco documentation still recommends to go through compiling pcmcia kernel and installing drivers, is beyond me.

Can you at this point obtain "clean" kernel or maybe revert the changes you've made to your current kernel? As I mentioned in my original thread, all you have to do with 2.4.18 kernel is to edit /etc/pcmcia/wireless.opt file, choose the correct scheme and start cardctl. That's all you have to do, nothing fancy or special.
 

Electrode

Diamond Member
May 4, 2001
6,063
2
81
I suppose I could do that. Anything's worth a try at this point.

By 'installing the kernel drivers', what exactly are you referring to? I haven't made any modifications to the kernel (as in patches) that involve PCMCIA wireless cards.

Here is the exact procedure I last did:

1. Powered on with card inserted (same as I do on the other system)
2. Installed Linux. Did not install pcmcia_cs or wireless-tools packages
3. Configured and built kernel.org 2.4.18 kernel with preempt, lockbreak, vm-strict-overcommit, crypto, jfs, xfs, supermount, netdev-random, and emu10k1 patches applied
3. Compiled pcmcia_cs and wireless-tools packages myself
4. Edited /etc/pcmcia/network.opts (the only file I've ever had to edit on the other system)
5. Rebooted
6. When cardmgr starts, I hear the high-low beep pattern (always high-high on other system) and the card doesn't work

The only significant difference between the two systems is that the one that works is a desktop with the orinoco-only pcmcia-pci adapter, and the one that doesn't is a Compaq Armada 7750MT laptop with actual built-in cardbus slots. The orinoco card is the only PCMCIA card installed (for now anyway. I ordered a PCMCIA USB 2.0 card a few days ago, which I hope is more cooperative).
 

manly

Lifer
Jan 25, 2000
13,178
3,957
136
Originally posted by: Electrode
I suppose I could do that. Anything's worth a try at this point.

By 'installing the kernel drivers', what exactly are you referring to? I haven't made any modifications to the kernel (as in patches) that involve PCMCIA wireless cards.
He means to use the orinoco_cs drivers, written by David Gibson, that were integrated into the kernel tree beginning in 2.4.8. These are the drivers I use, and they seem to work well.

The only significant difference between the two systems is that the one that works is a desktop with the orinoco-only pcmcia-pci adapter, and the one that doesn't is a Compaq Armada 7750MT laptop with actual built-in cardbus slots. The orinoco card is the only PCMCIA card installed (for now anyway. I ordered a PCMCIA USB 2.0 card a few days ago, which I hope is more cooperative).
That difference does not appear to be relevant because the first high beep indicates the PCMCIA subsystem is working properly.

Although orinoco_cs is part of the standard Linux kernel, you can download an updated version from David Gibson's FTP site. Google can find it. Be forewarned there's sparse documentation available, which you've already discovered.

If you can't get orinoco_cs working, you can follow Nighthawk's suggestion to try Agere's wvlan_cs drivers. They might even provide tech support for those drivers, but I wouldn't count on it.