Wireless

Summary

  • The wireless card will pick up free access points
  • Consider installing waproamd for automatic wifi configuration, including key management
    • or use the Knoppix-STD to set up a secure connection
    • your own scripts do a fine job customizing for each environment

Free wireless

Documentation and guides

  • Core documentation
  • the man pages are most up-to-date:
    • man wireless
    • man iwconfig
    • man iwevent
    • man iwgetid
    • man iwlist
    • man iwpriv
    • man iwspy
    • man ifrename
    • man iftab

Hints

  • For the wireless hotspot's domain name server to be set in /etc/resolv.conf by dhcpcd, edit /etc/dhcpc/config by uncommenting SET_DNS='yes' (you can also use resolvconf) -- tested & works
  • "You need to turn the plug'n'play bios setting on in the laptop's BIOS for the wireless card to work correctly. If you leave the setting off, the card will work sporadically, but most of the time will just skyrocket your CPU usage and become idle until the laptop is rebooted." Source.

Software

  • Kernel
  • Basic Debian packages
    • wireless-tools
    • libiw28 (or higher)
    • ifrename (part of the wireless family)
      • has dry-run support (display name changes only)
    • kwlan (wpa compliant frontend for kde)
    • Alternative to the kernel driver for Prism 2.5 cards
      • linux-wlan-ng
      • linux-wlan-ng-doc
      • linux-wlan-ng-firmware
      • linux-wlan-ng-source
  • Graphic user interface
    • kwifimanager
    • kwirelessmonitor
    • wlassistant -- user friendly kde frontend for wireless network connection
    • gkrellmwireless and gkrellmwireless2
  • Detection packages
    • kdnssd -- zeroconf support for kde (uses avahi) -- no idea how to make this work
    • kismet -- likely the most powerful, see forum and tutorial and Gkismet (a gnome frontend)
      • 2.6.13 onwards include 0.15 version of orinoco drivers, which supports "monitor mode"
      • cf. orinoco kernel driver -- git changes
      • enter monitor mode first by issuing "iwconfig eth0 mode monitor" and run as root
      • kismet makes a sound every time a packet is detected -- works 12 Aug 2006 in Oslo
      • Logging cryptographically weak packets to /var/log/kismet/Kismet-Aug-12-2006-1.weak
      • Crypt file format: airsnort (weak packet) dump
        • you can use kismet to gather packets for airsnort -- read in the dump file in /var/log/kismet
        • much nicer than using airsnort direct, since it requires a gui
        • try "kismet eth0 6" to stick to channel 6
      • to revert noamal mode type "iwconfig eth0 mode managed"
    • prismstumbler -- sniffs out wireless networks (GTK, needs sqlite)
    • swscanner -- finds networks (KDE app, needs sqlite)
    • wifi-radar (give it a shot -- nice interface)
    • aircrack -- wireless WEP/WPA cracker
    • airsnort eth0 -- works 12 Aug 2006 in Oslo
      • must be run in monitor mode and as root
      • try running it while you running kismet, though this is not required
      • uses a graphical GUI -- try aircrack or use kismet instead for a command-line tool
      • Orinoco patch may still be necessary (no, seems to be working fine)
  • Scripting packages
    • ifplugd
      • automatically configure NIC when the cable is plugged in or out
      • works for wireless -- but waproamd also handles keys
      • may mess up my current control of fixed vs dynamic IP?
    • ifscheme
      • written by Joey Hess (see DISTRIBUTIONS.txt)
      • switches easily between network configurations, including wifi
      • looks useful -- likely does what I'm doing more elegantly
    • waproamd
    • ifupdown-roaming (not in Debian)
    • ifupdown-scripts-zg2
      • depends on iproute
      • sophisticated set of interface scripts, but likely best avoided
  • Scripts, home-made, official, and unofficial
    • wifi (set up the environment for wifi, establish connection
    • wifi2 (assign an IP address, route, and nameserver with dhcpcd)
    • Debian schemes scripts [debian/ifscheme*]
    • /etc/network/if-pre-up.d/wireless-tools
    • /etc/network/if-post-down.d/wireless-tools
    • for automatic wireless configuration, see ifplugd and waproamd above
    • for automatic device naming, see the HOTPLUG.txt below
Commands (in /sbin)
  • iwconfig <interface> <function> <value>
    • iwconfig --version
    • iwconfig XXX txpower on (?)
  • iwlist
    • displays bitrates, frequencies, keys, etc. not shown by iwconfig
  • iwspy
    • iwspy eth0 +
    • iwspy eth0 getthr
    • reads from /proc/net/wireless
    • mobile IP support test and some stats
  • iwevent
    • display wireless events (for monitoring / debugging?)
  • iwgetid
    • iwgetid -p
    • iwgetid -c
    • output ESSID or NWID
  • iwpriv
    • manipulating private ioctls (driver/device-specific)
Configuration of /etc/network/interfaces
  • static IP
 iface eth0 inet static
    address 192.168.1.2
    network 192.168.1.0
    netmask 255.255.255.0
    broadcast 192.168.1.255
    wireless-essid Home
    wireless-mode ad-hoc

  • wireless keys
   wireless-key1 0123-4567-89ab-cdef
  wireless-key2 12345678
  wireless-key3 s:password
  wireless-defaultkey 2
  wireless-keymode open

UCLA wireless network

Details on making it work with UCLA's wireless network and Cisco VPN5000 client -- UCLA wireless for Linux

Try this sort of thing:

iwconfig eth1 nick SIGILLO essid CFT mode Ad-hoc channel 3 key aaaa-9999-88

Using orinoco_cs on an ad-hoc network, /proc/net/wireless reports all 0 for the status and link quality. To activate the quality measures you need to specify one or more "spy addresses", the MAC address or hostname(s) of partner machines, on whose incoming packets the measures will be recorded. You can use either of these command lines:

iwspy eth2 00:02:2D:35:33:27
iwspy eth2 xena

In the latter case the name would be translated to an IP address and that would be looked up in the arp cache.

Wireless card -- uses the orinoco driver: http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Orinoco.html

Installation history

29 October 2005: kismet

Kismet, a network detector, is close to working for the orinoco card in linux 2.6.14, but apparently not quite yet:

#kismet
Server options:  none
Client options:  none
Starting server...
Waiting for server to start before starting UI...
Suid priv-dropping disabled.  This may not be secure.
No specific sources given to be enabled, all will be enabled.
Enabling channel hopping.
Enabling channel splitting.
Source 0 (wifi): Enabling monitor mode for orinoco source interface eth0 channel 6...
FATAL: channel get ioctl failed 16:Device or resource busy

Track progress in git changes.

23 July 2004 update

At HBES 2004 I got the wireless working for the first time, in Linux only. This is what I did:

  • Before rebooting, comment out all eth0 and eth1 information in /etc/network/interfaces
  • Turn on WLAN -- that's the switch on the left side front!
  • The modules orinoco orinoco_pci orinoco_cs hermes must be loaded
  • Start wifimanager and configure for the local network
  • Wait until it shows the right access point MAC address (if you don't wait for the right access point, you may fail to get a route or pick up another network's dhcp)
  • Only then enable dchp for eth1 in /etc/network/interfaces (uncomment lines and ifup eth1)
  • Click on "apply configuration" in kwifimanager if necessary (refreshes)
  • Test that "route" has a sensible value
The hermes module would sometimes produce oodles of this error message:
hermes @ MEM 0xe0953000: Error -16 issuing command.
It was cured by
rmmod orinoco orinoco_pci orinoco_cs hermes
modprobe orinoco orinoco_pci orinoco_cs hermes
The order is important -- not fully tested.

Note that simply booting with eth1 enabled for dhcp (in /etc/network/interfaces) will pick up non-secure access points.

15 March 2004 update

# iwconfig
lo        no wireless extensions.

eth0      no wireless extensions.

eth1      IEEE 802.11-DS  ESSID:""  Nickname:"Prism  I"
          Mode:Managed  Access Point: 00:00:00:00:00:00  Bit Rate:11Mb/s
          Tx-Power=15 dBm   Sensitivity:1/3
          Retry min limit:8   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off
          Link Quality:0/92  Signal level:-68 dBm  Noise level:-122 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

That was after no configuration work. kwifimanager lets you set up a connection to a wireless network if there is one around. You should set this up. Bootlog:
orinoco.c 0.13e (David Gibson and others)
orinoco_pci.c 0.13e (David Gibson & Jean Tourrilhes )
Detected Orinoco/Prism2 PCI device at 0000:00:09.0, mem:0xE8008000 to 0xE8008FFF -> 0xe38f4000, irq:11
pci_cor : reg = 0x0 - FFFBE007 - FFFBDE13
eth1: Station identity 001f:0009:0001:0004
eth1: Looks like an Intersil firmware version 1.4.9
eth1: Ad-hoc demo mode supported
eth1: IEEE standard IBSS ad-hoc mode supported
eth1: WEP supported, 104-bit key
eth1: MAC address 00:D0:59:44:5A:ED
eth1: Station name "Prism I"
eth1: ready

5 June 2003 update

After installing KDE 3.2 (really KDE-CVS) on 5 June 2003 (see details), I installed wifi, the KDE Wireless Network Manager -- it's actually just the library, /usr/lib/kde3/kcm_kwifimanager.so, and I still need kwifimanager. Or I wait until that is also ported to KDE. No hurry, is there?

lspci:

Network controller: Harris Semiconductor: Unknown device 3873

kernel:

CONFIG_HERMES:

A driver for 802.11b wireless cards based based on the "Hermes" or Intersil HFA384x (Prism 2) MAC controller. This includes the vast majority of the PCMCIA 802.11b cards (which are nearly all rebadges) - except for the Cisco/Aironet cards. Cards supported include the Apple Airport (not a PCMCIA card), WavelanIEEE/Orinoco, Cabletron/EnteraSys Roamabout, ELSA AirLancer, MELCO Buffalo, Avaya, IBM High Rate Wireless, Farralon Syyline, Samsung MagicLAN, Netgear MA401, LinkSys WPC-11, D-Link DWL-650, 3Com AirConnect, Intel PRO/Wireless, and Symbol Spectrum24 High Rate amongst others.

This option includes the guts of the driver, but in order to actually use a card you will also need to enable support for PCMCIA Hermes cards, PLX9052 based PCI adaptors or the Apple Airport below.

You will also very likely also need the Wireless Tools in order to configure your card and that /etc/pcmcia/wireless.opts works

Wireless tools: http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html

Wireless tools

The Wireless Tools is a set of tools allowing to manipulate the Wireless Extensions. They use a textual interface and are rather crude, but aim to support the full Wireless Extension.

iwconfig manipulate the basic wireless parameters
iwlist (formerly part of iwspy) allow to list addresses, frequencies, bit-rates...
iwspy allow to get per node link quality
iwpriv allow to manipulate the Wireless Extensions specific to a driver (private)

Debian Package: wireless-tools 25-2
Tools for manipulating Linux Wireless Extensions

http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Orinoco.html

The KDE Wifi Manager is a graphical tool to configure and monitor wireless LAN PC-Cards.
http://sourceforge.net/projects/kwifimanager

http://www.lindowsdownload.com/binaries/kwifimanager_1.0.0-pw1_i386.deb
ln -sf /usr/lib/libasound.so.2.0.0 /usr/lib/libasound.so.1

kwifimanager works! But it's useful for detecting the network, not for setting up the card.

I used the Adminmenu to select the orinoco_pci card, which installed as follows:

Module Size Used by Tainted: P
orinoco_pci 2440 0 (unused)
orinoco 28696 0 [orinoco_pci]
hermes 5348 0 [orinoco_pci orinoco]

So all three appear to be required. And the card is detected!!!

root@sigillo:/# iwconfig
lo no wireless extensions.

eth0 no wireless extensions.

Warning: Driver for device eth1 has been compiled with version 13 of Wireless Extension, while this program is using version 15. Some things may be broken...

eth1 IEEE 802.11-DS ESSID:"" Nickname:"Prism I"
Mode:Managed Channel:-160 Access Point: 00:00:00:00:00:00
Bit Rate:11Mb/s Tx-Power=15 dBm Sensitivity:1/3
Retry min limit:8 RTS thr:off Fragment thr:off
Encryption key:off
Power Management:off
Link Quality:0/92 Signal level:-68 dBm Noise level:-122 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0

So this works like crazy -- kwifimanager shows the device is active!

Booting:

Here is the wireless card:

hermes.c: 5 Apr 2002 David Gibson <hermes@gibson.dropbear.id.au>
orinoco.c 0.11b (David Gibson <hermes@gibson.dropbear.id.au> and others)
PCI: Enabling device 00:09.0 (0010 -> 0012)
PCI: Assigned IRQ 10 for device 00:09.0
Detected Orinoco/Prism2 PCI device at 00:09.0, mem:0xE8008000 to 0xE8008FFF -> 0xe0958000, irq:10
Reset
done............................................................................................;
Clear
Reset...........................................................................................;
pci_cor : reg = 0x0 - 600 - 5CE
eth1: Station identity 001f:0009:0001:0004
eth1: Looks like an Intersil firmware version 1.04
eth1: Ad-hoc demo mode supported
eth1: IEEE standard IBSS ad-hoc mode supported
eth1: WEP supported, 104-bit key
eth1: MAC address 00:D0:59:44:5A:ED
eth1: Station name "Prism I"
eth1: ready

iwconfig instructions

iwconfig manipulate the basic wireless parameters
iwlist (formerly part of iwspy) allow to list addresses, frequencies, bit-rates...
iwspy allow to get per node link quality
iwpriv allow to manipulate the Wireless Extensions specific to a driver (private)

lsmod

orinoco_pci 2472 1
orinoco 28152 0 [orinoco_pci]
hermes 5252 0 [orinoco_pci orinoco]

dmesg:

hermes.c: 5 Apr 2002 David Gibson <hermes@gibson.dropbear.id.au>
orinoco.c 0.11b (David Gibson <hermes@gibson.dropbear.id.au> and others)
PCI: Enabling device 00:09.0 (0010 -> 0012)
PCI: Assigned IRQ 5 for device 00:09.0
Detected Orinoco/Prism2 PCI device at 00:09.0, mem:0xE8008000 to 0xE8008FFF -> 0xe092e000, irq:5
Reset
done..............;
Clear
Reset.............;
pci_cor : reg = 0x0 - 53D - 50B
eth1: Station identity 001f:0009:0001:0004
eth1: Looks like an Intersil firmware version 1.04
eth1: Ad-hoc demo mode supported
eth1: IEEE standard IBSS ad-hoc mode supported
eth1: WEP supported, 104-bit key
eth1: MAC address 00:D0:59:44:5A:ED
eth1: Station name "Prism I"
eth1: ready

Here's after booting to the NIC configuration:

eth1 Link encap:Ethernet HWaddr 00:D0:59:44:5A:ED
inet addr:128.97.184.97 Bcast:128.97.184.255 Mask:255.255.255.0
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:100
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Interrupt:5 Base address:0xe000 Memory:e8008000-e8008fff

Note hardware address 00:D0:59:44:5A:ED (also known as MAC address).

Here's after booting to no configuration:

eth1 IEEE 802.11-DS ESSID:"" Nickname:"Prism I"
Mode:Managed Channel:-160 Access Point: 00:00:00:00:00:00
Bit Rate:11Mb/s Tx-Power=15 dBm Sensitivity:1/3
Retry min limit:8 RTS thr:off Fragment thr:off
Encryption key:off
Power Management:off
Link Quality:0/92 Signal level:-68 dBm Noise level:-122 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0

 

 

top
Debate
Evolution
CogSci

Maintained by Francis F. Steen, Communication Studies, University of California Los Angeles


CogWeb