# WLAN orinoco_cs card

## Black Zer0

I have a linksys card(really  old)  and I am trying to get it working.

I know it works with Linux because on the gentoo livecd it detected it up on eth2 and I simply used net-setup to get it working..

However getting it to work off the livecd seems ALOT harder

While on the livecd, I managed to figure out that the card uses a driver called orinoco_cs

so I 

```
/usr/src/linux-2.6.21-gentoo-r3/drivers/net/wireless/orinoco_cs.ko

/usr/src/linux-2.6.21-gentoo-r3/drivers/net/wireless/orinoco_cs.c

/usr/src/linux-2.6.21-gentoo-r3/drivers/net/wireless/.orinoco_cs.o.cmd

/usr/src/linux-2.6.21-gentoo-r3/drivers/net/wireless/orinoco_cs.o

/usr/src/linux-2.6.21-gentoo-r3/drivers/net/wireless/.orinoco_cs.ko.cmd

/usr/src/linux-2.6.21-gentoo-r3/drivers/net/wireless/orinoco_cs.mod.c

/usr/src/linux-2.6.21-gentoo-r3/drivers/net/wireless/.orinoco_cs.mod.o.cmd

/usr/src/linux-2.6.21-gentoo-r3/drivers/net/wireless/orinoco_cs.mod.o

/root/I.I.P./orinoco-0.15/orinoco_cs.c
```

and it's on my hard drive but I guess it's not in the kernel because I tried to

```
FATAL: Module orinoco_cs not found.
```

So far

```
-emerging orinoco-sn, a driver set of somekind(required me to disable hermes in the kernel which led to not being able to load orinoco and orinoco_cs was still not loadable so I unmerged it and put hermes back on

-put the following in conf.d/net(based on the gentoo wiki page on wireless):

key_bl_essid="s:MYWEPKEYWHICHYOUSHOULDNTKNOW enc open"

preffered_aps=( "bl_essid" )

sleep_scan_wlan0="1"

sleep_associate_wlan0="25"
```

If any knows what I should do

P.S. If you need anymore outputs in order to help please let me know

----------

## no_hope

You need to emerge the right firmware for your card. Probably net-wireless/prism54-firmware

----------

## Black Zer0

I think that did something but in dmesg

```
orinoco_cs: disagrees about version of symbol hermes_struct_init

orinoco_cs: Unknown symbol hermes_struct_init

orinoco_cs: disagrees about version of symbol orinoco_interrupt

orinoco_cs: Unknown symbol orinoco_interrupt

orinoco_cs: disagrees about version of symbol alloc_orinocodev

orinoco_cs: Unknown symbol alloc_orinocodev
```

The "link" LED light is also lit up but I don't see a new interface showing up.

How to I make it agree about the version and/or get it working.

----------

## no_hope

Not entirely sure what those "disagreement errors" mean (first time I see those). You are probably emerged the modules with a slightly differently configured kernel than you have now, or the modules you emerged require a different kernel.

