RT3070移植到Smart210平台,这个东西搞了挺久的,总结一下。
一、平台
开发板:smart210
无线网卡:RT3070 USB
主机:redhat6
Linux内核:linux-2.6.39
编译器:arm-linux-gcc-4.3.2
WIFI源码:2010_0203_RT3070_SoftAP_v2.4.0.1_DPA.bz2 点击打开链接 下载
二、配置linux内核、编译、烧写内核
(1)、配置内核
#pwd
#/home/S5-drive/core3/lesson2/linux-smart210/
#make menuconfig
DEVICE Drivers>
Network devicesupport>
<>Ralinkdriver support //去掉不要
(2)、编译内核
make
(3)、烧写内核到开发板
#cp/arch/arm/boot/uImage tftpboot –rf
开发板:#tftp0x20000000 uImage
#bootm0x20000000
三、修改配置无线网卡驱动源码
(1)、解压
#pwd
#/home/project/wireless
#tar jxvf2010_0203_RT3070_SoftAP_v2.4.0.1_DPA.bz2
#mv 2010_0203_RT3070_SoftAP_v2.4.0.1_DPArt3070softap
#cd rt3070softap
(2)、修改Makefile
注意这三个文件夹都有相应的Makefile文件,都要做修改
注意这个参数保证是:CHIPSET = 3070
源码默认平台是PC,所以要将PLATFORM = PC注释掉,把PLATFORM = SMDK的注释去掉。
根据自己的linux源码路径来修改LINUX_SRC,根据自己的路径以及自己的交叉编译器的版本号修改CROSS_COMPILE
网上很多的教成都说要修改MODULE、NETIF、UTIL下Kconfig。但是我这次没有修改也编译成功了。
另外还要修改:
NETIF/os/linux/usb_main_dev.c中添加MODULE_LICENSE("GPL");
MODULE/common/rtmp_init.c
中的MODULE_LICENSE("RALINK");改为MODULE_LICENSE("GPL");
(3)、编译
#make ARCH=armKBUILD_NOPEDANTIC=1
但是编译并没有那么顺利,出现了如下的错误:
修改UTIL/os/linux/rt_usb_util.c
因为linux-2.6.39内核没有”usb_buffer_alloc”和”usb_buffer_free”这两个函数,所以提示以上的错误。所以对以上的两个函数修改:
在NETIF/os/linux/usb_main_dev.c下添加以下三行代码
再次编译
#make ARCH=armKBUILD_NOPEDANTIC=1
编译完之后,产生如下文件:
MODULE/os/linux/rt3070ap.ko
NETIF/os/linux/rtnet3070ap.ko
UTIL/os/linux/rtutil3070ap.ko
四、安装驱动
(1)、将rt3070ap.ko、rtnet3070ap.ko、 rtutil3070ap.ko三个驱动拷贝到开发板的根文件系统的/lib/modules/目录下
#cp rt3070ap.ko /lib/modules
#cp rtnet3070ap.ko /lib/modules
#cprtutil3070ap.ko /lib/modules
#pwd
#/home/S5-driver/core3/lesson3/rootfs/etc/
#mkdir Wireless/RT3070AP
#chmod 777 –R Wireless/RT3070AP
#cp RT3070AP.dat Wireless/RT3070AP
(2)、开发板安装驱动
#cd /lib/modules
按顺序加载
#insmodrtutil3070ap.ko
#insmodrt3070ap.ko
#insmodrtnet3070ap.ko
如果不允许加载,用lsmod查看目前存在的模块
(3)、插入模块中断打印信息如下:
(4)、查看网卡
(5)、启动路由功能并设置IP(注意不要跟有线网卡有冲突)
又出错误了!显示信息说是无法打开/etc/Wireless/RT3070AP/RT2870ap.dat这个文件
查看这个文件夹,发现拷贝的媒体文件RT2870ap.dat此文件为建立AP的配置文件,如果需要,可以修改一下)拷贝成RT2870STA.dat去了。修改回去然后就行了。
至此,一个默认的名为RT2860AP的网络就建立起来了,相关参数的修改可在RT2860AP.dat文件中完成,只要手机和电脑设置静态IP(同一网段)就可以连上网络了
手机搜索到AP
!!!
参考博客:http://www.cnblogs.com/klcf0220/p/3243619.html
http://bbs.elecfans.com/jishu_571189_1_1.html