S3c6410 平台 Android系统的Wi-Fi调试记录

发布者:PeacefulOasis最新更新时间:2024-09-18 来源: cnblogs关键字:S3c6410  平台  Android系统  Wi-Fi  调试记录 手机看文章 扫描二维码
随时随地手机看文章

硬件平台:S3c6410

操作系统:Android

网卡芯片:GH381(SDIO接口 sdio8688)

1、SDIO驱动

        因为是SDIO接口,所以请先保证mmc驱动(代码在“kerneldriversmmc”)部分能够正常工作,这个一般调试flash的时候会涉及到,问题不大,因为S3c6410平台的HSMMC有3个,要根据硬件原理图确认网卡的SDIO接口接在哪个上面了,我调试的时候是HSMMC1,针对HSMMC1涉及到的修改有

         ① 'kernelarcharmconfigssmdk6410_android_deconfig':

                CONFIG_S3C_DEV_HSMMC1=y

                CONFIG_S3C6410_SD_CH1=y

        ②'kernelarcharmmach-s3c6410Kcofnig':

                select S3C_DEV_HSMMC1

        ③“kernelarcharmmach-s3c6410mach-smdk6410.c':

                #ifdef CONFIG_S3C6410_SD_CH1

                    &s3c_device_hsmmc1,

                 #endif

        注:目前暂时把网卡的上电部分放到了mmc初始化管脚的时候,以后再挪到其他地方

2、网卡驱动

        网卡驱动一般由芯片厂商提供,如果能拿到源代码首先要保证能够编译通过,GH381的驱动编译出来名为sd8xxx.ko。

        驱动能够编译通过后,就是加载了,两个步骤:

        1)把驱动和firmware放到系统中去.

        一般是在”eclairvendorsec_proprietary'目录下建一个目录,放上驱动和firmware文件。

        然后在Android.mk中将文件拷贝到设备对应目录即可,如:

        PRODUCT_COPY_FILES += $(LOCAL_PATH)/helper_sd.bin:system/etc/firmware/mrvl/helper_sd.bin (firmware文件)

        PRODUCT_COPY_FILES += $(LOCAL_PATH)/sd8688.bin:system/etc/firmware/mrvl/sd8688.bin (firmware文件)

        PRODUCT_COPY_FILES += $(LOCAL_PATH)/sd8xxx.ko:system/lib/modules/sd8xxx.ko (驱动文件)        

        2)系统调用驱动,驱动download firmware

            因为网卡驱动对上层的接口是通过wpa_supplicant中间层实现的,因此也要保证wpa层能能够正确的识别网卡。

        涉及到的代码修改有:

        ①”eclairhardwarelibhardware_legacywifiwifi.c“

                #define WIFI_DRIVER_MODULE_PATH         '/system/lib/modules/sd8xxx.ko'//驱动文件的全路径

                #define WIFI_DRIVER_MODULE_NAME         'sd8xxx' //这个名字是模块名字,用于关闭WIFI时调用,一般和ko文件的名字相同

                #define WIFI_TEST_INTERFACE 'mlan0'//'sta'(这个名字是根据网卡名字写的,但是个人感觉应该用sta才对)

        注:这部分修改,保证在启动wifi的时候可以找到对应的驱动

        ②“eclairvendorsecsmdk6410AndroidBoard.mk”

                BOARD_WPA_SUPPLICANT_DRIVER := WEXT

        注:这部分修改,保证wpa_supplicnat能够正常编译到系统中(见“externalwpa_supplicantAndroid.mk”开始部分的编译条件)

        ③“eclairvendorsecsmdk6410init.rc”

                # give system access to wpa_supplicant.conf for backup and restore
                mkdir /system/etc/wifi 0770 wifi wifi
                chmod 0770 /system/etc/wifi
                chmod 0660 /system/etc/wifi/wpa_supplicant.conf
                chown wifi wifi /system/etc/wifi/wpa_supplicant.conf
    
                #wpa_supplicant control socket for android wifi.c (android private socket)
                mkdir /data/misc/wifi 0777 wifi wifi
                mkdir /data/misc/wifi/sockets 0777 wifi wifi
                mkdir /data/system/wpa_supplicant 0777 wifi wifi
                chmod 0777 /data/misc/wifi
                chmod 0777 /data/misc/wifi/wpa_supplicant.conf
                chown wifi wifi /data/misc/wifi
                chown wifi wifi /data/misc/wifi/wpa_supplicant.conf
    
                mkdir /data/misc/dhcp 0777 dhcp dhcp
                chmod 0777 /data/misc/dhcp
                chmod 0777 /system/etc/dhcpcd
                chmod 0777 /system/etc/dhcpcd/dhcpcd-run-hooks # dhcpcd-run-hooks的权限一定要设置,不然DHCP服务无法正常工作
                chown dhcp dhcp /data/misc/dhcp
                chown dhcp dhcp /system/etc/dhcpcd
                chown dhcp dhcp /system/etc/dhcpcd/dhcpcd-run-hooks                

             on boot#注意这里,创建目录,设置权限的部分一定要放在on boot 之前,而启动服务设置接口的在放在之后。不然会出现没有/data/misc/dhcp目录的问题,之后dhcp服务更无法工作。

               service wpa_supplicant /system/bin/wpa_supplicant -dd -Dwext -imlan0-c /system/etc/wifi/wpa_supplicant.conf
                #socket wpa_mlan0dgram 660 wifi wifi
               #group system wifi inet
                disabled
                oneshot

                service dhcpcd /system/bin/dhcpcd -f /system/etc/dhcpcd/dhcpcd.conf -dmlan0
                #group system dhcp wifi
                disabled
                oneshot

                setprop wifi.interface 'mlan0'
                setprop wlan.driver.status 'ok'
                setprop wlan.interface 'mlan0'

                注:红色的部分mlan0是网卡驱动设置的网卡名字,这部分代码可以在驱动代码的wlan_add_card()函数中找到:

                 if (dev_alloc_name(dev, 'mlan%d') < 0) {

                     PRINTM(ERROR, 'Could not allocate device name!n');

                     goto err_kmalloc;

                 }

        ③'eclairexternalwpa_supplicantwpa_supplicant.conf'

                update_config=1

                //ctrl_interface=mlan0 这部分应该是Android的特殊定义,不过用起来貌似会有错误,就使用下面通用的unix设置了

                ctrl_interface=DIR=/data/misc/wifi/wpa_supplicant GROUP=wifi

                ap_scan=1 #这里最好设置为1,不然可能会出现搜索不到AP的现象。

 

        目前的状态:WIFI可以成功打开,搜索到周围的AP,连接部分还存在问题,继续调试。2011.2.11 16:30

