Linux RT3070驅動移植

來源:互聯網
上載者:User

 

RT3070無線網卡分兩種驅動,分別是STA模式和軟AP模式。現將移植的過程記錄下來。

下載 2011_0107_RT3070_RT3370_Linux_STA_v2.5.0.1_DPO.tar.bz2 , 這個是STA模式的RT3070網卡驅動。

# tar jxvf 2011_0107_RT3070_RT3370_Linux_STA_v2.5.0.1_DPO.tar.bz2

#cd 2011_0107_RT3070_RT3370_Linux_STA_v2.5.0.1_DPO.tar.bz2

修改Makefile

#vim Makefile

1.找到

RTMP_SRC_DIR = $(RT28xx_DIR)/RT$(CHIPSET)

#PLATFORM: Target platform

PLATFORM = PC
#PLATFORM = 5VT
#PLATFORM = IKANOS_V160

紅色的 PC 修改成你需要的目標機器,我的目標平台是arm SUMSUNG 2440,所以我們修改成SMDK。

2.找到

ifeq ($(PLATFORM),SMDK)
LINUX_SRC =  /root/fuck/linux-2.6.28.7/
CROSS_COMPILE = /usr/local/arm/3.4.1/bin/arm-linux-
endif

紅字部分修改成你核心代碼的位置,同時指定你的編譯器位置。

3. make.

4.將rt3070sta.ko加入到檔案系統中,在目標板中運行 insmod rt3070sta.ko.

5.如果載入出現一下錯誤:

#insmod rt3070sta.ko

     insmod: error inserting 'rt3070sta.ko': -1 Unknown symbol in module

[ 2443.154486] rt2070ap: Unknown symbol usb_alloc_urb

[ 2443.154628] rt2070ap: Unknown symbol usb_free_urb

[ 2443.155032] rt2070ap: Unknown symbol usb_register_driver

[ 2443.155324] rt2070ap: Unknown symbol usb_put_dev

[ 2443.155439] rt2070ap: Unknown symbol usb_get_dev

[ 2443.155652] rt2070ap: Unknown symbol usb_submit_urb

[ 2443.156164] rt2070ap: Unknown symbol usb_control_msg

[ 2443.156553] rt2070ap: Unknown symbol usb_deregister

[ 2443.157013] rt2070ap: Unknown symbol usb_kill_urb

[ 2443.157116] rt2070ap: Unknown symbol usb_buffer_free

[ 2443.157443] rt2070ap: Unknown symbol find_vpid

[ 2443.157675] rt2070ap: Unknown symbol usb_buffer_alloc

 

開始我也不知道為什麼會出現上面的這些問題,後來在網上找到了遇

到同一問題的一個開發人員,用下面這個辦法解決了這個問題。

需要在檔案os/linux/usb_main_dev.c檔案的開頭加上如下一行代碼:

 

MODULE_LICENSE(“GPL”);

 

然後重新編譯、重新載入,即可得到正確的結果。

 

7.ifconfig ra0 up

成功載入,不過這個是在你正確的將source目錄下的RT2870STA.dat複製到目標檔案系統的/etc/Wireless/RT2870STA/目錄下。

8.# ifconfig ra0 up
(Efuse for 3062/3562/3572) Size=0x2d [2d0-2fc]
RTMP_TimerListAdd: add timer obj c48d2288!
RTMP_TimerListAdd: add timer obj c48d22b4!
RTMP_TimerListAdd: add timer obj c48d22e0!
RTMP_TimerListAdd: add timer obj c48d225c!
RTMP_TimerListAdd: add timer obj c48d21d8!
RTMP_TimerListAdd: add timer obj c48d2204!
RTMP_TimerListAdd: add timer obj c489c81c!
RTMP_TimerListAdd: add timer obj c488bf44!
RTMP_TimerListAdd: add timer obj c488bf78!
RTMP_TimerListAdd: add timer obj c489c8b4!
RTMP_TimerListAdd: add timer obj c489c7c4!
RTMP_TimerListAdd: add timer obj c489c884!
-->RTUSBVenderReset
<--RTUSBVenderReset
Key1Str is Invalid key length(0) or Type(0)
Key2Str is Invalid key length(0) or Type(0)
Key3Str is Invalid key length(0) or Type(0)
Key4Str is Invalid key length(0) or Type(0)
1. Phy Mode = 5
2. Phy Mode = 5
NVM is Efuse and its size =2d[2d0-2fc]
phy mode> Error! The chip does not support 5G band 5!
RTMPSetPhyMode: channel is out of range, use first channel=1
(Efuse for 3062/3562/3572) Size=0x2d [2d0-2fc]
3. Phy Mode = 9
MCS Set = ff 00 00 00 01
<==== rt28xx_init, Status=0
0x1300 = 00064300

運行結果,預設的RT2870STA.DAT檔案設定的一些問題。修改檔案即可。

 4. 建立檔案夾 /etc/Wireless/RT2870STA/ ,複製RT2870STA.DAT檔案到該檔案夾中。

總結,RT3070無線網卡的編譯折磨了我一整天,收穫還是很大的。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.