基于FS2410的SDIO WIFI驱动移植

一、SDIO 设备驱动移植
(1)修改SD卡驱动使内核支持SD卡
 修改文件:arch/arm/mach-s3c2410/mach-smdk2410.c
 static struct platform_device *smdk2410_devices[] __initdata = {
 &s3c_device_ohci,
 &s3c_device_lcd,
 &s3c_device_wdt,
 &s3c_device_i2c0,
 &s3c_device_iis,
 &s3c_device_sdi,   ///增加平台设备对sd卡的支持
 };
(2)修改arch/arm/mach-s3c2410/mach-smdk2410.c 添加
#include<mach/gpio.h>
#include<linux/mmc/host.h>
#include<plat/mci.h>
Static struct s3c24xx_mci_pdata smdk2410_cfg_initdata={
.gpio_detect = S3C2410_GPG(10),
.set_power = NULL,
.ocr_avail = MMC_VDD_32_33,
};
(3)在smdk2410_init中添加
S3c24xx_mci_set_platdata(&smdk2410_mmc_cfg);
二、配置内核以支持Marvel无线WIFI
选择35内核中的wlan marwell sdio模块

 device drivers ---->
           [*] Network device support  --->
                     [*] Wireless LAN  --->
                           <M> Marwell 8xxx Libertas WLAN driver support
                           <M> Marwell Libertas 8385/8686/8688 SDIO 802.11b/g cards
 Networking support --->
            -*-   Wireless  --->
                   <*> cfg80211 - wireless configureation API
                    {*} common routines for IEEE 802.11 drivers
 
三、编译内核,生成驱动模块
(1)先执行make 然后make modules  //内核生成模块的方式
(2)将生成的wlan相关ko文件拷贝到目标板中,在这我放在/sdio目录下
/rootfs/filesystem/sdio$ls
libertas.ko  libertas_sdio.ko
/rootfs/filesystem/sdio$cp * /rootfs/filesystem/sdio/
(3)把固件helper_sd.bin sd8686.bin拷贝到相应的位置/rootfs/filesystem/lib/firmware/mrvl/ (wifi.c有定义,属于HAL层,后面两个目录是自己创建的)。
在Marvell 的网站,并在页面右边你会看到一个下拉菜单”选择您的平台”。下拉菜单中选 Linux 2.6 - Fedora,然后点下面的“搜索”下载 SD-8686-LINUX26-SYSKT-9.70.3.p24-26409.P45-GPL。(http://www.marvell.com/support/downloads/driverDownload.do?driverId=203&action=1).
(4)在目标板子插入SDIO WIFI 并加载驱动
首先插入SDIO WIFI 然后加载驱动
/sdio#insmod libertas.ko
/sdio#insmod libertas_sdio.ko helper_name=/lib/firmware/mrvl/helper_sd.bin fw_name=/lib/firmware/mrvl/sd8686.bin (注意要在一行)
驱动加载完成会提示:(注意:如果没有,则再次热插拔你的sdio wifi卡便可以看到)
  if_sdio_intterupt
  libertas: 00:01:36:19:b3:6b, fw 9.70.3p23, cap 0x00000303
  if_sdio_intterupt
  libertas: wlan0: Marvell WLAN 802.11 adapter
  sdio_havefister_driver
  sdio_init_module have done
四、编译测试工具
测试无线网卡用无线工具iwconfig iwlist等命令是通过开源软件wireless_tools_29.rar编译得到。
步骤:
(1)首先在windows目录解压上面那个软件包,把解压后的文件夹复制到虚拟机/home$ls
wireless_tools_29
/home/wireless_tools_29$
(2)修改Makefile   

  8   PREFIX = /home/wtools  //指定安装路径
 12  CC = arm-linux-gnu-gcc (和编译你的文件系统所用保持一致,也可静态编译,对Makefile适当修改)
 14  AR = arm-linux-gnu-ar
接着make 然后执行make install 即可。在/home/wtools下查看有:
lib sbin usr
目录,libiw.so(这是个软连接) libiw.so.29库在lib目录  而sbin目录为一些网络工具,如:iwlist、iwconfig等  可以man xxx查看功能
(3)拷贝libiw.so、libiw.so.29库和测试工具
/home/wtools/lib/$cp * /rootfs/filesystem/lib -a
/home/wtools/sbin/$cp * /rootfs/filesystem/bin (这样就不用考虑环境变量了)
五、测试
ifconfig -a      查看是否检测到无线网卡
在测试工具目录下测试
/sdio/wtools#ifconfig wlan0 up      
/sdio/wtools#iwlist wlan0 scanning                    //搜索热点
/sdio/wtools#iwconfig wlan0 essid "FS2410"    //链接热点
/sdio/wtools#ifconfig wlan0 192.168.1.99 netmask 255.255.255.0 up (静态分配,也可以动态分配。参考我的《基于FS2410的DHCP移植》)
/sdio/wtools#route add default gw 192.168.1.1
/sdio/wtools#ping 192.168.1.1 (测试ping通后,就可以接着给它加密了)
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值