# MiniHowTo for Orinoco cards w/ firmware 8.72

## hashier

This is a "little" overview over different "Orinoco" drivers which work with the 2.6.x kernel.

First of all:

Some Information:

ALL TEST ARE DONE WITH FIRMWARE 8.72.

I THINK WITH ANOTHER FIRMWARE SOME DRIVERS WORK WHICH DON'T WORK FOR ME

After every driver installation I did an

```
rm -rf /lib/modules/`uname -r`/
```

System:

```
uname -a

Linux firebird 2.6.9 #16 Tue Dec 7 15:03:25 CET 2004 i686 Intel(R) Pentium(R) M

processor 1.60GHz GenuineIntel GNU/Linux
```

I'm testing these 3 drivers:

1) CVS from 

http://savannah.nongnu.org/cvs/?group=orinoco

2) Portage drivers

3) plasmahh drivers

http://www.tzi.de/~plasmahh/orinoco.html

I'm not testing the Kernel drivers cos the are old and bad (IMHO).

1st)

```
firebird cvs # cvs -z3 -d:ext:anoncvs@savannah.nongnu.org:/cvsroot/orinoco co orinoco

cvs checkout: Updating orinoco

{...}

firebird cvs # cd orinoco

firebird orinoco # make install

{...}

firebird orinoco # ls -lart /lib/modules/2.6.9/kernel/drivers/net/wireless/

total 168

drwxr-xr-x  3 root root   120 Dec  9 19:49 ..

-rw-r--r--  1 root root 12708 Dec  9 19:49 spectrum_cs.ko

-rw-r--r--  1 root root  5555 Dec  9 19:49 orinoco_tmd.ko

-rw-r--r--  1 root root  7485 Dec  9 19:49 orinoco_plx.ko

-rw-r--r--  1 root root  8003 Dec  9 19:49 orinoco_pci.ko

-rw-r--r--  1 root root  6193 Dec  9 19:49 orinoco_nortel.ko

-rw-r--r--  1 root root  9027 Dec  9 19:49 orinoco_cs.ko

-rw-r--r--  1 root root 54203 Dec  9 19:49 orinoco.ko

-rw-r--r--  1 root root  9470 Dec  9 19:49 hermes.ko

-rw-r--r--  1 root root 11627 Dec  9 19:49 prism_usb.ko

-rw-r--r--  1 root root 27109 Dec  9 19:49 orinoco_usb.ko

drwxr-xr-x  2 root root   376 Dec  9 19:49 .

firebird orinoco # 

```

Inserting the Orinoco card:

```
firebird orinoco # dmesg

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

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

eth1: Hardware identity 0001:0004:0005:0000

eth1: Station identity  001f:0001:0008:0048

eth1: Firmware determined as Lucent/Agere 8.72

eth1: Ad-hoc demo mode supported

eth1: IEEE standard IBSS ad-hoc mode supported

eth1: WEP supported, 104-bit key

eth1: MAC address 00:02:2D:C3:DB:96

eth1: Station name "HERMES I"

eth1: ready

eth1: index 0x01: Vcc 5.0, irq 10, io 0x0100-0x013f

firebird orinoco # 

```

The card should now visible in iwconfig

```
firebird orinoco # iwconfig eth1

eth1      IEEE 802.11b  ESSID:""  Nickname:"HERMES I"

          Mode:Managed  Frequency:2.422 GHz  Access Point: 00:00:00:00:00:00   

          Bit Rate:11 Mb/s   Sensitivity:1/3  

          Retry limit:4   RTS thr:off   Fragment thr:off

          Encryption key:off

          Power Management:off

          Link Quality=0/92  Signal level=134/153  Noise level=134/153

          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0

          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

```

Now I'm trying to activate the "monitor" mode, with 2 diffrent methods.

The old one:

```

firebird orinoco # iwpriv eth1 monitor 2 11

Invalid command : monitor

firebird orinoco # 

```

That doen't work.

And what's with the new method?

