mx6q_sabresd之wifi移植

ath6kl的驱动已经在内核中实现,只要选择相应的配置  (AR6003 SDIO WIFI芯片)

1. networkingsupport----->Wireless相关项选中

2.  Device Drivers->Network device support->Wireless LAN,把Atheros Wireless Cards选成模块

3. Enter进去,把ath6kl的相关项选中,如下图:

4. 然后保存退出,重新编译。生成drivers/net/wireless/ath/ath6kl/ath6kl.ko和net/wireless/cfg80211.ko

     可以看到配置文件中的改变

CONFIG_ATH_COMMON=m
CONFIG_ATH_DEBUG=y
# CONFIG_ATH5K is not set
# CONFIG_ATH5K_PCI is not set
# CONFIG_ATH9K is not set
# CONFIG_ATH9K_HTC is not set
# CONFIG_CARL9170 is not set
CONFIG_ATH6KL=m
CONFIG_ATH6KL_DEBUG=y

5. 在文件系统中执行insmod cfg80211.ko和 insmod ath6kl.ko 。如果一切正常的话会出现下面的情况:

Compat-wireless backport release: patch-10-27-gd46416c-p
Backport based on  branching-msm-3.2.3-44-g65b285b
Calling CRDA to update world regulatory domain
World regulatory domain updated:
    (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
    (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
    (2457000 KHz - 2482000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
    (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
    (5140000 KHz - 5360000 KHz @ 40000 KHz), (N/A, 3000 mBm)
    (5460000 KHz - 5860000 KHz @ 40000 KHz), (N/A, 3000 mBm)
android_readwrite_file: ret=-2
android_readwrite_file: ret=-2
mmc1: queuing unknown CIS tuple 0x01 (3 bytes)
mmc1: queuing unknown CIS tuple 0x1a (5 bytes)
mmc1: queuing unknown CIS tuple 0x1b (8 bytes)
mmc1: queuing unknown CIS tuple 0x14 (0 bytes)
android_readwrite_file: ret=18
android_readwrite_file: ret=18
ath6kl: temporary war to avoid sdio crc error
ehci_fsl_bus_resume begins, DR
ath6kl: host only supports scatter of :1 entries, need: 16
ath6kl: ar6003 hw 2.1.1 sdio fw 3.4.0.189.TABLET_DONGLE api 4
ath6kl: Current ath6kl driver version is: 3.4.0.189

    # ifconfig 会看到出现 wlan0

6. 使用ifconfig wlan0 up命令把无线网卡激活。就可以使用了。

当然要确保支持SD卡

 Device Drivers  --- 
           <*> MMC/SD/SDIO card support  ---> 


wifi加密工具:

      wpa_supplicant :wpa_supplicant本是开源项目源码,被谷歌修改后加入android移动平台,它主要是用来支持WEP,WPA/WPA2和WAPI无线协议和加密认证的,而实际上的工作内容是通过socket(不管是wpa_supplicant与上层还是wpa_supplicant与驱动都采用socket通讯)与驱动交互上报数据给用户,而用户可以通过socket发送命令给wpa_supplicant调动驱动来对WiFi芯片操作。 简单的说,wpa_supplicant就是WiFi驱动和用户的中转站外加对协议和加密认证的支持,WIFI安全接入客户端。

     openssh: 为网络通信提供安全及数据完整性的一种安全协议,囊括了主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议, 它是一个多用途的、跨平台的密码工具。

无线网络工具 :

    wireless_tools (安装后就有iwspy , iwpriv, iwlist, iwconfig)

    iwlist命令扫描附近的无线接入点

Android无线网络的结构:

1.Linux内核中WIFI协议和WIFI驱动程序

   WIFI协议是标准的内容,根据具体硬件芯片实现WIFI驱动程序

2. wpa_supplicant可执行程序       external/wpa_supplicant

    wpa_supplicant是一个Linux标准的WIFI管理工具,在这里将生成可执行程序wpa_supplicant, 生成用于调试的工具wp_cli.

3. wifi本地适配库      hardware/libhardware_legacy/wifi/

    wifi.c是一个源文件, hardware/libhardware_legacy/include/hardware_legacy/wifi.h

    生成的内容是libhardware_legacy.so的一部分,通过调用libwpaclient.so成为wpa_supplicant在Android中的客户端。

4. wifi的JNI部分   frameworks/base/core/jni/android_net_wifi_Wifi.cpp

     WIFI本场对Java的支持,主要提供了对android.net.wifi包中WIFI类的支持。

5. WIFI的Java框架部分

    frameworks/base/wifi/java/android/net/wifi/ : 实现android.net.wifi包中的各个类

    frameworks/base/services/java/com/android/server/ : 实现WIFI的服务

    其中,android.net.wifi包将作为Android的平台API提供给Java应用程序层使用。

    

    

参考:

http://download.youkuaiyun.com/detail/bingyuderizi/8386129

http://www.embedu.org/column/Column740.htm

http://www.embedu.org/Column/Column935.htm

http://blog.youkuaiyun.com/armeasy/article/details/6252389

http://my.oschina.net/u/994235/blog/159541

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值