基于Android的SDIO-WIFI移植(1)

 一、SDIO 设备驱动移植
        很不巧内核已经“被”支持了,我就先不费这事了。
二、配置内核以支持Marvel无线WIFI
在这里我编译成模块的方式:

     Device Drivers  --->
            [*] Network device support  --->
                    Wireless LAN  ---> 
                            <M>   Marvell 8xxx Libertas WLAN driver support
                            <M>     Marvell Libertas 8385 and 8686 SDIO

802.11b/g cards
     [*] Networking support  --->
                    [*]   Wireless  ---> 
                            <*>   Improved wireless configuration API  
                            [*]     cfg80211 regulatory debugging  
                            [*]     nl80211 new netlink interface support   
                            {*}   Common routines for IEEE802.11 drivers 

       配置好后执行: make zImage 然后, make modules以生成我们要的驱动模块。把编译好的drivers/net/wireless/libertas/目下的驱动模块文件libertas.ko和libertas_sdio.ko复制到Android文件系统下的/system/lib/modules/目录下。后面发现根文件系统里面也“被”支持了,很郁闷!
三、放置好固件
      创建firmware路劲为 /system/etc/firmware目录,把helper_sd.bin,sd8686.bin移动至 /system/etc/firmware下面,并更改 helper_sd.bin为 sd8686_helper.bin
#mkdir /system/etc/firmware
#mv /helper_sd.bin sd8686.bin /system/etc/firmware/
#cd /system/etc/firmware
#mv helper_sd.bin sd8686_helper.bin

使用如下加载方法:
insmod /system/lib/modules/libertas.ko
insmod /system/lib/modules/libertas_sdio.ko

libertas_sdio: Libertas SDIO driver
libertas_sdio: Copyright Pierre Ossman
此时:ifconfig -a
查看有没有创建wlan0这个设备节点,若没有驱动好网卡,再次热插拔一下就好

 # err = -123
mmc1: new SDIO card at address 0001
__func__ = if_sdio_prog_helper
libertas_sdio mmc1:0001:1: firmware: requesting sd8686_helper.bin
init: untracked pid 2074 exited
libertas_sdio mmc1:0001:1: firmware: requesting sd8686.bin
init: untracked pid 2077 exited
libertas: 00:0b:6c:89:62:4b, fw 9.70.3p23, cap 0x00000303
……
四、手动连接AP
        首先得在Android上移植好无线工具,和FS2410类似(可参考我有关介绍Android上移植无线工具iwconfig、iwlist等)。
移植好无线工具后便可以测试了:
ifconfig -a      查看是否有wlan0 网络节点。
利用无线工具连接:
ifconfig wlan0 up      
iwlist wlan0 scanning
iwconfig wlan0 essid "FS2410"
ifconfig wlan0 192.168.1.99 netmask 255.255.255.0 up

这时可以执行:
ping 192.168.1.1&

64 bytes from 192.168.1.1: seq=0 ttl=64 time=2.247 ms
64 bytes from 192.168.1.1: seq=1 ttl=64 time=1.900 ms
……
(可以kill -9 pid 结束进程)

五、自动连接AP,Android方式
    ……(下一节)

http://blog.csdn.net/yicao821/article/details/6872247


你可能感兴趣的:(android,NetWork,工具,interface,networking,debugging)