```
firebird orinoco # iwconfig eth1 mode monitor

Error for wireless request "Set Mode" (8B06) :

    SET failed on device eth1 ; Operation not supported.

firebird orinoco # 

```

That command sends also an message to syslog.

```
firebird orinoco # dmesg |tail -n 1

eth1: Monitor mode support is buggy in this firmware, not enabling

firebird orinoco # 

```

Bus befor we stop our last chance is to see what iwpriv does show:

```
firebird orinoco # iwpriv eth1

eth1      Available private ioctl :

          force_reset      (8BE0) : set   0       & get   0      

          card_reset       (8BE1) : set   0       & get   0      

          set_port3        (8BE2) : set   1 int   & get   0      

          get_port3        (8BE3) : set   0       & get   1 int  

          set_preamble     (8BE4) : set   1 int   & get   0      

          get_preamble     (8BE5) : set   0       & get   1 int  

          set_ibssport     (8BE6) : set   1 int   & get   0      

          get_ibssport     (8BE7) : set   0       & get   1 int  

          get_rid          (8BE9) : set   0       & get 1024 byte 

```

Does anybody see "monitor" mode?

So I think this driver is s***, but that's only my opinion.

So where going to the next driver, the portage driver:

2nd)

```
firebird portage # echo "net-wireless/orinoco ~x86" >> /etc/portage/package.keywords

firebird portage # emerge -av orinoco

These are the packages that I would merge, in order:

Calculating dependencies ...done!

[ebuild  N    ] net-wireless/orinoco-0.15_rc2  +pcmcia 0 kB 

Total size of downloads: 0 kB

Do you want me to merge these packages? [Yes/No] 

```

Some warnings during merging, but finaly successful.

```
firebird portage # ls -lart /lib/modules/2.6.9/net/

total 120

-rw-r--r--  1 root root 12850 Dec  9 20:08 spectrum_cs.ko

-rw-r--r--  1 root root  5565 Dec  9 20:08 orinoco_tmd.ko

-rw-r--r--  1 root root  7495 Dec  9 20:08 orinoco_plx.ko

-rw-r--r--  1 root root  7811 Dec  9 20:08 orinoco_pci.ko

-rw-r--r--  1 root root  6203 Dec  9 20:08 orinoco_nortel.ko

-rw-r--r--  1 root root  9037 Dec  9 20:08 orinoco_cs.ko

-rw-r--r--  1 root root 48289 Dec  9 20:08 orinoco.ko

-rw-r--r--  1 root root 10119 Dec  9 20:08 hermes.ko

```

And again inserting the card to the Laptop

Now only a diff between last dmesg and dmesg with portage drivers:

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

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

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

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

```

iwconfig is the same.

But what will the driver tell us, if we activate the monitor mode?

The old one:

```
firebird portage # iwpriv eth1 monitor 2 11

Invalid command : monitor

firebird portage # 

```

The new one:

```
firebird portage # iwconfig eth1 mode monitor

Error for wireless request "Set Mode" (8B06) :

    SET failed on device eth1 ; Operation not supported.

```

And dmesg tells us the same error

```
firebird portage # dmesg | tail -n 1

eth1: Monitor mode support is buggy in this firmware, not enabling

firebird portage # 

```

And iwpriv eth1 is again the same.

So this driver s*** too (for Firmware 8.72).

Ok, now the last try with the drivers from plasmahh.

3rd)

Get one driver from

 *Quote:*   

> http://www.tzi.de/~plasmahh/orinoco.html
> 
> 

 

I select the last one (0.13eSN-5)

```
firebird plasmahh # wget http://www.tzi.de/~plasmahh/orinoco-0.13e-SN-5.tar.bz2

{...}

firebird plasmahh # tar xvfj orinoco-0.13e-SN-5.tar.bz2 

{...}

firebird plasmahh # cd orinoco-0.13e-SN-5/

firebird orinoco-0.13e-SN-5 # make install

```

Same compiling errors as with portage drivers.

```
firebird orinoco-0.13e-SN-5 # ll -lart /lib/modules/2.6.9/extra/

