http://blogold.chinaunix.net/u/25572/showart_2513051.html
1. 从www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html 下载wireless_tools.30.pre9.tar.gz, 此版本支持non-ASCII char in ESSID
2. 解压到mydroid/external/wireless-tools目录
3. 创建Android.mk,内容如下
LOCAL_PATH:= $(call my-dir)
################## build iwlib ###################
include $(CLEAR_VARS)
LOCAL_SRC_FILES := iwlib.c
LOCAL_CFLAGS += -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Wpointer-arith -Wcast-qual -Winline -MMD -fPIC
LOCAL_MODULE:= libiw
LOCAL_STATIC_LIBRARIES := libcutils libc libm
include $(BUILD_STATIC_LIBRARY)
################## build iwconfig ###################
include $(CLEAR_VARS)
LOCAL_SRC_FILES := iwconfig.c
LOCAL_CFLAGS += -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Wpointer-arith -Wcast-qual -Winline -MMD -fPIC
LOCAL_MODULE:= iwconfig
LOCAL_STATIC_LIBRARIES := libcutils libc libm libiw
#LOCAL_FORCE_STATIC_EXECUTABLE := true
LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES) # install to system/xbin
#LOCAL_UNSTRIPPED_PATH := $(TARGET_ROOT_OUT_UNSTRIPPED)
#LOCAL_MODULE_TAGS := eng user
include $(BUILD_EXECUTABLE)
################## build iwlist ###################
include $(CLEAR_VARS)
LOCAL_SRC_FILES := iwlist.c iwlib.h
LOCAL_CFLAGS += -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Wpointer-arith -Wcast-qual -Winline -MMD -fPIC
LOCAL_MODULE:= iwlist
LOCAL_STATIC_LIBRARIES := libcutils libc libm libiw
#LOCAL_FORCE_STATIC_EXECUTABLE := true
LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES) # install to system/xbin
#LOCAL_UNSTRIPPED_PATH := $(TARGET_ROOT_OUT_UNSTRIPPED)
#LOCAL_MODULE_TAGS := eng user
include $(BUILD_EXECUTABLE)
4. 修改
将wireless.22.h 更名为wireless.h
修改ifrename.c 增加getline的函数,代码可以从external/genext2fs/genext2fs.c中获得,注意里边是用宏把另一个函数传给getline
修改iwlib.h,将#include <net/ethernet.h>改为#include <net/if_ether.h>
5. 编译
qiu@qiubutu:~/eclair-21/external/wireless-tools$ . ../../build/envsetup.sh
qiu@qiubutu:~/eclair-21/external/wireless-tools$ mm
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=2.1-update1
TARGET_PRODUCT=generic
TARGET_BUILD_VARIANT=eng
TARGET_SIMULATOR=
TARGET_BUILD_TYPE=release
TARGET_ARCH=arm
HOST_ARCH=x86
HOST_OS=linux
HOST_BUILD_TYPE=release
BUILD_ID=ECLAIR
============================================
make:进入目录'/home/qiu/eclair-21'
target thumb C: iwconfig <= external/wireless-tools/iwconfig.c
In file included from external/wireless-tools/iwlib.h:25,
from external/wireless-tools/iwlib-private.h:19,
from external/wireless-tools/iwconfig.c:14:
bionic/libc/include/stdlib.h:84: warning: declaration of 'abs' shadows a built-in function
bionic/libc/include/stdlib.h:88: warning: declaration of 'labs' shadows a built-in function
bionic/libc/include/stdlib.h:92: warning: declaration of 'llabs' shadows a built-in function
target thumb C: libiw <= external/wireless-tools/iwlib.c
In file included from external/wireless-tools/iwlib.h:25,
from external/wireless-tools/iwlib-private.h:19,
from external/wireless-tools/iwlib.c:14:
bionic/libc/include/stdlib.h:84: warning: declaration of 'abs' shadows a built-in function
bionic/libc/include/stdlib.h:88: warning: declaration of 'labs' shadows a built-in function
bionic/libc/include/stdlib.h:92: warning: declaration of 'llabs' shadows a built-in function
target StaticLib: libiw (out/target/product/generic/obj/STATIC_LIBRARIES/libiw_intermediates/libiw.a)
target Executable: iwconfig (out/target/product/generic/obj/EXECUTABLES/iwconfig_intermediates/LINKED/iwconfig)
target Non-prelinked: iwconfig (out/target/product/generic/symbols/system/bin/iwconfig)
target Strip: iwconfig (out/target/product/generic/obj/EXECUTABLES/iwconfig_intermediates/iwconfig)
Install: out/target/product/generic/system/xbin/iwconfig
target thumb C: iwlist <= external/wireless-tools/iwlist.c
In file included from external/wireless-tools/iwlib.h:25,
from external/wireless-tools/iwlib-private.h:19,
from external/wireless-tools/iwlist.c:14:
bionic/libc/include/stdlib.h:84: warning: declaration of 'abs' shadows a built-in function
bionic/libc/include/stdlib.h:88: warning: declaration of 'labs' shadows a built-in function
bionic/libc/include/stdlib.h:92: warning: declaration of 'llabs' shadows a built-in function
target Executable: iwlist (out/target/product/generic/obj/EXECUTABLES/iwlist_intermediates/LINKED/iwlist)
target Non-prelinked: iwlist (out/target/product/generic/symbols/system/bin/iwlist)
target Strip: iwlist (out/target/product/generic/obj/EXECUTABLES/iwlist_intermediates/iwlist)
Install: out/target/product/generic/system/xbin/iwlist
make:离开目录“/home/qiu/eclair-21”
6. 拷贝到文件系统
qiu@qiubutu:~/eclair-21/external/wireless-tools$ croot
qiu@qiubutu:~/eclair-21$ cp out/target/product/generic/system/xbin/iwconfig /nfs/rootfs/system/xbin/iwconfig
qiu@qiubutu:~/eclair-21$ cp out/target/product/generic/system/xbin/iwlist /nfs/rootfs/system/xbin/
7. 测试
启动android后
# modprobe libertas
# modprobe libertas_sdio
libertas_sdio: Libertas SDIO driver
libertas_sdio: Copyright Pierre Ossman
model=0xb
sd8686_helper.bin sd8686.bin
init: untracked pid 853 exited
init: untracked pid 856 exited
libertas: eth1: Marvell WLAN 802.11 adapter
# iwconfig eth1
eth1 IEEE 802.11b/g ESSID:"Antrose-11g"
Mode:Managed Frequency:2.437 GHz Access Point: 00:15:E9:0C:87:7C
Bit Rate:1 Mb/s Tx-Power=13 dBm
Retry limit:8 RTS thr=2347 B Fragment thr=2346 B
Encryption key:off
Power Management:off
Link Quality=83/100 Signal level=-60 dBm Noise level=-93 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:1441
Tx excessive retries:44 Invalid misc:11220 Missed beacon:0
# iwlist scan
eth1 Scan completed :
Cell 01 - Address: 00:22:6B:8C:5D:3A
ESSID:"Antrose-11g"
Mode:Managed
Frequency:2.412 GHz (Channel 1)
Quality=65/100 Signal level=-78 dBm Noise level=-96 dBm
Encryption key:off
Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 18 Mb/s
24 Mb/s; 36 Mb/s; 54 Mb/s; 6 Mb/s; 9 Mb/s
12 Mb/s; 48 Mb/s
# iwconfig eth1 essid Antrose-11g
# iwconfig eth1
eth1 IEEE 802.11b/g ESSID:"Antrose-11g"
Mode:Managed Frequency:2.437 GHz Access Point: 00:15:E9:0C:87:7C
Bit Rate:1 Mb/s Tx-Power=13 dBm
Retry limit:8 RTS thr=2347 B Fragment thr=2346 B
Encryption key:off
Power Management:off
Link Quality=83/100 Signal level=-60 dBm Noise level=-93 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:1441
Tx excessive retries:44 Invalid misc:11220 Missed beacon:0
完毕