arm linux 移植無線網絡卡RT3070驅動

2021-06-29 06:30:31 字數 3569 閱讀 5500

環境:

編譯環境:ubuntukylin 14.04

交叉編譯器:arm-linux-gcc 4.4.1

開發板核心:linux2.6 & 3.0.1及以上

無線模組:雷凌ralink - rt3070

一、核心版本:linux 3.0及以上

1、配置linux核心

1.1 進入linux核心目錄:$ make menuconfig

1.2 勾選 networking support --->wireless --->cfg80211 - wireless configuration api / generic ieee 802.11 networking stack (mac80211)

1.3 勾選 device drivers --->network device support --->wireless lan ---> ralink driver support ---> ralink rt27xx/rt28xx/rt30xx (usb) support

1.4 退出儲存配置

2、重新編譯核心

$ make clean

$ make

在目錄下生成新核心zimage

3、開發板重新燒錄

重新sd卡燒錄核心zimage到開發板

4、韌體rt2870.bin的拷貝

雷凌官網驅動包中的"/common/rt2870.bin"拷貝到開發板"/lib/firmware/"目錄下

5、無線和有線的連線除錯

有線連線:

1.$ ifconfig eth0 192.168.20.203

(設定ip位址)

2.$ ping 192.168.20.201          

(測試與pc機的連通)

無線連線:

1.$ ifconfig wlan0 up                         (開啟無線網絡卡)

2.$ iwlist wlan0 scan                         (搜尋無線網路)

3.$ iwconfig wlan0 essid "linux" key s:11223  (設定無線essid和密碼)

4.$ iwconfig

(檢視無線連線資訊)

5.$ ifconfig wlan0 192.168.20.209

(設定無線ip位址)

6.$ route add default gw 192.168.20.1

(配置路由表,新增網管)

7.$ ping 192.168.20.201

(測試與pc機的連通)

(此種無線連線命令只適合 wep加密方式 或 不加密)

6、shell指令碼命令

#!/bin/sh

ifconfig eth0 down

#iwlist wlan0 scan

iwconfig wlan0 essid "linux" key s:11223

ifconfig wlan0 up

ifconfig wlan0 192.168.20.209

route add default gw 192.168.20.1

udhcpc –i wlan0

#以上兩行可以使用此命令代替,自動獲取ip,分配路由表

ifconfig eth0 up

二、核心版本:linux2.6

1、驅動原始碼的交叉編譯

1.1 解壓原始碼包,修改makefile檔案

chipset = 3070

platform = smdk

ifeq ($(platform),smdk)

linux_src = /home/tango/code/linux-2.6.32.2

cross_compile = /opt/friendlyarm/toolschain/4.4.3/bin/arm-linux-

1.2 修改/os/linux/config.mk檔案

定義:chipset = 3070

cross_compile =/opt/friendlyarm/toolschain/4.4.3/bin/arm-linux-

修改:# support wpa_supplicant

has_wpa_supplicant=y

# support native wpasupplicant for network maganger

has_native_wpa_supplicant_support=y

1.3 $ make

生成/os/linux/rt3070sta.ko檔案

$ arm-linux-strip -s rt3070sta.ko (如果太大,去掉除錯資訊)

2、重新編譯核心

2.1 配置linux核心,進入linux核心目錄

$ make menuconfig

2.2 勾選 device drivers --->network device support --->wireless lan(non-hamradio) ---> wireless lan driver(non-hamradio)& wireless extensions

2.3 雙擊鍵盤「esc」鍵退出,儲存配置

2.4 編譯核心

$ make clean

$ make

在"./arch/arm/boot"目錄下生成新核心zimage

2.5、開發板重新燒寫核心

重新sd卡燒錄核心zimage到開發板(具體步驟見開發板手冊)

3、移植無線驅動到開發板

3.1 拷貝驅動到目標系統

把./rt2870sta.dat拷貝到開發板(/etc/wireless/rt2870sta)目錄下

把./os/linux/rt3070sta.ko拷貝到開發板(/***/)目錄下,***自定

把./common/rt2870.bin拷貝到開發板(lib/firmware)目錄下

3.2 載入驅動模組

$ insmod /***/rt3070sta.ko

4、無線模組配置

$ ifconfig ra0 192.168.20.225 netmask 255.255.255.0

$ iwlist ra0 scan

4.1 無密碼

iwpriv ra0 set networktype=infra

iwpriv ra0 set authmode=open

iwpriv ra0 set encryptype=none

iwpriv ra0 set ssid="ap's ssid"

4.2 wep加密演算法

iwpriv ra0 set networktype=infra

iwpriv ra0 set authmode=shared

iwpriv ra0 set encryptype=wep

iwpriv ra0 set defaultkeyid=1

iwpriv ra0 set key1="11223"

iwpriv ra0 set ssid="linux"

設定完一會,等網路連線好就可以了

(如果沒有iwpriv命令,把檔案中的iwpriv拷貝到開發板/bin/目錄下就可以了)

無線網絡卡速度

802.11b規範下所能達到的最大速度 11b技術不支援mimo,無法繫結通道,頻寬很低,目前已經淘汰,市面上很難買到此類網絡卡 72m 剛才樓上有朋友詢問一些基礎的內容,關於網絡卡的分類,那我總結一下說一些。無線技術其實比較複雜,往多了說,可以寫很多東西,不過那些不重要,對於普通使用者來說不實用,...

無線網絡卡模式

在開始嗅探無線資料報之前,我們需要了解無線網絡卡的不同工作模式。無線網絡卡一共有4種工作模式。被管理模式 managed mode 當你的無線客戶端直接與無線接入點 wireless access point,wap 連線時,就使用這個模式。在這個模式中,無線網絡卡的驅動程式依賴wap管理整個通訊過...

無線網絡卡驅動

driver r8169 version 2.3lk napi firmware version rtl8411 1 0.0.3 06 18 12 bus info 0000 04 00.2 supports statistics yes supports test no supports eepr...