Marvell 8686 SDIO WIFI 内核配置

由于纯净的Linux内核本来就支持这个型号的网卡,因此只需要打开相关内核配置即可:
①打开内核对802.11的支持:

-> Networking support                                                                     
   -> Wireless 
       -> 【*】cfg80211 - wireless configuration API
       -> 【*】Generic IEEE 802.11 Networking Stack (mac80211)

②打开AP功能的支持:

-> Device Drivers
  -> Network device support (NETDEVICES [=y]) 
    -> Wireless LAN (WLAN [=y]) 
      【*】IEEE 802.11 for Host AP (Prism2/2.5/3 and WEP/TKIP/CCMP) 

③打开内核对SDIO/MMC的支持:

-> Device Drivers
    ->【*】 MMC/SD/SDIO card support  --->

④打开Marvell 8686 SDIO驱动:

-> Device Drivers                                                                                            
  -> Network device support 
    -> Wireless LAN
      -> Marvell 8xxx Libertas WLAN driver support 
         ->【*】 Marvell Libertas 8385/8686/8688 SDIO 802.11b/g cards 

⑤打开SDIO Host Interface:

-> Device Drivers                                                                                            
  -> MMC/SD/SDIO card support
     【*】Secure Digital Host Controller Interface support 
     【*】SDHCI support on Samsung S3C SoC

对于WIFI网卡(类似于部分USB摄像头,例如Apple的个别型号),一般驱动初始化时需要在根文件系统下提供相应的固件,这个时候就需要到http://wireless.kernel.org或者http://linuxwireless.sipsolutions.net/en/users/上面去搜索固件,并且将固件放到跟文件系统下面,对于.fw文件需要放在/lib/firmware下,路径有特殊要求的固件,需要根据源码中的描述进行更改。

对于Marvell 8686这个SDIO借口的网卡,需要有两个固件:
sd8686_helper.bin和sd8686.bin(可以在http://dev.laptop.org/pub/firmware/libertas/获得),将这两个文件直接放在/lib/firmware目录下面即可。

在试验中,由于我的根文件系统是通过有线网卡DM9000 挂载nfs的,遇到了一个非常奇怪的问题:确认/lib/firmware目录下存在两个固件,但是每次系统上电自动初始化网卡的时候,总是提示找不到固件:
Marvell 8686 SDIO WIFI 内核配置_第1张图片

多次调试后,终于发现是由于在挂载nfs前,系统已经开始初始化无线网卡了,这样当然找不到文件了,解决方法有两个:
①继续使用nfs,将sdio网卡的驱动编译成模块(模块在内核中的相关项更改之后,最好还是重新对根目录下的文件进行覆盖),手动insmod或者通过rcS脚本加载网卡;
②将文件系统放在mtd设备上面。

你可能感兴趣的:(Linux驱动)