Add ipv6 hint
[linux_from_scratch_hints.git] / wireless.txt
blob138ab15374f6016f69b03d881164d5f86a586d82
1 AUTHOR:                 Dr. Edgar Alwers <edgaralwers@gmx.de>
3 DATE:                   2006-12-10
5 LICENSE:                GNU Free Documentation License Version 1.2
7 SYNOPSIS:               Wireless Communication from the sources
9 PREREQUISITES:
11 BLFS 6.x with  kernel 2.6.18 
14 DESCRIPTION:
16 This is a Hint explaining how to prepare a PC for wireless communication with
17 the Internet and how to put it into operation. I solved this problem with the
18 help of hints and advices given by many persons, and working through lots of
19 papers, many of them not beeing actual anymore at this time. 
20 The object I had to deal with is an 'Acer' TravelMate 291LCi with Intel Centrino
21 Mobile Technology, equiped with an Intel PRO/Wireless 2200BG(IEEE 802.11b/g)
22 chip. The Laptop communicates with an 54 Mbps Wireless Netgear ADSL Firewall
23 Router DG834G as access point However, there are good chances, that this hint
24 may also be applied to other PC's with other drivers. If you cannot obtain a
25 native Linux driver for your wireless NIC, you may want to try 'ndiswrapper', a
26 package that will allow to load a Windows driver under Linux.
28 The kernel compiled is version 2.6.18. This kernel includes already an  'old' 
29 driver ipw2200 and a iee802 subsystem, which should not be enabled, as they are
30 beeing provided separate.
32 Additional instructions are given, how to operate a PC in a wireless field under
33 a DHCP Server ( Dynamic Host Configuration Protocol ) providing  IP's to the
34 clients. This is the probably situation which will be found in most public
35 locations, like airports, hotels etc. 
37 HINT:
39 KERNEL
41 Download:
42         Kernel v. 2.6.18
43         http://www.kernel.org
45 Configuring the kernel:
47         enable Networking->
48                 Networking support->
49                         Networking options->
50                                 Packet socket
51                                 TCP/IP networking
52         device drivers->
53                 Network device support->
54                         Wireless LAN (non-harmradio)->
55                                 Wireless LAN drivers & Wireless Extensions
56         cryptographic optionsI->
57                 ARC4 cipher algorithm (Modul)
59 Make sure, that the following capabilities are not enabled:
61         networking->
62                 Generic IEE 802.11 Networking Stack
63         device drivers->
64                 Network device support->
65                         Wireless LAN ( non-hamradio ) ->
66                                 Intel PRO/Wireless 2200BG and
67                                 2915ABG network 
68 compile and install the kernel according to the instructions of the book 'Linux
69 From Scratch'
71 HOTPLUG-2004_09_23
73 Scripts that react upon hotplug events generated by the kernel
74 Download:
75         hotplug-2004_09_23.tar.bz2
76         http://www.kernel.org/pub/linux/utils/kernel/hotplug
78 Install hotplug issuing a 'make install' in the untared directory.
80 IEE80211-1.2.15
82 Kernel subsystem dealing with communications security
84 Download
85         ieee80211-1.1.15.tgz
86         http://ieee80211.sourceforge.net
87 Untar the file, change to the ieee80211-1.1.15 directory and enter make, make
88 install. 
89 Includes headerfiles in /lib/modules/2.6.18/net
91 INTEL'S PRO/WIRELESS DRIVER AND FIRMWARE
93 Download  the file 
94         ipw2200_linux_1_2_0.tgz
95         http://ipw2200.sourceforge.net
96 Unter the file. Two new tar files will be included in the new created 
97 'intel_ipw2200_120' directory: ipw2200-1.2.0.tgz, the PRO/Wireless driver, and
98 ipw2200-fw-3.0.tgz, the firmware. 
100 Untar the firmware file in the directory /lib/firmware. Four files
101 ipw-2200-xxx.fw will be found there after untaring
103 Untar the PRO/Wireless driver file, change to the ipw2200-1.2.0 directory and
104 enter make, make install. ( as su )
106 The driver requires the firmware image as well as the ieee80211 module
107 installed. sysfs should be  already mounted
109 See also the INSTALL file for more instructions
111 THE WIRELESS TOOLS 
113 Set of tools that allows to manipulate Wireless Extensions
114 Download the wireless tools:
115         wireless_tools.28.tar.gz
116         http://pcmcia-cs.sourceforge.net/ftp/contrib/
117 Untar the file, change to the wireless_tools.28 directory and enter make, make
118 install
119 Seven tools will be installed in /usr/local/sbin: iwconfig, iwlist,
120 ifrename,iwevent,iwgetid, iwpriv and iwspy
121 Make a link from KDE_Prefix/bin to /usr/local/sbin: 
122         ln -s /usr/local/sbin/iwconfig KDE_Prefix/bin/iwconfig
124 THE DHCPCD CLIENT SOFTWARE
126 Software to connect a computer to a network which uses DHCP to assign network
127 addresses.There are two alternatives: dhcp, which includes also the server
128 software, and dhcpcd, an implementation of the DHCP client specified in RFC2131.
129 I prefered  dhcpcd, wich seems to be more simple.
130 Download 
131         dhcpcd-2.0.8.tar.bz2
132         http://prdownload.berlios.de/dhcpcd/
133 Untar, change to the dhcpcd-2.0.8 directory and enter
134         ./configure --prefix="" --mandir=/usr/share/man
135         make
136         and, as superuser, make install, and
137         chmod -v 754 /etc/dhcpc/dhcpcd.exe.
138 The reason for the prefix "" in the configuration command is explained in the
139 blfs-book, version svn-20061028, chapter 14. 
140 Install the network service script
141 /etc/sysconfig/network-devices/services/dhcpcd  and create
142 /etc/sysconfig/network-devices/ifconfig.eth1/dhcpcd configuration file as
143 indicated in the same place
144         
145 BOOTING THE PC
147 If everything went right, the PC boots and loads firmware and wireless-driver.
148 The corresponding booting  messages will look like
149         ........
150         ieee80211_crypt: registered algorithm 'NULL'
151         ieee80211: 802.11 data/management/control stack, 1.1.6
152         ieee80211: Copyright (C) 2004-2005 Intel Corporation
153                 <jketreno@linux.intel.com>
154         ipw2200: Intel(R) PRO/Wireless 2200/2915 Network Driver, 1.0.8
155         ipw2200: Copyright(c) 2003-2005 Intel Corporation
156         ACPI: PCI Interrupt Link [LNKG] enabled at IRQ 10
157         ACPI: PCI Interrupt 0000:01:02.0[A] -> Link [LNKG] -> GSI 10 (level,
158                 low) -> IRQ 10
159         ipw2200: Detected Intel PRO/Wireless 2200BG Network Connection
160         Detected geography ZZM (11 802.11bg channels, 0 802.11a channels)
161         .........
163 MONITORING PROGRAMS
165 There are many prrograms that allows the monitoring of wireless communications.
166 I installed two of them: 'Wireshark' ( former ethereal ) and 'KWiFiManager'.
168 'wireshark' is a powerfull  network protocol analyser ( packet sniffer ). 
169 Download 'wireshark-0.99.4.tar.gz' from http://www.wireshark.org/download/src
170 Untar the file and run ./configure, make and make install.
172 'kwifimanager' is a KDE frontend program used to configure and monitor wireless
173 LAN cards. 'kwifimanager' is part of 'kdenetwork'. Download
174 kdenetwork_3.4.1.tar.bz2 and follow the instructions given e.g. In BLFS -
175 Version 6.1, chapter 29. Wireless tools should be installed before building this
176 packet.
178 CONFIGURING THE ROUTER -  SAFETY CONSIDERATIONS
180 during the installation of the wireless system, the safety options of the router
181 are deactivated. Now, it is time to activate them. Access the settings menu of
182 the router through a browser, entering something like http://192.168.0.1. I
183 activated WEP ( Wired Equivalent Privacy ) with  64 bit encryption. You may
184 consider a 125 bit encryption
186 Enter a password in the encryption field, and the router will generate four
187 keys, each one consisting of 10 characters, combining numbers 1 to 9 and letters
188 A-F, like:EC670531BE. The first of this four keys is the one beeing normally
189 used.
191 Furthermore, the MAC-addresses ( Media Access Control ) of the laptop's and PC's
192 wich are allowed to access the router shoud be entered in the access list
193 'trusted wireless stations'. You may get the MAC addresses  from the list of
194 connected devices in the settings menu of the router or with the help of a
195 network exploration tool like 'nmap' ( Network Mapper ), in  the last case e.g.
196 entering 'nmap -sP 192.168.0.1/22'
198 However, even a 125 bit encryption does not give a real security today.
199 According to a note contributed by Bryan Kadzban,  real security can only be
200 obtained with WPA or WPA2 encryption. You may want to consider this, if you have
201 confidential data to transmit.
203 CONFIGURING THE PC FOR WIRELESS COMMUNICATIONS
205 immediately after the safety options of the router are activated, the PC will
206 not more be able to see the access point: the PC also needs to be configured. 
207 Entering the command 'iwconfig eth1 key xxxxxxxxxx'  enables the communication,
208 but not permanently. For a permanent configuration, write a shell-script
209 e.g.'connect' in /etc/rc.d/init.d:
210         $!/bin/sh
211         /usr/local/sbin/iwconfig eth1 key xxxxxxxxxx
212 and make this script executable: chmod ug+x connect. Make a symbolic link in
213 /etc/rc.d/rc3.d that points to this script: ln -s /etc/rc.d/init.d/connect
214 S19connect. The link should start with something like S19, as the script should
215 be run before the S20network script is executed. For an unencrypted system,
216 likely to be found on public places, the command in the script should not
217 contain a key:
218         /usr/local/sbin/iwconfig eth1
220 Create a directory 'ifconfig.eth1' in '/etc/sysconfig/network-devices', and cd
221 to this directory. 
222 For operation withouth DHCP create a ipv4 file:
223         ONBOOT=yes
224         SERVICE=ipv4-static
225         IP=192.168.1.3                  // the address of your box
226         GATEWAY=192.168.1.9             // the address of your router
227         PREFIX=24
228         BROADCAST=192.168.1.255
229         NETMASK=255.255.255.0
230 and change GATEWAY_IF in /etc/sysconfig/network to eth1.
232 For operation with DHCP create instead ipv4 a file dhcpcd:
233         ONBOOT="no"
234         SERVICE="dhcpcd"
235         DHCP_START="eth1 -t 20"
236         DHCP_STOP="-k "
238         # Set PRINTIP="yes" to have the script print
239         # the DHCP assigned IP address
240         PRINTIP="yes"
242         # Set PRINTALL="yes" to print the DHCP assigned values for
243         # IP, SM, DG, and 1st NS. This requires PRINTIP="yes".
244         PRINTALL="no"
246 USING THE WIRELESS CONNECTION 
248 After booting, lsmod shows
249         Module          Size            Used by
250         ipw2200         170244          0
251         ieee80211         45356         1  ipw2200 
252         ieee80211_crypt     4512        1  ieee80211_crypt_wep,
253                                                 ieee80211
255 The command 'iwconfig eth1' entered in a console delivers
256                 eth1      IEEE 802.11g  ESSID:"Mannheim"  
257                 Mode:Managed  Frequency:2.462 GHz  Access Point:
258                                 00:0A:B5:CF:64:28   
259                 Bit Rate=48 Mb/s   Tx-Power=20 dBm   Sensitivity=8/0
260                 Retry limit:7   RTS thr:off   Fragment thr:off
261                 Encryption key:57E4-DB3A-B1   Security mode:open
262                 Power Management:off
263                 Link Quality=95/100  Signal level=-29 dBm  Noise level=-86 dBm
264                 Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
265                 Tx excessive retries:0  Invalid misc:0   Missed beacon:0
266 As the ONBOOT parameter was set to 'yes', the connection to the access point is
267 already activ.
269 The internet browser should be configured with direct access to the internet.
270 Opening the browser should establish immediately a connection.
272 USING THE WIRELESS CONNECTION UNDER A DHCP SERVER
274 I experienced some problems starting the dhcpcd daemon during the boot process.
275 So I decided to set the ONBOOT parameter in the file
276 /etc/sysconfig/network-devices/ifconfig.eth1/dhcpcd to 'no', as indicated above,
277 and to start as 'su' a little script 'eth1_connect' :
278         #!/bin/bash
279         /sbin/dhcpcd eth1
280         # end
281 After starting the daemon dhcpcd, the connection to the access point is activ.
283 AKNOWLEDGEMENTS:          
285 I have tryed to compile articles, informations, hints and answers to questions I
286 put in the BLFS-mailing list to this hint. Many thanks to all those who
287 contributed: Gabe Yoder, Andrew Benton, Alexander E. Patrakov, Jim Gifford,
288 David Fix, Rainer Peter Feller, Chris Staub, Randy McMurchy,
289 Jeremy Monnet, Stefan Krah, Bryan Kadzban.
292 LINKS AND LITERATURE:
294 Intel PRO/Wireless driver
295 http://ipw2200.sourceforge.net                                          
297 Linux Wireless Networking       
298 http://www.linuxhomenetworking.com/linux-hn/wmp11-linux.html
300 Wireless LAN Resources for Linux
301 http://www.hpl.hp.com/personal/jean_Tourrilhes/Linux/Tools.html
303 Wiresharkt
304 http://www.wireshark.org/
306 The devices, the drivers... Jean Tourrilhes
307 http://www.hpl.hp.com/personal/jean_Tourrilhes/Linux/Linux.Wireless.drivers.802.
308 1.11ag.html#CentrinoAG
310 Sane network interface management with Hotplug. Jean Tourrilhes
311 http://www.hpl.hp.com/personal/jean_Tourrilhes/Linux/HOTPLUG.txt
313 ndiswraper
314 http://ndiswrapper.sourceforge.net/mediawiki/index.php/Installation
316 CHANGELOG:
318 [2006-03-26]
320  Remarks concerning safety considerations
321  Additional notes concerning DHCP-Server operation
322  Chapter "The DHCPCD Client Software" 
323  Configuring the PC for operation under DHCP 
324  Subsystem IEE80211-1.1.6 changed to IEE80211-1.1.12
325  Intel PRO/WIRELESS driver ipw2200-1.0.8 changed to ipw2200-1.0.10
326  Using the wireless connection under a DHCP server
328 [2006-12-10]
330  Kernel version 2.6.18
331  Kernel configuration changed
332  Hotplug instructions changed
333  UDEV is now part of the system
334  ieee80211 version changed to 1.2.15
335  New versions of Intel's PRO/Wireless driver and firmware
336  Wireless tools version 28
337  dhcpcd  version 2.0.8 
338  new message booting the PC
339  'Kismet' skipped,  'wireshark' introduced
340  Links and literature changed