如何自己编译wireless tool
由于涉及到license的问题,在ICS2版本之后,MTK默认不提供wireless tools,
客户可以自行下载代码进行编译,为了应对可能的编译问题,本文将提供编译的方法。
代码下载地址:http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/wireless_tools.29.tar.gz
1 首先将解压的目录改名为wireless-tools,并放到/mediatek/source/external/目录下。
(ALPS.JB.MP及之后的版本,放到如下目录:/mediatek/external/)
2 Makefile文件内容相同,不用修改,而下载的代码缺少Android.mk文件,需要添加。
Android.mk的内容如下:
# Copyright Statement: # # This software/firmware and related documentation ("MediaTek Software") are # protected under relevant copyright laws. The information contained herein # is confidential and proprietary to MediaTek Inc. and/or its licensors. # Without the prior written permission of MediaTek inc. and/or its licensors, # any reproduction, modification, use or disclosure of MediaTek Software, # and information contained herein, in whole or in part, shall be strictly prohibited.
# MediaTek Inc. (C) 2010. All rights reserved. # # BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES # THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE") # RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER ON # AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES, # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT. # NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE # SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR # SUPPLIED WITH THE MEDIATEK SOFTWARE, AND RECEIVER AGREES TO LOOK ONLY TO SUCH # THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. RECEIVER EXPRESSLY ACKNOWLEDGES # THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES # CONTAINED IN MEDIATEK SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK # SOFTWARE RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR # STANDARD OR OPEN FORUM. RECEIVER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND # CUMULATIVE LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE, # AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE, # OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY RECEIVER TO # MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. # # The following software/firmware and/or related documentation ("MediaTek Software") # have been modified by MediaTek Inc. All revisions are subject to any receiver's # applicable license agreements with MediaTek Inc.
LOCAL_PATH:=$(call my-dir)
# iwlib
include $(CLEAR_VARS)
LOCAL_SRC_FILES := iwlib.c LOCAL_CFLAGS += -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Wpointer-arith -Wcast-qual -Winline -MMD -fPIC LOCAL_STATIC_LIBRARIES := libcutils libc libm LOCAL_MODULE := libiw include $(BUILD_STATIC_LIBRARY)
# iwconfig
include $(CLEAR_VARS)
LOCAL_SRC_FILES := iwconfig.c LOCAL_CFLAGS += -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Wpointer-arith -Wcast-qual -Winline -MMD -fPIC 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 LOCAL_MODULE:= iwconfig include $(BUILD_EXECUTABLE)
# iwevent
include $(CLEAR_VARS)
LOCAL_SRC_FILES := iwevent.c LOCAL_CFLAGS += -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Wpointer-arith -Wcast-qual -Winline -MMD -fPIC 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 LOCAL_MODULE:= iwevent include $(BUILD_EXECUTABLE)
# iwgetid
include $(CLEAR_VARS)
LOCAL_SRC_FILES := iwgetid.c LOCAL_CFLAGS += -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Wpointer-arith -Wcast-qual -Winline -MMD -fPIC 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 LOCAL_MODULE:= iwgetid include $(BUILD_EXECUTABLE)
# iwlist
include $(CLEAR_VARS)
LOCAL_SRC_FILES := iwlist.c LOCAL_CFLAGS += -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Wpointer-arith -Wcast-qual -Winline -MMD -fPIC 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 LOCAL_MODULE:= iwlist include $(BUILD_EXECUTABLE)
# iwpriv
include $(CLEAR_VARS)
LOCAL_SRC_FILES := iwpriv.c LOCAL_CFLAGS += -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Wpointer-arith -Wcast-qual -Winline -MMD -fPIC 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 LOCAL_MODULE:= iwpriv include $(BUILD_EXECUTABLE)
# iwspy
include $(CLEAR_VARS)
LOCAL_SRC_FILES := iwspy.c LOCAL_CFLAGS += -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Wpointer-arith -Wcast-qual -Winline -MMD -fPIC 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 LOCAL_MODULE:= iwspy include $(BUILD_EXECUTABLE) |
(JB2的版本内容稍有不同,请在上面6处 include $(BUILD_EXECUTABLE)和
1处include $(BUILD_STATIC_LIBRARY)前面加上LOCAL_MODULE_TAGS :=optional这句)
3 将wireless.22.h改名为wireless.h
4 iwlib.h文件内容略有不同,有些包含的头文件不同,也有些预定义内容不同,
修改如下两个地方:
#include <net/ethernet.h> /* struct ether_addr */ 改为: #include <net/if_ether.h> /* struct ether_addr */
|
#endif /* IW_EV_LCP_PK_LEN */ 放到 #define IW_EV_POINT_PK_LEN (IW_EV_LCP_PK_LEN + 4) 后面
|
5 下载下来的代码多了一个 ifrename.c文件,可以删掉