OSDN Git Service

Add Android.mk
[android-x86/external-wireless-tools.git] / wireless_tools / INSTALL
1 Very important note :
2 -------------------
3         This release of the Wireless Tools is not compatible with
4 Wireless Extensions earlier than 9. Version 9 and 10 should work fine
5 but are not recommended. Version 8 and earlier will not work.
6         Kernels that support this version of the Wireless Tools are
7 listed below. For all kernels before that, see at the end.
8
9 You need :
10 --------
11         o Compiler and development environment
12         o A kernel supporting wireless extensions version 11 or higher
13                 -> from 2.4.4 onward (including 2.6.X)
14                 Note : CONFIG_NET_RADIO must be enabled
15         o (Optional) A Pcmcia package supporting Wireless Extension
16         o A driver supporting wireless extensions
17                 -> Check my web pages for status of various drivers.
18         Note : more recent kernels and drivers are likely to support
19                 more wireless extension features...
20
21 Compile wireless tools :
22 ----------------------
23         In theory, a "make" should suffice to create the tools.
24
25 Installation :
26 ------------
27         "make install" should do the right thing for you, and install
28 the tools, their library and the man pages. You can also uninstall the
29 tools via "make uninstall".
30         Note that the default installation is in the directory
31 '/usr/local/sbin'. This may not be in your path. Also, other version
32 of the tools may exist on the system, so double check which version is
33 the default and adjust your path as necessary.
34
35 Create a local copy of the tools :
36 --------------------------------
37         By default, the package is built with iwlib as a dynamic
38 library, and the tool will expect to use the default version of libiw
39 on the system. This means you can't use the tools until they are
40 properly installed.
41         If you just want to experiment with a "local" version of the
42 tools, you may want to pass the BUILD_STATIC flag to Makefile. It will
43 create a self contained version of the tools.
44                 -------------
45                 make clean
46                 make BUILD_STATIC='y'
47                 -------------
48         The resulting binary can be used in the compilation directory
49 or installed in any place you like.
50
51 Other useful Makefile options :
52 -----------------------------
53         PREFIX : where the tools will be installed (default : /usr/local)
54         CC : Compiler to use (defaul : gcc)
55         BUILD_STATIC : build tools with a static version of the wireless lib
56         BUILD_NOLIBM : build tools without mathematical lib (slower)
57         BUILD_STRIPPING : strip symbols from tools/lib.
58         BUILD_WE_ESSENTIAL : remove less used and obsolete features.
59
60         You can pass those options on the command line of make, or
61 modify the top of the Makefile. You can also set them as environment
62 variable, but this is not recommended.
63         If you pass those options on the command line, you should pass
64 the same command line options for all invocations of make ("make" and
65 "make install").
66
67 Memory footprint reduction :
68 --------------------------
69         The Wireless Tools are used in various embedded systems where
70 memory footprint is a great concern. The Wireless Tools package offer
71 multiple options to customise the compilation depending on the level
72 of features you want.
73         The list below details the must useful combinations of these
74 options, from the largest footprint to the smallest. Footprint depend
75 on lot's of factor and is purely indicative (version 29-pre7+, i386,
76 glibc, gcc 3.3.5).
77
78         1) Static build
79         Command line : make BUILD_STATIC='y'
80         - : Largest footprint
81         - : libiw not included (other third party tools may depend on it)
82         Size : ~280 kB
83
84         2) Default build
85         Command line : make
86         + : Fully featured version of the tools
87         - : Largest footprint (except for static version of tools)
88         Size : ~190 kB (libiw : ~29 kB ; ifrename : ~29 kB)
89
90         3) Stripping (remove function symbols)
91         Command line : make BUILD_STRIPPING='y'
92         + : Fully featured version of the tools
93         - : Still quite large
94         Size : ~110 kB (libiw : ~23 kB ; ifrename : ~17 kB)
95
96         4) Multicall version (include stripping)
97         Command line : make iwmulticall ; make install-iwmulticall
98         + : Fully featured version of the tools
99         + : Small
100         - : libiw not included (other third party tools may depend on it)
101         - : ifrename is not included
102         Size : ~55 kB
103
104         5) Multicall + Essential
105         Command line : make BUILD_WE_ESSENTIAL='y' iwmulticall
106         + : Smaller
107         - : Some less used features are left out 
108         - : libiw not included (other third party tools may depend on it)
109         - : ifrename is not included
110         Size : ~44 kB
111
112         6) iwconfig only + essential + static
113         Command line : make BUILD_WE_ESSENTIAL='y'  BUILD_STATIC='y' BUILD_STRIPPING='y' iwconfig
114         + : Very small
115         - : Very limited functionality : no scanning, no event, no iwpriv
116         - : libiw not included (other third party tools may depend on it)
117         - : ifrename is not included
118         Size : ~28 kB
119
120 Wireless headers (past history) :
121 -------------------------------
122         Previous version of the Wireless Tools had to be compiled with
123 the same version of Wireless Extension that the kernel was using, and
124 that was a major source of troubles.
125         Starting with version 27, Wireless Tools include all the ugly
126 code to deal with any version of Wireless Extensions, so now you can
127 compile a single "generic" version of the tools for any kernel.
128         Well, there are some limits, Wireless Extensions earlier than
129 v11 are not supported (v9 and v10 should work fine), and versions
130 later than the latest definition in the package are not
131 supported. Once compile, the command "iwconfig --version" should tell
132 you that.
133         Note that the previous option to make versioned installed of
134 the tools no longer make sense and therefore is gone.
135
136 Old kernel with older Wireless Extensions :
137 -----------------------------------------
138         Kernel prior to 2.2.14 : Those kernels include Wireless
139 Extensions v8 or earlier. Those versions don't have proper support for
140 802.11b, so are not very useful. You may want to consider upgrading.
141         Kernel 2.2.19 to 2.2.25 : Those kernels include Wireless
142 Extensions v10. The tools should mostly work with it, but many drivers
143 won't. You can upgrade those kernel to WE v15 with a patch on my web
144 page.
145         Kernel 2.2.14 to 2.2.18 : Those kernels include Wireless
146 Extensions v9. Same as above, you may want to upgrade to a later 2.2.X
147 kernel and then apply the patch.
148         Kernel 2.0.X : Those kernels include very old version of
149 Wireless Extensions. Same deal as old 2.2.X kernels.
150
151         Jean <jt@hpl.hp.com>