说明之前:文档建立在实际的项目中:

硬件环境是三星x210,软件是android4.0 ubuntu13.04

1  如何获取驱动:

1.1 AR6000 3.1的资源包最新可以找到的地方: 2014-5

http://git.omnilab.sjtu.edu.cn/chen_xm/linux-sunxi/tree/917c1c8cba6f33d53b68a1020d49d4da532e3329/modules/wifi/ar6003

https://github.com/psyke83/AR6kSDK.3.0

1.2 利用git可以拿到网上的资料:

Hacking on ath6kl

ath6kl is now part of wireless kernel trees. All the development happens in githubgithub's ath6kl project. To clone the tree:

git clone git://github.com/kvalo/ath.git

The driver is located in drivers/net/wireless/ath/ath6kl. To compile the driver enable CONFIG_ATH6KL which is found under Device Drivers/Network device support/Wireless LAN/Atheros Wireless Cards/Atheros ath6kl support. Also enable CONFIG_ATH6KL_DEBUG to include all debugging code.

Send any patches to Kalle Valo < kvalo@qca.qualcomm.com >, but remember also to CC both < ath6kl@lists.infradead.org > and < linux-wireless@vger.kernel.org. To learn more about git you can refer to our Git guide. It even documents how to send patches with git format-patch.

ref:

http://wireless.kernel.org/en/users/Drivers/ath6kl

1.3 最新的SDK应该还是在GIT上拿到的,利用GIT注册后,安装git的工具就可以下载。

https://github.com/CyanogenMod/AR6kSDK.3.1

2 wifi 驱动的编译(in linux):

讲到AR6K的编译我们大致有两种思路:在内核内找 或者 单独编译源码包

2.1 利用源码包进行编译

【提问】这个驱动是不是在内核里面,还是就是在其他地方?

1.0 android 内核驱动的路径:编译之前你得想想源码该放哪里呢?

【提问】当我们从网上拿到一个驱动的源码包的时候,驱动源码应该默认放在android的那个文件夹下面那?

【回答】其实放在那里都一样,关键是,输出的ko的路径,和你的kernel的配置.当然,作为一个严谨的驱动开发者,必须考虑路径的严谨性。

这样在将来做自动配置的时候会有一个很好的逻辑。

ref:

http://blog.csdn.net/wh_19910525/article/details/7393615

【实践】

我把驱动源文件放到如下目录:【驱动文件】

WIFI Driver = hanson@hanson-desktop:~/x210_ics_rtm_v13/hardware/qcom$

然后参照厂家的手册:check the guide of the software :

Modify <WIFI Driver>/host/localmake.linux.inc             
ATH_ANDROID_ENV := yes                                    
Build for Android system                                  
ATH_SOFTMAC_FILE_USED :=yes                               
Use MAC address which is stored in /system/wifi/softmac   
ATH_HTC_RAW_INT_ENV := yes                                
TCMD support                                              
ATH_AR6K_OTA_TEST_MODE := no                              
Don’t enable power saving for OTA mode

ATH_CROSS_COMPILE_TYPE := $(ANDROID_SDK)/…/toolchain/…/a

【实践】
ATH_CROSS_COMPILE_TYPE := /usr/local/arm/arm-2009q3/bin/arm-none-linux-gnueabi-

ATH_BUS_TYPE:=SDIO                                        
ATH_BUS_SUBTYPE:= linux_sdio

ATH_LINUXPATH := <Your kernel source path>                
Android/out/target/product/xxxx/obj/KERNEL_OBJ

【实践】

ATH_LINUXPATH := ~/x210_ics_rtm_v13/kernel

Type ‘make’ to make the driver                          
host/.output/$(ATH_BUILD)‐$(ATH_BUS_TYPE)/image/ar6000.ko

【实践】在Host 目录进行编译,结果正确生成ko文件。

我选用了git上的AR6kSDK.build_3.1_RC.734包进行编译

hanson@hanson-desktop:~/x210_ics_rtm_v13/hsy_others/ar6k/AR6kSDK.3.1-master/AR6kSDK.build_3.1_RC.734/host$ make