total 104

drwxr-xr-x  4 root root   448 Dec  9 20:42 ..

-rw-r--r--  1 root root  9598 Dec  9 20:42 hermes.ko

-rw-r--r--  1 root root 53256 Dec  9 20:42 orinoco.ko

-rw-r--r--  1 root root  9491 Dec  9 20:42 orinoco_cs.ko

-rw-r--r--  1 root root  7464 Dec  9 20:42 orinoco_pci.ko

-rw-r--r--  1 root root  7290 Dec  9 20:42 orinoco_plx.ko

-rw-r--r--  1 root root  5432 Dec  9 20:42 orinoco_tmd.ko

drwxr-xr-x  2 root root   240 Dec  9 20:42 .

firebird orinoco-0.13e-SN-5 # 

```

And now "The same procedure as every year james" (In which countries is "Dinner

for one played?) we are inserting the Orinoco card.

And now what will dmesg show us?

```
firebird orinoco-0.13e-SN-5 # dmesg

firebird orinoco-0.13e-SN-5 # 

```

DOH!!!!!

Ok, removing the card and do:

```
firebird orinoco-0.13e-SN-5 # depmod -a

firebird orinoco-0.13e-SN-5 # 

```

And reinsert the card one more time.

The diff between CVS and plasmahh:

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

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

-eth1: Hardware identity 0001:0004:0005:0000

-eth1: Station identity  001f:0001:0008:0048

-eth1: Firmware determined as Lucent/Agere 8.72

+orinoco.c 0.13e (David Gibson <hermes@gibson.dropbear.id.au> and others)

+Compiled with Wireless extensions v.16

+orinoco_cs.c 0.13e (David Gibson <hermes@gibson.dropbear.id.au> and others)

+eth1: Station identity 001f:0001:0008:0048

+eth1: Looks like a Lucent/Agere firmware version 8.72

```

And the iwconfig eth1 diff looks like this:

```

-eth1      IEEE 802.11b  ESSID:""  Nickname:"HERMES I"

+eth1      IEEE 802.11-DS  ESSID:""  Nickname:"HERMES I"

           Mode:Managed  Frequency:2.422 GHz  Access Point: 00:00:00:00:00:00   

-          Bit Rate:11 Mb/s   Sensitivity:1/3  

+          Bit Rate:11 Mb/s   Tx-Power=15 dBm   Sensitivity:1/3  

           Retry limit:4   RTS thr:off   Fragment thr:off

           Encryption key:off

           Power Management:off

-          Link Quality=0/92  Signal level=134/153  Noise level=134/153

-          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0

-          Tx excessive retries:0  Invalid misc:0   Missed beacon:0
```

I don't know what 802.11-DS means and if anybody needs Link Quality or somethink

like that, but now we're goin on.

Let's go on with something relevant.

Activating the "monitor" mode:

The old method:

```
firebird orinoco-0.13e-SN-5 # iwpriv eth1 monitor 2 11

firebird orinoco-0.13e-SN-5 # ifconfig eth1 up

firebird orinoco-0.13e-SN-5 # ifconfig eth1

eth1      Link encap:UNSPEC  HWaddr 00-02-2D-C3-DB-96-01-00-00-00-00-00-00-00-00-00  

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:0 errors:0 dropped:0 overruns:0 frame:0

          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000 

          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

          Interrupt:10 Base address:0x100 

firebird orinoco-0.13e-SN-5 # 

```

Looks like the Orinoco is now in "monitoring" mode.

Good things come to those who wait.

And what is with the new method?

First remove the card - reinsert the card - look if card is in "normal" mode.

firebird orinoco-0.13e-SN-5 # ifconfig eth1 | head -n 1

eth1      Link encap:Ethernet  HWaddr 00:02:2D:C3:DB:96  

firebird orinoco-0.13e-SN-5 # 

[/code]

BTW: in dmesg aren't any new messages

The new one:

```
firebird orinoco-0.13e-SN-5 # iwconfig eth1 mode monitor

Error for wireless request "Set Mode" (8B06) :

    SET failed on device eth1 ; Invalid argument.

firebird orinoco-0.13e-SN-5 # 

```

