环境:ubuntu1~14.04.3
编译器:arm-none-linux-gnueabi-gcc-4.8.3
注:此文在CUIT詹老师笔记基础修改而来
无线网卡为RT3070,驱动分为STA驱动和SoftAP驱动两种,STA驱动支持无线网卡工作在STA模式下,而SoftAP的驱动支持无线网卡工作在软AP的模式下,可以作为一个软的接入点。(成为一个wifi热点)
STA驱动为Linux_android_V2.5.0.2_DPO。
SoftAP的驱动是:2010_0203_RT3070_SoftAP_v2.4.0.1_DPA。
下载:链接:
http://pan.baidu.com/s/1mhK2THQ 密码:090y
1.修改驱动包里面三个文件夹(MODULE、NETIF、UTIL)里的Makefile:
a.指定器件3070
line 5 : CHIPSET = 3070
b.平台配置(PLATFORM = SMDK),
LINUX_SRC = 处理器使用的内核地址,
CROSS_COMPILE=编译工具地址
2。源代码修改
a.NETIF/os/linux/usb_main_dev.c 中添加MODULE_LICENSE(“GPL”);
b.MODULE/common/rtmp_init.c中的MODULE_LICENSE(“RALINK”);改为MODULE_LICENSE(“GPL”);
c./UTIL/os/linux/../../os/linux/rt_linux.c:991:20:
d. 修改 /UTIL/os/linux/../../os/linux/rt_usb_util.c:126:2
修改完毕。
3。内核修改
修改内核DMA_COHERENT_POOL_SIZE 大小
/arch/arm/mm/dma-mapping.c
arly_param(“coherent_pool”, early_coherent_pool);
define DEFAULT_DMA_COHERENT_POOL_SIZE SZ_150K 将SZ_150K改为SZ_2M
4。内核配置
修改处理器运行内核配置:make menuconfig
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等的加密功能。
5。把编译好的RT3070驱动文件中MODULE、NETIF、UTIL里面的驱动文件复制到文件系统。(rtutil3070ap.ko、rt3070ap.ko、rtnet3070ap.ko )
原路径
/MODULE/os/linux/rt3070ap.ko
/ NETIF /os/linux/rtnet3070ap.ko
/UTIL/os/linux/rtutil3070ap.ko
由于RT3070驱动默认加载网络配置文件的地址已经写定,所以在文件系统中需要自己建立路径并把网络配置文件存在此路径,不然驱动找不到配置文件会报错。
都放在开发板的/lib/modules下
cp -f /apan/rt3070ap.ko /lib/modules/
cp -f /apan/rtnet3070ap.ko /lib/modules/
cp -f /apan/rtutil3070ap.ko /lib/modules/
配置文件:RT2870AP.dat
RT2870AP.dat原地址在RT3070驱动中的MODULE文件中。
放在开发板的路径:/etc/Wireless/RT2870AP/RT2870AP.dat
配置wifi密码:
修改:RT2870AP.dat文件:
AuthMode=WPA2PSK
EncrypType=TKIP
WPAPSK=1234567890
mkdir /etc/Wireless
mkdir /etc/Wireless/RT2870AP
cp -f /apan/RT2870AP.dat /etc/Wireless/RT2870AP/
加载驱动需要按照顺序加载,不然会报错:
cd /lib/modules/
insmod rtutil3070ap.ko
insmod rt3070ap.ko
insmod rtnet3070ap.ko
6。启用网络
ifconfig -a
ifconfig ra0 up
ifconfig ra0 192.168.7.1