make[1]: Leaving directory `/home/hanson/x210_ics_rtm_v13/hsy_others/ar6k/AR6kSDK.3.1-master/AR6kSDK.build_3.1_RC.734/host/hif/sdio'
cp -f /home/hanson/x210_ics_rtm_v13/hsy_others/ar6k/AR6kSDK.3.1-master/AR6kSDK.build_3.1_RC.734/host/os/linux/ar6000.ko /home/hanson/x210_ics_rtm_v13/hsy_others/ar6k/AR6kSDK.3.1-master/AR6kSDK.build_3.1_RC.734/host/.output/X210_ARM_NATIVEMMC-SDIO/image
/usr/local/arm/arm-2009q3/bin/arm-none-linux-gnueabi-strip -g -S -d /home/hanson/x210_ics_rtm_v13/hsy_others/ar6k/AR6kSDK.3.1-master/AR6kSDK.build_3.1_RC.734/host/.output/X210_ARM_NATIVEMMC-SDIO/image/ar6000.ko

2.2 利用内核自带的驱动选择编译:

参考:

8192CU WIFI驱动移植

http://blog.chinaunix.net/uid-22910619-id-2606845.html

将wifi固件编译进内核,成功加载sdio wifi模块

http://wenku.baidu.com/link?url=ugCp3bKE1I_SArudXby2wpbx-927FHTi5lcxdPVMZMWDWb78AGDN8H564mcBmeJ9-TopLc9t5zin06XqfXmIKgBpvUavKOdcmXHD0NMh9Rq

3  linux 下的配置:

calmake.linux.inc,
参考如下:#ATH_BUILD_TYPE := <Platform (Eg: LOCAL_i686)>
#ATH_BUS_TYPE := <Interconnect type (Eg: SDIO, SPI)>
#ATH_LINUXPATH := <Pointer to kernel source (Eg: /<path>/fc3-i686-2.6.9)>
#ATH_ARCH_CPU_TYPE := <Type of architecture (Eg: arm)>
#ATH_CROSS_COMPILE_TYPE := <Path to the compiler toolchain - Eg: (/<path>/arm_v4t_le-)
#ATH_OS_SUB_TYPE := <Kernel version - (Eg: linux_2_4, linux_2_6)>
#ATH_CFG80211_ENV := <yes or no>ATH_BUILD_TYPE := LOCAL_i686
ATH_BUS_TYPE := SDIO
ATH_LINUXPATH := /usr/src/linux-headers-2.6.32-21-generic
ATH_ARCH_CPU_TYPE := arm
ATH_OS_SUB_TYPE := linux_2_6
ATH_HC_DRIVERS := 'pci_ellen/ pci_std/'
ATH_BUS_SUBTYPE := linux_sdio
#export ATH_EEPROM_FILE_USED:=yes
export ATH_ANDROID_ENV := yes
#export ATH_UPDATA_MAC_EEPROM := yes
ATH_DEBUG_DRIVER := yes
ATH_AR6K_BUILTIN_HCI_TRANSPORT := yes【hsy75案】firmware的装载地址是可以在下面的头文件配置的2.驱动包编译成功后,将附件固件放在默认路径ath6k/AR6003/hw2.0/下,
(该目录也可根据自己的需要在驱动代码AR6kSDK.3.0_RC.205\host\os\linux\include\ar6000_drv.h
中进行修改。)然后insmod ar6000.ko即可。

手动编译配置:

Build the driver externally (Debug purpose)
1. Modify AR6kSDK.3.0_RC.375/host/localmake.linux.inc
2. Define your Android product name as ATH_BSP_TYPE
3. Define your android bsp path as ATH_ANDROID_ROOT
4. Define your kernel full path as ATH_LINUXPATH
5. cd to host/
6. type "make" to make the driver
7. the driver will be output into
AR6kSDK.3.0_RC.375/host/.output/$(ATH_BSP_TYPE)_ARM_NATIVEMMC-SDIO/
image/ar6000.ko
8. adb push ar6000.ko /system/wifi/
9. adb shell mkdir -p /system/wifi/ath6k/AR6003/hw2.0
10. Push the following firmware binaries to the directory in above step
adb push athwlan.bin.z77 /system/wifi/ath6k/AR6003/hw2.0
adb push otp.bin.z77 /system/wifi/ath6k/AR6003/hw2.0
adb push data.patch.hw2_0.bin /system/wifi/ath6k/AR6003/hw2.0/
data.patch.bin
adb push fakeBoardData_AR6003_v2_0.bin /system/wifi/ath6k/AR6003/hw2.0/
bdata.SD31.bin

4  Android 下的配置:

在第二节的内容我们谈到了编译文件的路径问题,芯片公司对android的参考设置如下:

File structure

【案】这就是我们第一届可以从网上下载的源码
android/system/wlan/atheros/AR6kSDK.3.0_RC.375
GPL driver and utilities source code
android/system/wlan/atheros/AR6kSDK.3.0_RC.375-proprietary
Atheros proprietary firmware and utilities

【案】android wifi 的扩展工具集,也可以通过网上查找获得
android/external/wireless_tools.29
Wireless extension utilities. GPL license
android/external/ath_supplicant-0.6.10
wpa_supplicant 0.6.10 from Atheros.
android/external/iperf-2.0.4
Network performance testing tools
android/external/dnsmasq-2.55
DHCP server of AP mode for Android less than 2.2 It will not be built if Android
version =2.2

编译配置:

配置内核

make menuconfig

然后 enable wifi extention

修改板级别配置

【andorid]\device\samsung\x210\BoardConfig.mk

#Add for wifi
BOARD_WIFI_VENDOR := atheros
ifeq ($(BOARD_WIFI_VENDOR), atheros)
    
    #指定wpa_supplicant版本
    WPA_SUPPLICANT_VERSION := VER_0_8_ATHEROS     
    #If using Android default wpa_supplicant 0.6.10
    #WPA_SUPPLICANT_VERSION := VER_0_6_ATHEROS
    
    BOARD_WPA_SUPPLICANT_DRIVER := WEXT

#驱动位置
    BOARD_WLAN_ATHEROS_SDK := system/wlan/atheros/AR6kSDK.build_3.1_RC.734
    
    BOARD_WPA_SUPPLICANT_DRIVER := AR6000
    WPA_BUILD_SUPPLICANT := true
 
    #select wake on wireless mode for ar6k
    HOSTAPD_VERSION := VER_0_8_ATHEROS
    
    BOARD_WLAN_PM_SUSPEND :=2
    CONFIG_CTRL_IFACE := y

#for other board
    #BOARD_WLAN_DEVICE                        := ar6003
    #BOARD_HAS_ATH_WLAN                      := true
    #WPA_SUPPLICANT_VERSION                  := VER_0_8_ATHEROS
    #WIFI_DRIVER_MODULE_PATH                  := "/system/lib/modules/ath6kl_sdio.ko"
    #WIFI_DRIVER_MODULE_NAME                  := "ath6kl_sdio"
    #WIFI_DRIVER_MODULE_ARG                  := "suspend_mode=3 wow_mode=2 ar6k_clock=26000000 ath6kl_p2p=1"
    #WIFI_DRIVER_P2P_MODULE_ARG              := "suspend_mode=3 wow_mode=2 ar6k_clock=26000000 ath6kl_p2p=1 debug_mask=0x2413"
    #WIFI_SDIO_IF_DRIVER_MODULE_PATH          := "/system/lib/modules/cfg80211.ko"
    #WIFI_SDIO_IF_DRIVER_MODULE_NAME          := "cfg80211"
    #WIFI_SDIO_IF_DRIVER_MODULE_ARG          := ""
    #WIFI_COMPAT_MODULE_PATH                  := "/system/lib/modules/compat.ko"
    #WIFI_COMPAT_MODULE_NAME                  := "compat"
    #WIFI_COMPAT_MODULE_ARG                  := ""

endif

当然,如果按照手动的方式编译好了也是可以,不过既然在andorid,那么在文件夹下面修改android.mk是个标准的方法。

在驱动源 folder 进行修改:

【andorid】\system\wlan\atheros\AR6kSDK.build_3.1_RC.734\host\Android.mk

ifeq ($(TARGET_PRODUCT),$(filter $(TARGET_PRODUCT),qsd8250_surf qsd8250_ffa msm7627_surf msm7627_ffa msm7627a msm7625_ffa msm7625_surf msm7630_surffull_x210))
#export  ATH_LINUXPATH=$(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ
#ATH_CROSS_COMPILE_TYPE:=$(ATH_ANDROID_ROOT)/prebuilt/linux-x86/toolchain/arm-eabi-4.3.1/bin/arm-eabi-

ATH_CROSS_COMPILE_TYPE:=/usr/local/arm/arm-2009q3/bin/arm-none-linux-gnueabi-
ATH_LINUXPATH:=/home/hanson/x210_ics_rtm_v13/kernel

endif
$(mod_file) : $(mod_cleanup) $(ACP)
    $(MAKE) ARCH=arm CROSS_COMPILE=$(ATH_CROSS_COMPILE_TYPE) -C $(ATH_LINUXPATH) ATH_HIF_TYPE=$(ATH_HIF_TYPE) PLAT_WOW_GPIO_PIN=$(board_wow_gpio) SUBDIRS=$(ATH_SRC_BASE)/os/linux modules
    $(ATH_ANDROID_ROOT)/$(ACP) $(ATH_TARGET_OUTPUT)/$(ATH_ANDROID_SRC_BASE)/host/os/linux/ar6000.ko $(ATH_ANDROID_ROOT)/$(TARGET_OUT)/wifi/
    $(warning STEP3...................)

编译实践1:

我在另外一个博文里面有比较详细的阐述:请参阅如下:

http://blog.csdn.net/yellow_hill/article/details/27327203

编译实践2:

android.mk 的一些变量通过:

设置在andorid.mk设置命令打印出来:

$(warning $(mod_file) mod_file)
$(warning $(mod_cleanup)  mod_cleanup)
$(warning $(TARGET_PREBUILT_KERNEL)   TARGET_PREBUILT_KERNEL)
$(warning $(ACP)   ACP)

$(warning $(ATH_CROSS_COMPILE_TYPE)   ATH_CROSS_COMPILE_TYPE)
$(warning $(ATH_LINUXPATH)   ATH_LINUXPATH)
$(warning $(ATH_HIF_TYPE)   ATH_HIF_TYPE)
$(warning $(board_wow_gpio)   board_wow_gpio)
$(warning $(ATH_SRC_BASE)   ATH_SRC_BASE)

$(warning $(ATH_TARGET_OUTPUT)  ATH_TARGET_OUTPUT)
$(warning $(ATH_ANDROID_SRC_BASE)  ATH_ANDROID_SRC_BASE)
$(warning $(TARGET_OUT)  TARGET_OUT)

============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=4.0.4
TARGET_PRODUCT=full_x210
TARGET_BUILD_VARIANT=eng
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a-neon
HOST_ARCH=x86
HOST_OS=linux
HOST_BUILD_TYPE=release
BUILD_ID=IMM76L
============================================
system/wlan/atheros/AR6kSDK.build_3.1_RC.734/host/Android.mk:39: full_x210
system/wlan/atheros/AR6kSDK.build_3.1_RC.734/host/Android.mk:40: system/wlan/atheros/AR6kSDK.build_3.1_RC.734
system/wlan/atheros/AR6kSDK.build_3.1_RC.734/host/Android.mk:41: /home/hanson/x210_ics_rtm_v13
system/wlan/atheros/AR6kSDK.build_3.1_RC.734/host/Android.mk:137: /home/hanson/x210_ics_rtm_v13/system/wlan/atheros/AR6kSDK.build_3.1_RC.734
system/wlan/atheros/AR6kSDK.build_3.1_RC.734/host/Android.mk:146: out/target/product/x210/system/wifi/ar6000.ko mod_file
system/wlan/atheros/AR6kSDK.build_3.1_RC.734/host/Android.mk:147: /home/hanson/x210_ics_rtm_v13/system/wlan/atheros/AR6kSDK.build_3.1_RC.734  mod_cleanup
system/wlan/atheros/AR6kSDK.build_3.1_RC.734/host/Android.mk:148:    TARGET_PREBUILT_KERNEL
system/wlan/atheros/AR6kSDK.build_3.1_RC.734/host/Android.mk:149: out/host/linux-x86/bin/acp   ACP
system/wlan/atheros/AR6kSDK.build_3.1_RC.734/host/Android.mk:151: /usr/local/arm/arm-2009q3/bin/arm-none-linux-gnueabi-   ATH_CROSS_COMPILE_TYPE
system/wlan/atheros/AR6kSDK.build_3.1_RC.734/host/Android.mk:152: /home/hanson/x210_ics_rtm_v13/kernel   ATH_LINUXPATH
system/wlan/atheros/AR6kSDK.build_3.1_RC.734/host/Android.mk:153: sdio   ATH_HIF_TYPE
system/wlan/atheros/AR6kSDK.build_3.1_RC.734/host/Android.mk:154:    board_wow_gpio
system/wlan/atheros/AR6kSDK.build_3.1_RC.734/host/Android.mk:155: /home/hanson/x210_ics_rtm_v13/system/wlan/atheros/AR6kSDK.build_3.1_RC.734/host   ATH_SRC_BASE
system/wlan/atheros/AR6kSDK.build_3.1_RC.734/host/Android.mk:157: /home/hanson/x210_ics_rtm_v13  ATH_TARGET_OUTPUT
system/wlan/atheros/AR6kSDK.build_3.1_RC.734/host/Android.mk:158: system/wlan/atheros/AR6kSDK.build_3.1_RC.734  ATH_ANDROID_SRC_BASE
system/wlan/atheros/AR6kSDK.build_3.1_RC.734/host/Android.mk:159: out/target/product/x210/system  TARGET_OUT
system/wlan/atheros/AR6kSDK.build_3.1_RC.734/host/Android.mk:174: STEP2..............

正常编译:

输出的编译结果放在如下的文件夹:android/out/target/product/<your-vendor-product>/system/wifi/

修改控制wifi管理函数库

Android中通过wpa_supplicant控制wifi。

wpa_supplicant通过socket与hardware/libhardware_legacy/wifi/wifi.c通信,

当在UI开启wifi的时候首先要加载wifi模块驱动,然后开启wpa_supplicant配置文件,因此在wifi.c中修改驱动和配置文件的对应位置。

#ifndef WIFI_DRIVER_MODULE_PATH

#define WIFI_DRIVER_MODULE_PATH "/system/wifi/ar6000.ko"

#endif

#ifndef WIFI_DRIVER_MODULE_NAME

#define WIFI_DRIVER_MODULE_NAME "ar6000"

#endif

#ifndef WIFI_DRIVER_MODULE_ARG

#define WIFI_DRIVER_MODULE_ARG ""

#endif

#ifndef WIFI_FIRMWARE_LOADER

#define WIFI_FIRMWARE_LOADER ""

#endif

#define WIFI_TEST_INTERFACE "wlan0"

修改wpa_supplicant.conf 把external/ath_supplicant-0.8.x/wpa_supplicant/wpa_supplicant.conf拷贝到out/target/product/smdkv210/system/etc/wifi/目录下,

ctrl_interface=DIR=/data/misc/wifi/wpa_supplicant GROUP=wifi //wlan0在这个目录下 eapol_version=1 ap_scan=0 // fast_reauth=1

修改dhcp配置

在/system/etc/dhcpcd/dhcpcd.conf中修改

interface wlan0

option subnet_mask, routers, domain_name_server

配置路径和权限

wpa_supplicant运行在wifi用户和组下的。代码可见wpa_supplicant/os_unix.c 中的os_program_init()函数。

如果系统的/system目录为只读,那应该使用路径/data/misc/wifi/wpa_supplicant.conf.

确认init.rc中有如下配置:

cd ../<myandroid>/device/samsung/smdkv210

vi init.rc

# give system access to wpa_supplicant.conf for backup and restore

mkdir /data/misc/wifi 0770 wifi wifi

chmod 0770 /data/misc/wifi

chmod 0660 /data/misc/wifi/wpa_supplicant.conf

chmod 0660 /data/misc/wifi/hostapd.conf

mkdir /data/misc/wifi/sockets 0770 wifi wifi

chmod 0770 /data/misc/wifi/sockets

mkdir /data/misc/dhcp 0770 dhcp dhcp

chmod 0770 /data/misc/dhcp

chmod 0775 /system/etc/dhcp/dhcp-run-hooks setprop wifi.interface wlan0

配置运行wpa_supplicnat、dhcp和hostapd 在init.rc中添加如下语句:

service wpa_supplicant /system/bin/logwrapper /system/bin/wpa_supplicant -dd -Dwext -iwlan0 -c /data/misc/wifi/wpa_supplicant.conf

user root

group wifi inet

socket wpa_wlan0 dgram 660 wifi wifi

oneshot

service dhcpcd /system/bin/logwrapper /system/bin/dhcpcd -d -B wlan0

disabled

oneshot

service hostapd /system/bin/hostapd /system/etc/wifi/hostapd.conf

group wifi inet

oneshot

disabled

需要参考的文档如下:

1 AR6003 SDK for Android

2 RAK310 WIFI 通信模块

3 AR6003 for Android Platform

遇到的问题:

1 在利用内核自带的driver时候遇到的问题,因为是3.0的内核,所以,驱动还是在staging目录:

*************************
PLATFORM:
BSP:      GT-I5500
*************************
mkdir --parents /home/hanson/x210_ics_rtm_v13/hardware/qcom/AR6K/host/.output/GT-I5500_ARM_NATIVEMMC-SDIO/image
mkdir --parents /home/hanson/x210_ics_rtm_v13/hardware/qcom/AR6K/host/.output/bin
make  ARCH=arm  CROSS_COMPILE=/usr/local/arm/arm-2009q3/bin/arm-none-linux-gnueabi- -C ~/x210_ics_rtm_v13/kernel ATH_HIF_TYPE=`echo SDIO | tr [:upper:] [:lower:]` SUBDIRS=/home/hanson/x210_ics_rtm_v13/hardware/qcom/AR6K/host/os/linux modules
make[1]: Entering directory `/home/hanson/x210_ics_rtm_v13/kernel'
  CC [M]  /home/hanson/x210_ics_rtm_v13/hardware/qcom/AR6K/host/os/linux/../../hif/sdio/linux_sdio/src/hif.o
  CC [M]  /home/hanson/x210_ics_rtm_v13/hardware/qcom/AR6K/host/os/linux/../../hif/sdio/linux_sdio/src/hif_scatter.o