But no message in syslog 

```
firebird orinoco-0.13e-SN-5 # dmesg | tail -n 5

eth1: WEP supported, 104-bit key

eth1: MAC address 00:02:2D:C3:DB:96

eth1: Station name "HERMES I"

eth1: ready

eth1: index 0x01: Vcc 5.0, irq 10, io 0x0100-0x013f

firebird orinoco-0.13e-SN-5 # 

```

And now just a look in iwpriv

```
firebird orinoco-0.13e-SN-5 # iwpriv  eth1

eth1      Available private ioctl :

          force_reset      (8BE0) : set   0       & get   0      

          card_reset       (8BE1) : set   0       & get   0      

          set_port3        (8BE2) : set   1 int   & get   0      

          get_port3        (8BE3) : set   0       & get   1 int  

          set_preamble     (8BE4) : set   1 int   & get   0      

          get_preamble     (8BE5) : set   0       & get   1 int  

          set_ibssport     (8BE6) : set   1 int   & get   0      

          get_ibssport     (8BE7) : set   0       & get   1 int  

          monitor          (8BE8) : set   2 int   & get   0      

          dump_recs        (8BFF) : set   0       & get   0

```

That looks nice.

So, finaly u know what drivers to use, if ur using an brand new Orinoco card

with 8.72 Firmware on.

I hope that overview helps anyone.

Greets hashier

------------------------------------------------------------------------

Form plasmahh

 *Quote:*   

> root@home:~ # iwpriv eth0 monitor  
> 
>     m - one of the following
> 
> 	0 - disable monitor mode
> ...

 Last edited by hashier on Tue Jan 04, 2005 10:10 pm; edited 2 times in total

----------

## w0rd88

Thank you soooo much!  You have summed up all of my frusterations, and the solution in a nutshell.  THANK YOU.  This worked perfectly for me, after fighting with an orinoco silver pcmcia wavelan card.   Now, to kismet!

----------

## Der P@te

thanks a lot   :Smile:  nice guide...

----------

## lord_ph

Hey thanx for the great guide.

1 thing though, this works great in 2.6, but i'm having a bitch of a time with 2.4.26.

Does anyone know if this package is suppost to work in 2.4??

thanks

----------

## g3n

I'm having problems from the beginning, when i plugin the card nothing new comes in dmesg, and when i call iwconfig it says that there are no devices, what do i need in the kernel besides wireless no harm radio enabled?

I have a orinoco silver, and i have installed pcmcia-cs from portage and kernel 2.6.8.1

----------

## hashier

Take a look in:

/var/log/syslog

----------

## g3n

Ok, my orinoco silver is using firmware 6.16 and your recommendations were useful for setting my card, but now where can i find how to set all the rest? the ip, the route, the wep, i'm new with wifi.

----------

## hashier

RTFM

ifconfig eth1 <ip> up

iwconfig eth1 essid <essid>

iwconfig eth1 key s:<ascci key> [1]

iwconfig eth1 key [1]

iwconfig eth1 key on

route add default gw <ip vom gateway>

Edit /etc/resolv.conf

----------

## coffeeman

GREAT info and well writed... thx  :Wink: 

----------

## hootjr29

Agreed.. this was a great HOWTO!  I was having lots of issues.  I followed your 3 tests and was successful with plasmahh's drivers.  Kismet works now too  :Smile:   Thanks!

----------

## x ScHeMeR 1

This is weird but I tried many combinations of patches/drivers and couldnt get anything to work till the point that I gave up. The last driver that I had installed when I quit trying was the portage version net-wireless/orinoco-0.15_rc2-r1.

Then today I started kismet and it worked! I was on my laptop ( the above mentioned was on my server/desktop ) and in a vnc window to the server I started kismet, in my mind I wasnt thinking that I was using the server, I was thinking it was the laptop w/ an atheros card. And then it just worked, I was like holy $#!^. Then I checked iwpriv and monitor was listed.

