歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 水星MW54U無線網卡在嵌入式Linux下驅動的配置問題

水星MW54U無線網卡在嵌入式Linux下驅動的配置問題

日期:2017/2/28 16:26:02   编辑:Linux教程

本篇基於友善之臂的mini2440 arm9開發平台,使用官方配套的根文件系統和內核樹。

水星MW54U無線網卡是基於Rt2571無線網卡芯片的,屬於ralink公司的rt73體系,和rt2500有些不同,在連接初始化配置時需要從主機加載鏡像文件,在使用ifconfig命令激活時需要將rt73 firmware 文件通過usb接口傳遞到芯片上的51單片機上。

Linux內核已經包含了Ralink常見各系列的USB無線網絡芯片的驅動程序,通過menuconfig工具配置

Network supports->wireless->Generic IEEE 802.11 Networking stack項和

General setup->Prompt for development and/or incomplete code/drivers項後

(根據Kconfig文件的依賴關系分析得出),可在

Device driver->Networking device support->wireless LAN->Ralink driver support項的

子菜單中選擇rt2501(rt73)驅動對應的項編譯進內核,安裝啟動內核,該無線網卡就能在系統中被識別成網絡設備了,但是如果該驅動程序依賴的firmware文件rt73.bin沒有在構建根文件系統時加進系統中,則在執行ifconfig wlan0 up啟動網卡時出現:

phy2 -> rt2x00lib_request_firmware: Info - Loading firmware file 'rt73.bin'.

rt73usb 1-1:1.0: firmware: requesting rt73.bin

phy2 -> rt2x00lib_request_firmware: Error - Failed to request Firmware.

ifconfig: SIOCSIFFLAGS: No such file or directory

提示找不到rt73.bin文件。

解決思路與方法:缺少rt73.bin這個文件自然就要我們加進去,但是需要放在什麼地方驅動程序才能找到呢?

開始試著修改驅動程序rt73.h頭文件裡的宏,重新編譯後來還是有問題,成功的做法如下:

Ubuntu使用的是同樣的內核驅動代碼,可以正確配置該網卡,相同代碼的行為應該一樣,可以參考ubuntu的做法,在ubuntu下查找rt73.bin文件,發現該文件位於/lib/firmware/下,在目標板上創建/lib/firmware目錄並把rt73.bin拷貝到該目錄,最後執行ifconfig wlan0 up,就可以啟動該網絡設備了,提示如下(我是開啟了內核的Ralink debug output選項的,不需要可以關閉):

phy2 -> rt2x00lib_request_firmware: Info - Loading firmware file 'rt73.bin'. rt73usb 1-1:1.0: firmware: requesting rt73.bin phy2 -> rt2x00lib_request_firmware: Info - Firmware detected - version: 1.7. phy2 -> rt2x00mac_conf_tx: Info - Configured TX queue 0 - CWmin: 5, CWmax: 10, A ifs: 2, TXop: 0. phy2 -> rt2x00mac_conf_tx: Info - Configured TX queue 1 - CWmin: 5, CWmax: 10, A ifs: 2, TXop: 0. phy2 -> rt2x00mac_conf_tx: Info - Configured TX queue 2 - CWmin: 5, CWmax: 10, A ifs: 2, TXop: 0. phy2 -> rt2x00mac_conf_tx: Info - Configured TX queue 3 - CWmin: 5, CWmax: 10, A ifs: 2, TXop: 0.

下一步需要進行無線網絡的配置。

Copyright © Linux教程網 All Rights Reserved