Try unmerging orinoco-sn (I assume that's the problem), then compile and re-install drivers for your card that came with the kernel. If still doesn't work, go to kernel directory, do "make clean && make && make modules_install"

----------

## Black Zer0

I did those make commands you said and now dmesg shows this when I insert the card

```
cs: pcmcia_socket0: time out after reset.

cs: IO port probe 0xc00-0xcff: clean.

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

cs: IO port probe 0x100-0x4ff: excluding 0x200-0x207

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

cs: IO port probe 0xc00-0xcff: clean.

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

cs: IO port probe 0x100-0x4ff: excluding 0x200-0x207

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

EXT3 FS on hda3, internal journal

Adding 506036k swap on /dev/hda2.  Priority:-1 extents:1 across:506036k

eth1:  setting full-duplex.

NET: Registered protocol family 10

lo: Disabled Privacy Extensions

eth1: no IPv6 routers present
```

and

```
pccard: PCMCIA card inserted into slot 0

cs: memory probe 0xf4000000-0xfbffffff: excluding 0xf4000000-0xf8ffffff 0xfa000000-0xfbffffff

pcmcia: registering new device pcmcia0.0

hermes: version magic '2.6.21-gentoo-r3 SMP mod_unload 686 4KSTACKS ' should be '2.6.21-gentoo-r3 SMP mod_unload PENTIUMIII 4KSTACKS '

orinoco: version magic '2.6.21-gentoo-r3 SMP mod_unload 686 4KSTACKS ' should be '2.6.21-gentoo-r3 SMP mod_unload PENTIUMIII 4KSTACKS '

orinoco_cs 0.15 (David Gibson <hermes@gibson.dropbear.id.au>, Pavel Roskin <proski@gnu.org>, et al)

eth0: Hardware identity ff44:00ad:f38c:ffff

eth0: Cannot read station identity: error -61

eth0: Incompatible firmware, aborting

orinoco_cs: register_netdev() failed

hermes: version magic '2.6.21-gentoo-r3 SMP mod_unload 686 4KSTACKS ' should be '2.6.21-gentoo-r3 SMP mod_unload PENTIUMIII 4KSTACKS '

orinoco: version magic '2.6.21-gentoo-r3 SMP mod_unload 686 4KSTACKS ' should be '2.6.21-gentoo-r3 SMP mod_unload PENTIUMIII 4KSTACKS '

hermes: version magic '2.6.21-gentoo-r3 SMP mod_unload 686 4KSTACKS ' should be '2.6.21-gentoo-r3 SMP mod_unload PENTIUMIII 4KSTACKS '

orinoco: version magic '2.6.21-gentoo-r3 SMP mod_unload 686 4KSTACKS ' should be '2.6.21-gentoo-r3 SMP mod_unload PENTIUMIII 4KSTACKS '

hermes: version magic '2.6.21-gentoo-r3 SMP mod_unload 686 4KSTACKS ' should be '2.6.21-gentoo-r3 SMP mod_unload PENTIUMIII 4KSTACKS '

orinoco: version magic '2.6.21-gentoo-r3 SMP mod_unload 686 4KSTACKS ' should be '2.6.21-gentoo-r3 SMP mod_unload PENTIUMIII 4KSTACKS '

hermes @ 0001e100: Timeout waiting for card to reset (reg=0x0000)!

eth0: failed to initialize firmware (err = -110)

orinoco_cs: register_netdev() failed
```

----------

## no_hope

The modules are still looking for a different kernel than what you have. You probably made changes to you kernel configuration and built the drivers against that kernel but didn't install it (i.e. didn't copy the kernel image to /boot).

If re-installing the kernel doesn't work, do the following (basically redoing everything from scratch):

1. Remove the drivers you built

find /lib/modules/ -name *hermes* -delete

find /lib/modules/ -name *orinoco* -delete

2. Re-do kernel stuff

make sure that /usr/src/linux points to the kernel you want to use

cd /usr/src/linux

make clean ; make && make modules_install

mount /boot

cp arch/i386/boot/bzImage /boot (or whatever you need to do)

update-modules force

3. Reboot

That really should be it  :Smile: 

----------

## Black Zer0

I'm so ecstatic it's working   :Very Happy:   :Very Happy:   :Very Happy: 

But I set conf.d net wrong appearently  :Embarassed: 

```
./net.eth2 start 

 * Starting eth2                

 *   Loading networking modules for eth2

 *     modules: apipa arping ccwgroup macchanger macnet rename iwconfig essidnet iptunnel ifconfig system dhcpcd ip6to4

 *       iwconfig provides wireless

 *       ifconfig provides interface

 *       dhcpcd provides dhcp   

 *   Configuring eth2 for MAC address 00:03:2F:02:A7:16 ...                                                                                                     [ ok ]

 *   Configuring wireless network for eth2

 *   Scanning for access points 

 *     Found "bl_essid" at 00:80:C8:B7:91:38 (managed, encrypted)

Error for wireless request "Set Encode" (8B2A) :

    SET failed on device eth2 ; Argument list too long.

 *   eth2 does not support setting keys

 *   or the parameter "mac_key_bl_essid" or "key_bl_essid" is incorrect

 *   Couldn't associate with any access points on eth2

 *   Failed to configure wireless for eth2
```