-------------------------------------------------------------------------------------------------------

碰到问题及解决方式:

1、连接AP时,运行到下面的代码时,出现错误
     Wlan_wmm.c wmm_process_app_iface_tx{
     ...
     atomic_inc(&Adapter->wmm.packetsQueued);//此处有错误
     ...
     }
     错误如下:
     Alignment trap: not handling instruction e1930f9f at []
     Unhandled fault: alignment exception (0x001) at 0xc98ac0b2 //校准错误
        
     解决办法:
     在wmm的结构体中增加变量,使整个结构体,在packetsQueued的前面是4个字节的整数倍
     typedef struct
      {
            u8 required;
            u8 enabled;
            u16 tmp;//此处为额外增加,保证packetsQueued前面有4个字节
            atomic_t packetsQueued;
            ...
       }__ATTRIB_PACK__ WMM_DESC;

[1] [2]
关键字:S3c6410  平台  Android系统  Wi-Fi  调试记录 引用地址:S3c6410 平台 Android系统的Wi-Fi调试记录

上一篇:Tiny 6410 按键中断驱动笔记
下一篇:内核总线之LCD,frambuffer(sb)

推荐阅读最新更新时间:2024-11-18 07:09

联发科技解决方案获选Wi-Fi CERTIFIED MiracastTM认证计划测试平台
2012年9月19日,全球无线通讯及数字媒体IC设计领导厂商联发科技股份有限公司 (MediaTek, Inc.) 今天宣布,联发科技MT662X 802.11a/b/g/n双频移动通信终端解决方案、子公司雷凌科技RT3592 802.11n Wi-Fi芯片以及MV0690数字电视解决方案获选Wi-Fi CERTIFIED MiracastTM 认证计划测试平台。联发科技MiracastTM 解决方案使移动通信装置无需通过基地台,即可直接将多媒体影音内容无线串流到电视或投影机的大屏幕上。 Wi-Fi联盟CEO Edgar Figueroa表示:“恭喜联发科技获选为Wi-Fi CERTIFIED MiracastTM 认证计划测试平
[手机便携]
富昌电子开通微信公众号,搭建互动交流新平台
日前,国际授权分销商富昌电子正式宣布开通“富昌电子”微信公众号,这是继电子报、微博之后,富昌电子推出的又一数字化媒体平台,用户通过微信可以更方便、更及时地从移动互联网了解行业热点资讯,与富昌电子交流分销行业的精彩点滴。 互联网日趋多元化发展的态势,掀起了移动互联的热潮,也在潜移默化地改变人们获取信息的习惯。微信作为便捷的互联网通讯软件,已经渗透到庞大的客户群。与传统媒体、社交媒体相比,微信的内容更丰富,从文字、图像到视频全新的展现形式,给题材做大、做深更大的发挥空间。对于用户而言,通过微信订阅信息更精准,微信的点对点传播特性确保100%的到达率,避免关心的话题被淹没在海量信息中。 “富昌电子”公众号将定期推送信息,
[半导体设计/制造]
Verizon CTO:WP平台难进三甲 看好WebOS
北京时间2月17日上午消息,美国运营商Verizon CTO托尼·梅隆(Tony Melone)周三对诺基亚与微软建立的合作予以批评,这对于迫切希望得到运营商支持以在美国市场占据竞争优势的诺基亚与微软而言不是什么好消息。 梅隆在接受采访时对诺基亚和微软的联姻嗤之以鼻:“我认为Verizon不需要诺基亚和微软建立的这种合作关系。当前,我们公司的网络采用三种操作系统,分别来自Android、苹果和RIM。” Verizon不采用诺基亚服务有其历史原因:Verizon网络使用CDMA技术,而世界上大多数运营商以及美国的AT&T和T-Mobile均使用GSM技术。诺基亚多年前停止生产CDMA手机,Verizon当前提供的服务不
[网络通信]
基于OMAP3平台的MID解决方案
移动因特网设备(MID)是一种集成了无线通信与计算功能的新兴产品,旨在提供比笔记本电脑更高的便携性和比手机更大的的显示屏。作为MID制造厂家的重要解决方案供应商,德州仪器(TI)提供集成了ARM Cortex-A8处理器、影像、视频及图形加速功能的单芯片OMAP3平台,可充分满足以最低功耗实现最高性能的要求。与Intel的双芯片Atom解决方案相比,采用移动工艺设计的OMAP3处理器使制造商能够构建尺寸更小、重量更轻、价格与功耗更低的高可扩展性产品,从而全面满足从智能电话到MID的各种产品的需求。 MID的特性和分类 MID的主要特性和功能包括:采用触摸技术实现直观易用的用户界面;功能齐备的浏览器可实现无与伦比
[手机便携]
基于OMAP3<font color='red'>平台</font>的MID解决方案
Mentor Graphics发布最新Xpedition设计平台
Mentor Graphics Corporation (NASDAQ: MENT) 2014年3月17日于威尔逊维尔、俄勒冈宣布推出第一阶段的最新系统设计企业平台,以应对今日印刷电路板(PCB)系统所面临的设计复杂度提升、员工人力结构改变以及系统感知设计需求等挑战。Mentor Graphics发布的Xpedition™平台能大幅简化并加速业界最具挑战性的设计开发工作。透过将直观的设计环境与设计人员导向的自动化功能结合在一起,Xpedition PCB设计平台能解决设计人员改变中的设计任务,包括全球化的团队组织,让用户能达到专家级的执行成果,并获得最佳的生产力。因此,可显著缩短产品开发周期、将重新设计次数降至最低,并提升产品
[EDA]
苹果发布 Swift 6 编程语言:引入新测试框架、增强 C++ 互操作性,扩展支持平台
科技媒体 devclass 昨日(9 月 19 日)报道,苹果公司在发布 iOS / iPadOS 18 和 macOS 15 Sequoia 系统之外,还发布了 Swift 6.0 编程语言更新。 本次更新带来了一系列改进,包括更安全的并发处理、新的标准测试库,以及改善 Windows、Linux 以及苹果平台的跨设备支持。 Swift 简介 Swift 是一种编译型语言,其性能接近 C 或 C++,但对开发者而言更安全且更易上手。 安全特性包括:变量在使用前必须初始化,数组和整数执行溢出检查,内存管理自动进行等。 Swift 6 改进 新增可选模式 在 Swift 6 中,新增了一种可选模式,通过编译器检查来检测数据竞争错误,
[嵌入式]
雅特生科技推出ControlSafeTM SIL4铁路系统计算平台的扩展版本
二零一六年九月二十二日 -- 中国讯 -- 雅特生科技 (Artesyn Embedded Technologies) 在德国柏林的InnoTrans 展览会上展出一款符合安全完整性等级第4级(SIL4)认证标准的ControlSafe Expansion Box Platform扩展平台。该平台是一个量产版的ControlSafe计算系统,其特点是可大幅缩短产品的上市时程,让客户可以迅速部署开发新一代的列车控制和信号系统或为现有系统升级更新。这个新平台是雅特生科技ControlSafe安全平台的扩展版,优点是机箱较大,可以插入较大的输入/输出模块,而且设计灵活,平台可以被配置为类似ControlSafe安全平台的双重冗余安全系统,
[嵌入式]
雅特生科技推出ControlSafeTM SIL4铁路<font color='red'>系统</font>计算<font color='red'>平台</font>的扩展版本
Ramtron FRAM入驻DSP为基础的音频平台 彰显速度优势
FRAM具有非易失性、快速写入能力和高耐用性,能够实现先进的存储功能,无需在断电前使用电容来存储数据 全球领先的非易失性铁电随机存取存储器 (FRAM) 和集成半导体产品开发商及供应商Ramtron International Corporation宣布,韩国的Daesung-Eltec公司已将 FRAM存储器设计于其以数字信号处理 (DSP) 为基础的汽车音频平台中。Daesung-Eltec选择了64kb连2-wire串行接口的FRAM器件 -- FM24C64,以实现精密的存储器功能如存储音频、频道和喜爱的歌手/歌曲设置,以及恢复播放和喜爱的演员/歌曲提示功能。FRAM的非易失性、No Delay (无延迟) 写入能力、几
[焦点新闻]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved