Very important note : ------------------- This release of the Wireless Tools is not compatible with Wireless Extensions earlier than 9. Version 9 and 10 should work fine but are not recommended. Version 8 and earlier will not work. Kernels that support this version of the Wireless Tools are listed below. For all kernels before that, see at the end. You need : -------- o Compiler and development environment o A kernel supporting wireless extensions version 11 or higher -> from 2.4.4 onward (including 2.6.X) Note : CONFIG_NET_RADIO must be enabled o (Optional) A Pcmcia package supporting Wireless Extension o A driver supporting wireless extensions -> Check my web pages for status of various drivers. Note : more recent kernels and drivers are likely to support more wireless extension features... Compile wireless tools : ---------------------- In theory, a "make" should suffice to create the tools. Installation : ------------ "make install" should do the right thing for you, and install the tools, their library and the man pages. You can also uninstall the tools via "make uninstall". Note that the default installation is in the directory '/usr/local/sbin'. This may not be in your path. Also, other version of the tools may exist on the system, so double check which version is the default and adjust your path as necessary. Create a local copy of the tools : -------------------------------- By default, the package is built with iwlib as a dynamic library, and the tool will expect to use the default version of libiw on the system. This means you can't use the tools until they are properly installed. If you just want to experiment with a "local" version of the tools, you may want to pass the BUILD_STATIC flag to Makefile. It will create a self contained version of the tools. ------------- make clean make BUILD_STATIC='y' ------------- The resulting binary can be used in the compilation directory or installed in any place you like. Other useful Makefile options : ----------------------------- PREFIX : where the tools will be installed (default : /usr/local) CC : Compiler to use (defaul : gcc) BUILD_STATIC : build tools with a static version of the wireless lib BUILD_NOLIBM : build tools without mathematical lib (slower) BUILD_STRIPPING : strip symbols from tools/lib. BUILD_WE_ESSENTIAL : remove less used and obsolete features. You can pass those options on the command line of make, or modify the top of the Makefile. You can also set them as environment variable, but this is not recommended. If you pass those options on the command line, you should pass the same command line options for all invocations of make ("make" and "make install"). Memory footprint reduction : -------------------------- The Wireless Tools are used in various embedded systems where memory footprint is a great concern. The Wireless Tools package offer multiple options to customise the compilation depending on the level of features you want. The list below details the must useful combinations of these options, from the largest footprint to the smallest. Footprint depend on lot's of factor and is purely indicative (version 29-pre7+, i386, glibc, gcc 3.3.5). 1) Static build Command line : make BUILD_STATIC='y' - : Largest footprint - : libiw not included (other third party tools may depend on it) Size : ~280 kB 2) Default build Command line : make + : Fully featured version of the tools - : Largest footprint (except for static version of tools) Size : ~190 kB (libiw : ~29 kB ; ifrename : ~29 kB) 3) Stripping (remove function symbols) Command line : make BUILD_STRIPPING='y' + : Fully featured version of the tools - : Still quite large Size : ~110 kB (libiw : ~23 kB ; ifrename : ~17 kB) 4) Multicall version (include stripping) Command line : make iwmulticall ; make install-iwmulticall + : Fully featured version of the tools + : Small - : libiw not included (other third party tools may depend on it) - : ifrename is not included Size : ~55 kB 5) Multicall + Essential Command line : make BUILD_WE_ESSENTIAL='y' iwmulticall + : Smaller - : Some less used features are left out - : libiw not included (other third party tools may depend on it) - : ifrename is not included Size : ~44 kB 6) iwconfig only + essential + static Command line : make BUILD_WE_ESSENTIAL='y' BUILD_STATIC='y' BUILD_STRIPPING='y' iwconfig + : Very small - : Very limited functionality : no scanning, no event, no iwpriv - : libiw not included (other third party tools may depend on it) - : ifrename is not included Size : ~28 kB Wireless headers (past history) : ------------------------------- Previous version of the Wireless Tools had to be compiled with the same version of Wireless Extension that the kernel was using, and that was a major source of troubles. Starting with version 27, Wireless Tools include all the ugly code to deal with any version of Wireless Extensions, so now you can compile a single "generic" version of the tools for any kernel. Well, there are some limits, Wireless Extensions earlier than v11 are not supported (v9 and v10 should work fine), and versions later than the latest definition in the package are not supported. Once compile, the command "iwconfig --version" should tell you that. Note that the previous option to make versioned installed of the tools no longer make sense and therefore is gone. Old kernel with older Wireless Extensions : ----------------------------------------- Kernel prior to 2.2.14 : Those kernels include Wireless Extensions v8 or earlier. Those versions don't have proper support for 802.11b, so are not very useful. You may want to consider upgrading. Kernel 2.2.19 to 2.2.25 : Those kernels include Wireless Extensions v10. The tools should mostly work with it, but many drivers won't. You can upgrade those kernel to WE v15 with a patch on my web page. Kernel 2.2.14 to 2.2.18 : Those kernels include Wireless Extensions v9. Same as above, you may want to upgrade to a later 2.2.X kernel and then apply the patch. Kernel 2.0.X : Those kernels include very old version of Wireless Extensions. Same deal as old 2.2.X kernels. Jean