Ralink RT3070 AP移植笔记

时间:2021-12-09 20:38:53

使用RT3070_SoftAP驱动(好像Rklink公司网站没有了。。。现在网上很难找到)

处理器:AT91SAM9G20

内核版本:Linux2.6.30

1.修改驱动包里面三个文件(MODULE、NETIF、UTIL)的Makefile:

指定使用平台(PLATFORM = SMDK),修改对应的平台配置(LINUX_SRC = 处理器使用的内核地址,CROSS_COMPILE=编译工具地址)

看网上说需要修改驱动根目录下面的config.mk文件,修改大小端模式(此处没有修改可以正常使用)

另外需要修改的地方

NETIF/os/linux/usb_main_dev.c中添加MODULE_LICENSE("GPL");
MODULE/common/rtmp_init.c中的MODULE_LICENSE("RALINK");改为MODULE_LICENSE("GPL");


2.修改处理器运行内核配置:

Device Driver->Network device support->Wireless LAN->Ralink driver support

网上说需要选上,经测试,不需要,这只是内核自带的Ralink rt2500等驱动。

Device Driver->Network device support->Wireless LAN->IEEE 802.11 for Host AP

需要选上,让内核支持AP模式,如果不选RT3070只能工作在无密码工作状态,可ping通,但不能使用WAP、WAP2等的加密功能。

Ralink RT3070 AP移植笔记

移植RT3070作为AP需要修改的地方完成。


3.把编译好的RT3070驱动文件中MODULE、NETIF、UTIL里面的驱动文件复制到文件系统。(rtutil3070ap.ko、rt3070ap.ko、rtnet3070ap.ko )

由于RT3070驱动默认加载网络配置文件的地址已经写定,所以在文件系统中需要自己建立路径并把网络配置文件存在此路径,不然驱动找不到配置文件会报错。

路径:/etc/Wireless/RT2870AP/RT2870AP.dat

配置文件:RT2870AP.dat

RT2870AP.dat原地址在RT3070驱动中的MODULE文件中。

参照README_STA_usb文件(找不到SoftAP使用文件就使用STA模式中的文件。。。)配置wifi密码:

@> AuthMode=value
value
OPEN For open system
SHARED   For shared key system
WEPAUTO     Auto switch between OPEN and SHARED
WPAPSK      For WPA pre-shared key  (Infra)
WPA2PSK     For WPA2 pre-shared key (Infra)
WPANONE For WPA pre-shared key  (Adhoc)
WPA         Use WPA-Supplicant
WPA2        Use WPA-Supplicant

@> EncrypType=value
value
NONE For AuthMode=OPEN                    
WEP For AuthMode=OPEN or AuthMode=SHARED 
TKIP For AuthMode=WPAPSK or WPA2PSK                    
AES For AuthMode=WPAPSK or WPA2PSK

@> WPAPSK=value              
value
8~63 ASCII   or 
64 HEX characters

修改:RT2870AP.dat文件:

AuthMode=WPA2PSK

EncrypType=TKIP

WPAPSK=1234567890


4.加载驱动需要按照顺序加载,不然会报错:

# insmod rtutil3070ap.ko 
# insmod rt3070ap.ko 
# insmod rtnet3070ap.ko 

加载完成后提示信息如下:

rtusb init --->

=== pAd = c4966000, size = 416616 ===

<-- RTMPAllocAdapterBlock, Status=0
ra0 (): not using net_device_ops yet
usbcore: registered new interface driver rt2870


使用ifconfig -a 可以看见ra0网络设备存在,但它还没有IP,网关等配置。

使用ifconfig ra0 “IP地址”就可以配置网络,这里配置192.168.2.1,作为网关地址。

配置成功后提示:

<-- RTMPAllocTxRxRingMemory, Status=0
-->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 = 9
2. Phy Mode = 9
NVM is Efuse and its size =2d[2d0-2fc] 
3. Phy Mode = 9
MCS Set = ff 00 00 00 01
SYNC - BBP R4 to 20MHz.l
SYNC - BBP R4 to 20MHz.l
SYNC - BBP R4 to 20MHz.l
SYNC - BBP R4 to 20MHz.l
SYNC - BBP R4 to 20MHz.l
SYNC - BBP R4 to 20MHz.l
SYNC - BBP R4 to 20MHz.l
SYNC - BBP R4 to 20MHz.l
Main bssid = 00:e0:4c:d9:79:f2
<==== rt28xx_init, Status=0
0x1300 = 00064320


接下来就可以使用AP了。


PS:开发板有两个网卡,加上wifi就有三个接入端,在使用RT3070的使用需要主要网络配置问题,此处还没有一直DHCPD所以在需要连接到此AP的设备上面需要手动设置IP地址为ra0网段的地址

ra0:192.168.2.1

接入设备:192.168.2.2