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
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-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
|