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目錄下存在兩個固件,但是每次系統上電自動初始化網卡的時候,總是提示找不到固件:
這裏寫圖片描述

多次調試後,終於發現是由於在掛載nfs前,系統已經開始初始化無線網卡了,這樣當然找不到文件了,解決方法有兩個:
①繼續使用nfs,將sdio網卡的驅動編譯成模塊(模塊在內核中的相關項更改之後,最好還是重新對根目錄下的文件進行覆蓋),手動insmod或者通過rcS腳本加載網卡;
②將文件系統放在mtd設備上面。

發佈了57 篇原創文章 · 獲贊 2 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章