```
# Wireless Settings

key_bl_essid="s:11223344556677881122334455 enc open"

preffered_aps=( "bl_essid" )

sleep_scan_wlan0="1"

sleep_associate_wlan0="25"
```

I configured net as this HOWTO said. Is it outdated somehow?

----------

## no_hope

Can't help you with encryption stuff, sorry.

You will probably find the most up-to-date way to configure your wireless in /etc/conf.d/wireless.example

----------

## Black Zer0

Ok this is kinda wierd  this time I didn't get any errors

```
 * Caching service dependencies ... 

Starting eth2

Loading networking modules for eth2

modules: apipa arping ccwgroup macchanger macnet rename iwconfig essidnet ip tunnel ifconfig system dhcpcd ip6to4

iwconfig provides wireless

ifconfig provides interface

dhcpcd provides dhcp

Configuring eth2 for MAC address 00:03:2F:02:A7:16 ...                                                                                                   

Configuring wireless network for eth2

Connecting to "any" in managed mode (WEP Disabled) ...                                                                                                  

Connecting to "bl_essid" in managed mode (WEP enabled - open) ... 

eth2 connected to ESSID "bl_essid" at 00:80:C8:B7:91:38

in managed mode on channel 3 (WEP enabled - open)

Configuring eth2 for ESSID "bl_essid" ...

Bringing up eth2

192.168.222.108

SIOCSIFNETMASK: Invalid argument<-----eth1 gets this error too and eth1 works fine

Adding routes

default via 192.168.222.1 ...

Peter init.d # dhcpcd eth2

Error, eth2: timed out

```

Yet dhcp on it seems to not work.

It's almost worse when it DOESN'T show errors since now I don't know what's wrong   :Sad: 

Here is my new net

```
dns_domain_lo="here"

dhcp_eth1="nodns nontp nonis"

dhcp_bl_essid="nodns nontp nonis"

# Dad's House

config_eth1=( "192.168.222.108 netmask 25.255.255.0 brd 192.168.222.255" )

routes_eth1=( "default via 192.168.222.1" )

# Dad's house (wireless)

config_eth2=( "192.168.222.108 netmask 25.255.255.0 brd 192.168.222.255" )

routes_eth2=( "default via 192.168.222.1" )

# My House

# config_eth0=( "192.168.2.10 netmask 255.255.255.0 brd 192.168.2.255" )

# routes_eth0=( "default via 192.168.2.1" )

# DHCP

# config_eth0=( "dhcp" )

# Wireless Settings

essid_eth2="any"

mode_eth2="managed"

adhoc_essid_eth2="bl_essid"

channel_eth2="3"

sleep_scan_eth2="10"

associate_timeout_eth2="10"

key_bl_essid="1122-3344-5566-7788-1122-3344-55"

preferred_aps=( bl_essid )

```

EDIT: Oh wait here are some errors 

```
 ADDRCONF(NETDEV_UP): eth2: link is not ready

eth2: New link status: Disconnected (0002)

eth2: New link status: Association Failed (0006)

eth2: New link status: Connected (0001)

ADDRCONF(NETDEV_CHANGE): eth2: link becomes ready

eth2: New link status: Disconnected (0002)

eth2: New link status: Association Failed (0006)

eth2: New link status: Connected (0001)

eth2: New link status: AP Out of Range (0004)

eth2: no IPv6 routers present

eth1:  setting full-duplex.

eth1: no IPv6 routers present

ADDRCONF(NETDEV_UP): eth2: link is not ready

eth2: New link status: Disconnected (0002)

eth2: New link status: Association Failed (0006)

eth2: New link status: Connected (0001)

ADDRCONF(NETDEV_CHANGE): eth2: link becomes ready

eth2: New link status: Disconnected (0002)

eth2: New link status: Association Failed (0006)

eth2: New link status: Connected (0001)

eth2: New link status: AP Out of Range (0004)

eth2: no IPv6 routers present

```

The access point is out of range which is confusing because the access point is 2-3' away.

EDIT:Not really solved but I tried to work the other card I have which is a Dlink dwl630 and it works.

----------