/home/hanson/x210_ics_rtm_v13/hardware/qcom/AR6K/host/os/linux/../../hif/sdio/linux_sdio/src/hif_scatter.c: In function 'SetupHIFScatterSupport':
/home/hanson/x210_ics_rtm_v13/hardware/qcom/AR6K/host/os/linux/../../hif/sdio/linux_sdio/src/hif_scatter.c:284: error: 'struct mmc_host' has no member named 'max_hw_segs'
/home/hanson/x210_ics_rtm_v13/hardware/qcom/AR6K/host/os/linux/../../hif/sdio/linux_sdio/src/hif_scatter.c:285: error: 'struct mmc_host' has no member named 'max_hw_segs'
/home/hanson/x210_ics_rtm_v13/hardware/qcom/AR6K/host/os/linux/../../hif/sdio/linux_sdio/src/hif_scatter.c:285: error: 'struct mmc_host' has no member named 'max_hw_segs'
make[2]: *** [/home/hanson/x210_ics_rtm_v13/hardware/qcom/AR6K/host/os/linux/../../hif/sdio/linux_sdio/src/hif_scatter.o] Error 1
make[1]: *** [_module_/home/hanson/x210_ics_rtm_v13/hardware/qcom/AR6K/host/os/linux] Error 2
make[1]: Leaving directory `/home/hanson/x210_ics_rtm_v13/kernel'
make: *** [modules] Error 2

【原因】网上找了一下是kernel版本的问题
The problem is because the mmc stack is out of sync in Greg's staging tree and Stephen's linux-next tree. Greg asked me to generate a patch which I did and emailed to Greg.
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

http://us.generation-nt.com/answer/linux-next-tree-september-27-help-200463501.html

网上参考文献链接:

freescare 移植实例:

How to Support New WiFi Card in Android

https://community.freescale.com/docs/DOC-93603

1 一份重要的移植参考:

Atheros AR6003 SDIO WiFi Integration

https://developer.ridgerun.com/wiki/index.php/Atheros_AR6003_SDIO_WiFi_Integration#Open_Source_project

AR6K 实际项目做过者的博客:

AR6003 wifi模块在linux 2.6.36下的编译

http://hi.baidu.com/hst_jiangbo/item/a622cdca611e3d0ec610b23e

WR6000 --sdio 接口的 WIFI芯片 驱动的交叉编译

http://blog.chinaunix.net/uid-21143149-id-1830087.html

AR6K 一个网上最新的源码

(linux )

http://www.pudn.com/downloads515/sourcecode/unix_linux/network/detail2139419.html

(wince)

http://cewifidriverar6000.codeplex.com/SourceControl/latest#AR6K

2 AR6K 如果是SDIO 接口的话,下面的参考很有用,这是一个系列的博

linux下MMC/SD/SDIO驱动系列之一 ---- 概述

http://blog.csdn.net/xieweihua2012/article/details/12785491

linux下MMC/SD/SDIO驱动系列之二 ---- host注册过程(一)

http://blog.csdn.net/xieweihua2012/article/details/12844733

linux下MMC/SD/SDIO驱动系列之三 ---- host注册过程(二)

http://blog.csdn.net/xieweihua2012/article/details/12918763

linux下MMC/SD/SDIO驱动系列之四 ---- SDIO的识别与操作
http://blog.csdn.net/xieweihua2012/article/details/13984405

3 android 下的wifi的移植说明,

来自于google 网站

http://www.kandroid.org/online-pdk/guide/wifi.html

来自其他的博客:

Android下WIFI功能移植

http://www.2cto.com/kf/201209/156221.html

android wifi驱动移植详细过程

http://bbs.imp3.net/thread-10558924-1-1.html

Android平台开发-WIFI 驱动移植 -- 详细

http://blog.csdn.net/wh_19910525/article/details/7392199

wifi详解(5)

http://www.myexception.cn/mobile/548582.html

Porting WiFi drivers to Android

http://hi.baidu.com/aokikyon/item/db9ef9c07dcb77c6984aa00d

Android WIFI 驱动移植

http://blog.163.com/gl_jiang@126/blog/static/76100972201312832333879

Freescare wifi 移植说明:

https://community.freescale.com/docs/DOC-93603

SPI/SDIO 接口比较

http://wenku.baidu.com/link?url=Bx3P21vwKxQt0leLbQRrGjJ5uipzZdKf68O3ycboWZyJ78VLNpMmUINGoefTg5h91onPZmYMVwU9HU7MTt0Wv8bHmz7TsNq1OXxBpNUEItG

4 一些编译的问题

http://blog.chinaunix.net/uid-21696322-id-430774.html

5 系统集成实例

基于FS2410的SDIO WIFI移植

http://blog.csdn.net/bailyzheng/article/details/7492650

S​D​I​O​ ​W​I​F​I​模​块​安​卓​系​统​R​A​K​3​1​0​_​A​N​D​模​块​用​户​手​册

http://wenku.baidu.com/link?url=fUzMmS9sl_ZuLHrdvKAT57P56VhzOHuKbcKGdE9uNqfY25thTKUlSSKXo_I-lH931dkRF68nO8OVoIA6IukQaINA-p6eGdJYsdesN99dl0K

6 一些讨论:

http://rootzwiki.com/topic/3552-the-kryptonite-project-touchpad-hardware-subsystems-and-a-kernel-to-match/page-10

####################################################################################################################################

版权所有:转贴请指明出处!谢谢!

正在制作中,马上还会更新。。。

Made by huang.makin@gmail.com

【实践驱动开发2-001】wifi 在android 下的实现 - AR6000 系列移植详细步骤相关推荐

  1. Android 开发之Windows环境下Android Studio安装和使用教程(图文详细步骤)

    鉴于谷歌最新推出的Android Studio备受开发者的推崇,所以也跟着体验一下. 一.介绍Android Studio  Android Studio 是一个Android开发环境,基于Intel ...

  2. Android Studio环境配置安装、搭建详细步骤及使用方法

    APP准备工作如下 1.源码下载 因为我已经下载好了 就不演示了 连下载都不会我就不说什么了. 稍后我会随教程发源码出去 jdk-8u77-windows-x64 萝卜app 1.1 mahuaTV这 ...

  3. Linux移植:正点原子阿尔法IMX6ULL开发板Linux内核源码移植详细步骤(4.1.15版本内核)

    Linux移植:正点原子阿尔法IMX6ULL开发板Linux内核源码移植详细步骤(4.1.15版本内核) 文章目录 Linux移植:正点原子阿尔法IMX6ULL开发板Linux内核源码移植详细步骤(4 ...

  4. 【实践驱动开发3-004】TI WL1835MODCOM8 在android的移植 - 系统结构初始化和参考列表

    移植wifi,显然必须了解wifi的基础结构,尤其在Android下的结构. 1 wifi的系统结构: 2 SDIO/wifi驱动分析 1.1 Android 下的wifi配置设置 在GOOGLE的网 ...

  5. 【实践驱动开发3-001】TI WL1835MODCOM8 在android的移植 - 准备

    TI 的无线芯片的支持很好,不过有一个问题,那就是TI总是一堆堆的给你东西,TI的OMAP系列虽然很好,但是贵啊!如果我们想在其他平台上拿TI的某一个模块进来,还真的有点麻烦. 本文尝试在x210上用 ...

  6. Android 腾讯位置服务使用(详细步骤+源码)

    腾讯位置服务使用 前言 正文 一.注册腾讯位置服务账号 二.创建平台应用Appkey 三.创建并配置AS工程 四.定位 ① 连续定位 ② 单次定位 ③ 后台定位 ④ 地理围栏 五.地图 ① 基础地图 ...

  7. 解决因蓝牙驱动版本问题无法升win10问题 (附 WIN7升级WIN10超详细步骤 及 升级后个别问题软件处理方法)

    昨天晚上刚升级完毕,现在已经在正常使用! 有什么问题的朋友,欢迎多多交流! 想看如何解决因为蓝牙驱动无法升win10问题的朋友,直接看 升级过程中解决问题 的章节.其实思路就是如果真的无法更新驱动,那 ...

  8. 【实践驱动开发3-006】TI WL1835MODCOM8 在android的移植 - SDIO wifi驱动的注册步骤

     说明之前:文档建立在实际的项目中: 硬件环境是三星x210,软件是android4.0 ubuntu13.04 EDITING AREA Linux的platform 机制简介 从 Linux ...

  9. 【实践驱动开发3-005】TI WL1835MODCOM8 在android的移植 - SDIO and wifi 基础

    硬件环境是三星x210,软件是android4.0 ubuntu13.04 1 SDIO接口介绍 1.sdio接口层解析 SDIO总线 SDIO总线 和 USB总线 类似,SDIO也有两端,其中一端是 ...

最新文章

  1. ue4商城素材 Cyberpunk City / Recife Environment 赛博朋克城市场景
  2. cocos2d-x一些核心概念介绍
  3. 【图像处理opencv】_Jupyter 更改文件默认保存目录
  4. 一次给女朋友转账引发我对分布式事务的思考
  5. 11 Python之初识函数
  6. shell日志重定向到null
  7. BlogEngine.NET 1.5的BlogProvider、DbBlogProvider
  8. 国产手机:跨出去之路
  9. java rsa padding_rsa加密--选择padding模式需要注意的问题。。。
  10. 浅谈抖音下拉词框优化推广的优势
  11. 题目1555:重复子串
  12. linux平台h5手游源码下载,十年经典大天使之剑H5手游源码手工端+内充+搭建教程...
  13. stdafx有什么用(包含相关问题分析)
  14. map函数——STL库
  15. 智能蓝牙技术原理及设计方案集锦
  16. 《深度思维》读书笔记
  17. android bks证书生成方式
  18. ubuntu18.04根目录已满造成开机失败报错Fail to start....
  19. 数据中台,我还能爱你吗(文末送书)
  20. android x86睡死,【已解决】xps15 睡眠睡死

热门文章

  1. java 课后习题 月历打印
  2. C语言 求sin(x)的近似值
  3. 【Python】第三方库安装脚本
  4. 【缓存】Redis入门
  5. github编程语言排名_这是每种主要编程语言的Hello World应用示例-全部在一个GitHub存储库中
  6. css一行点点点_如何通过一点点创意使CSS成为不可能
  7. 第一部linux手机,手机界再掀风波,英特尔力争在下一部手机中抢得一席之地
  8. nfsd linux是什么进程,Linux 下的 NFS 系统简介
  9. python函数应用(1)
  10. QT-lesson1-无边框窗口创建/拖拽/阴影-20190322