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-11 15:36

平台的移动应用软件智能监控与支撑技术研究
通过分析云计算的强大优势作用,依托于云平台,实现智能监控系统高效的后端数据处理,使得系统可以发挥出最佳性能。同时,通过对监控数据进一步分析可以在一定程度上为决策者提供决策依据。 1.引言 随着互联网的发展,作为信息技术变革的焦点和热点,云受到了越来越多的重视。云是一种广泛的概念,它可以包罗万象,但这种包罗万象是以互联网为基础的,即云是整合了互联网资源,互联网服务,并将其作为一个庞大的整体提供给接入互联网的用户使用。通过云的整合,用户能够仅以低廉的成本享用高速的计算能力、海量的数据存储、分布式软件及硬件基础设施。云同时也赋予了用户与互联网资源在交互层面上更多的移动性,用户将个人生活办公资料同步到云端,即可随时随地选择多种设备使用
[嵌入式]
云<font color='red'>平台</font>的移动应用软件智能监控与支撑技术研究
Dialog推出最新超低功耗Wi-Fi SoC,加速IoT部署
高度集成电源管理、AC/DC电源转换、音频、充电和蓝牙低功耗技术供应商Dialog半导体公司日前宣布,推出FC9000,该产品是自Dialog收购Silicon Motion公司的移动通信产品线后推出的第一款Wi-Fi SoC,此项收购交易已于2019年5月31日完成。FC9000目标应用为智能门锁、视频监控系统、智能恒温器、无线传感器等电池供电的IoT设备,实现这些设备与Wi-Fi网络的直接连接,可支持电池使用寿命一般超过一年。 此前,在Zigbee、ZWave或蓝牙标准上运行的设备需要与昂贵且累赘的网关或智能手机配对,才能连接到云,这无疑增加了IoT部署的复杂度和不必要的成本。随着我们进入Wi-Fi无处不在的时代,F
[物联网]
Dialog推出最新超低功耗<font color='red'>Wi-Fi</font> SoC,加速IoT部署
开放、标准、免费 赛灵思发布Vitis统一软件平台
FPGA以及采用它们的片上系统架构具有可配置、适应性强的特性,使得该技术在从AI驱动的数据中心到智能边缘设备和IoT的众多应用中都是关键。作为其不断发展过程中的一部分,赛灵思一直在将这种自适应技术集成到用于机器学习的平台加速器解决方案,以及结合了各种计算资源的特定架构解决方案。 但是,当今异构计算架构的问题之一是,普通软件开发人员很难使用它们。 开发人员必须具有大量的硬件专业知识,才能了解如何最有效地利用系统中从CPU到GPU和FPGA的各种计算资源。 好消息是,近日赛灵思发布了一款名为Vitis的新的免费统一软件平台。 该公司希望可以让包括软件工程师和 AI 科学家在内的广大开发者都能受益于硬件灵活应变的优势。 Vi
[嵌入式]
开放、标准、免费 赛灵思发布Vitis统一软件<font color='red'>平台</font>
TD-SCDMA与TD-LTE共享平台研究
TD-SCDMA技术目前已开始规模应用。 TD-LTE 作为TD-SCDMA 的后续演进技术, 商用产品也将很快成熟, 因此需要尽早推动TD-SCDMA 设备支持与TD-LTE 共平台能力,尽可能地保护网络设备投资成本。此外,TD-LTE 可能将在较长一段时间内与TD-SCDMA 网络共存, 期间站址和天面资源的矛盾将日益突出,亟需实现资源共享,这对网络设备共平台也提出了迫切需求。   1 共平台涉及网元和设备型态分析   目前TD-SCDMA 中采用RNC+NodeB 构成无线侧网络,未来TD-LTE 采用扁平化结构,不再独立存在RNC 网元, 相应功能由eNodeB 实现。此外,TD-SCDMA 中广泛采用BBU+RRU 的分
[模拟电子]
TD-SCDMA与TD-LTE共享<font color='red'>平台</font>研究
Qualcomm驾驶数据平台助力TomTom高清地图测绘数据众包计划
Qualcomm Incorporated(NASDAQ: QCOM)子公司Qualcomm Technologies, Inc.今日宣布,其正与全球领先的导航和地图测绘产品企业TomTom(TOM2)合作,利用Qualcomm®驾驶数据平台(Qualcomm® Drive Data Platform)支持高清地图众包,加快自动驾驶未来发展。Qualcomm驾驶数据平台利用多项前沿技术,智能采集并分析来自不同车辆传感器的数据,使车辆更加智能:确定其定位、监控并学习驾驶模式、感知周围环境并将感知到的信息可靠精确地与周围世界分享。TomTom的高清地图(包括RoadDNA)是一款基于数字地图的产品,具有革命性和高度准确性,可帮助自动驾
[网络通信]
美国 AI 公司将打造漂浮在海上的计算平台,可容纳 10000 个英伟达 H100 GPU
11 月 2 日消息,Del Complex 宣布了一个“BlueSea Frontier Compute Cluster(蓝海前沿计算集群,BSFCC)”,这是一个可以漂浮在国际水域上的 AI 平台。 据介绍,该平台的目标是规避最近美国《人工智能行政命令》和欧盟《人工智能法》施加的限制,因此解决方案是将业务转移到其他地方,但其他地方不一定必须固定在一个位置。 BSFCC 是一个基于海洋的平台,可容纳多达 10000 个英伟达 H100(Hopper)数据中心 GPU。也就是说,这是一台漂浮在海面上的超级计算机,可以利用海水进行散热,该平台还有太阳能电池板,并搭配燃气轮机和蒸汽轮机提供动力。 ▲ 价值 2000 万美
[物联网]
英特尔科大讯飞强强联手 推出深度学习在线高性能计算平台
2016年4月13日,中国领先的语音技术和人工智能公司科大讯飞与英特尔在英特尔信息技术峰会(Intel Developer Forum,IDF16)上联合展示了在基于英特尔 至强 处理器以及Altera的FPGA(现场可编程逻辑阵列)的高性能计算(HPC)平台上开发和优化的深度学习在线解决方案,并披露了双方在该领域的合作发展计划,旨在整合双方资源优势,共同推进语音及人工智能技术在英特尔架构的高性能计算平台上的全面应用和规模落地,开创我国深度学习领域的全新局面。 此次在IDF16展区上展出的 讯飞听见智能会议系统 ,正是依托科大讯飞深耕多年的自然语言处理、声纹识别、语音识别等核心语音技术,基于英特尔 至强 处理器以及FPGA的高性
[嵌入式]
Qualcomm推出Snapdragon Wear 1200平台
Qualcomm Incorporated(NASDAQ: QCOM)今日在世界移动大会上海宣布,其子公司Qualcomm Technologies, Inc.,发布全新Qualcomm® Snapdragon™ Wear 1200平台,将为可穿戴设备行业带来LTE Cat M1(eMTC)和NB-1 (NB-IoT)连接。Snapdragon Wear 1200利用新兴LTE窄带技术(LTE IoT)所带来的广泛覆盖,帮助为特定用途的可穿戴设备(如儿童、宠物、老人和健身追踪器)开创新一代超低功耗、高效节能、始终连接且成本经济的体验。Snapdragon Wear 1200作为现有Snapdragon Wear 1100和Snap
[物联网]
小广播
设计资源 培训 开发板 精华推荐

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

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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