The only thing different is I upgraded to sys-apps/baselayout-1.11.12-r4, ran etc-update, and rewrote my /etc/conf.d/net & /etc/conf.d/wireless with the new syntax.

Here is my uname & dmesg:

```
root@theone tmp # uname -a

Linux theone 2.6.11-hardened-r1 #11 Sat Jun 25 11:28:01 EST 2005 i586 AMD-K6(tm) 3D processor AuthenticAMD GNU/Linux

root@theone / # cardctl eject

root@theone / # cardctl insert

root@theone / # dmesg

eth1: Station identity 001f:0001:0008:0048

eth1: Looks like a Lucent/Agere firmware version 8.72

eth1: Ad-hoc demo mode supported

eth1: IEEE standard IBSS ad-hoc mode supported

eth1: WEP supported, 104-bit key

eth1: MAC address 00:02:2D:1F:34:18

eth1: Station name "HERMES I"

eth1: ready

eth1: index 0x01: Vcc 5.0, irq 5, io 0x0100-0x013f

root@theone / # 
```

Here is my iwpriv:

```
root@theone / # iwpriv eth1

eth1      Available private ioctl :

          force_reset      (8BE0) : set   0       & get   0      

          card_reset       (8BE1) : set   0       & get   0      

          set_port3        (8BE2) : set   1 int   & get   0      

          get_port3        (8BE3) : set   0       & get   1 int  

          set_preamble     (8BE4) : set   1 int   & get   0      

          get_preamble     (8BE5) : set   0       & get   1 int  

          set_ibssport     (8BE6) : set   1 int   & get   0      

          get_ibssport     (8BE7) : set   0       & get   1 int  

          monitor          (8BE8) : set   2 int   & get   0      

          dump_recs        (8BFF) : set   0       & get   0      

root@theone / # 
```

N.B. First just a few more background details...

I have pcmcia-cs-3.2.7-r4 installed.

Kernel config relating to this issue:

```
Bus Options -> PCCARD support ->

  x x            <*> PCCard (PCMCIA/CardBus) support                        

  x x            [ ]   Enable PCCARD debugging                              

  x x            <*>   16-bit PCMCIA support                                

  x x            [*]   32-bit CardBus support                                

  x x            --- PC-card bridges                                         

  x x            <*> CardBus yenta-compatible bridge support

Device Drivers -> Networking Support -> Wireless LAN ->

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

  x x---   Obsolete Wireless cards support (pre-802.11)                    

  x x<*>   Hermes chipset 802.11b support (Orinoco/Prism2/Symbol)         

  x x< >     Hermes in PLX9052 based PCI adaptor support (Netgear MA301etc)  

  x x< >     Hermes in TMD7160 based PCI adaptor support (EXPERIMENTAL)   

  x x< >     Prism 2.5 PCI 802.11b adaptor support (EXPERIMENTAL)           

  x x---   Wireless 802.11b Pcmcia/Cardbus cards support                  

  x x<M>   Hermes PCMCIA card support 

```

One more thing output from lsmod:

```
root@theone / # lsmod                                                       

Module                  Size  Used by

ipv6                  230336  16 

root@theone / # 
```

So here is my problem that I need help with... 

Now I rebooted the server for the heck of it to make sure I changed all the neccessary files for the new baselayout and that the now working monitor mode wasnt a fluke.

Now when the server starts up everything boots and loads as normal until I get to my wireless pcmcia orinoco gold classic card. First cardmanager starts up. Then the cardmanager trys to load the orinoco_cs modules and fails because it cant find them, then it brings up the wireless card using my new net and wireless configs in /etc/conf.d/ (with the portage drivers i think), connects to my prefferred ap, calls dhcpcd, then loads my firewall and proceeds on normally. Everything works perfect and monitor mode is present and functional. Only thing is the annoying messages of failing to load the modules (which I dont want them to load anyway).

My question is how do I stop it from trying to load the modules that it cant find w/o dirty hacking the /etc/init.d/pcmcia script??

----------

