我用的wifi是tenda W311MI 150m无线usb网卡 内核版本2.6.37 架构cortex A8
首先去tenda官网下载驱动
移植过程:
1修改内核配置选项
makeclean
makemenuconfig
Gointothefollowingmenu(s):
DeviceDrivers->GenericDriverOptions
Select"*"Userspacefirmwareloadingsupport
(/sbin/mdev)pathtoueventhelper
NetworkingSupport->Wireless
Select"*"cfg80211
Select"*"nl80211testmodecommand
Select"*"enabledeveloperwarnings
Select"*"cfg80211regulatorydebugging
Select"*"enablepowersavebydefault
Select"*"cfg80211wirelessextensions
Select"*"Wirelessextensionssysfsfiles
Select"*"CommonroutinesforIEEE802.11drivers
Select"*"lib80211debuggingmessages
DeviceDrivers->NetworkDeviceSupport->WirelessLAN
Select"*"Ralinkdriversupport
Gointo"Ralinkdriversupport"
Select"*"Ralinkrt2500(USB)support
Select"*"Ralinkrt2501/rt73(USB)supportsupport
Select"*"Ralinkrt27xx/rt28xx/rt30xx(USB)support
Select"*"rt2800usb-Includesupportforrt33xxdevices
Select"*"rt2800usb-Includesupportforrt35xxdevices(EXPERIMEN
Select"*"rt2800usb-Includesupportforrt53xxdevices(EXPERIMEN
Select"*"rt2800usb-Includesupportforunknown(USB)devices
Select"*"Ralinkdebugoutput
Select"*"GenericIEEE802.11NetworkingStack(mac80211)
eviceDrivers->USBsupport->USBWirelessDeviceManagementsupport
Select"*"USBWirelessDeviceManagementsupport
2.重新编译内核
makeuImage
makemodules
makemodules_installINSTALL_MOD_PATH=/opt/modules_install
3 解压tendaW311MI.tar.gz压缩包
打开顶层Makefile
26PLATFORM=PC改为#PLATFORM=PC 注释掉
添加PLATFORM=DM8168
我在170添加以下
ifeq($(PLATFORM),DM8168)
LINUX_SRC=/opt/DM8168_DVRRDK_V03.00.00.00/ti_tools/linux_lsp/linux-psp-dvr-04.04.00.01/src/linux-04.04.00.01
CROSS_COMPILE=arm-none-linux-gnueabi-
endif
进入os/linux目录打开config.mk文件
189行CC:=$(CROSS_COMPILE)gcc改为arm-none-linux-gnueabi-gcc
190行LD:=$(CROSS_COMPILE)ld改为arm-none-linux-gnueabi-ld
不做修改则make的时候后面加上CROSS_COMPILE=arm-none-linux-gnueabi-即可
722行添加以下
ifeq($(PLATFORM),DM8168)
EXTRA_CFLAGS:=$(WFLAGS)-I$(RT28xx_DIR)/include
endif
57行HAS_WPA_SUPPLICANT=n改为HAS_WPA_SUPPLICANT=y
61行HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=n改为HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y
4makeARCH=arm
生成rt5370sta.ko模块便是成功了至于cp到/tftpboot这一步可以手工来操作
5移动到目标板上并加载
root@dvr:/a/wireless#insmodrt5370sta.ko
rt5370sta:modulelicense'unspecified'taintskernel.
Disablinglockdebuggingduetokerneltaint
rt5370sta:Unknownsymbolusb_alloc_urb(err0)
rt5370sta:Unknownsymbolusb_free_urb(err0)
rt5370sta:Unknownsymbolusb_alloc_coherent(err0)
rt5370sta:Unknownsymbolusb_register_driver(err0)
rt5370sta:Unknownsymbolusb_put_dev(err0)
rt5370sta:Unknownsymbolusb_get_dev(err0)
rt5370sta:Unknownsymbolusb_submit_urb(err0)
rt5370sta:Unknownsymbolusb_free_coherent(err0)
rt5370sta:Unknownsymbolusb_control_msg(err0)
rt5370sta:Unknownsymbolusb_deregister(err0)
rt5370sta:Unknownsymbolusb_kill_urb(err0)
insmod:errorinserting'rt5370sta.ko':-1Unknownsymbolinmodule
这是模块没有声明lisence
在os/linux下的usb_main_dev.c的35行添加MODULE_LICENSE("GPL");
6tools目录下有个工具修改下Makefile中gcc改为arm-none-linux-gnueabi-gcc便可用
7复制wifi配置文件
cpRT2870STA.dat/etc/Wireless/RT2870STA/RT2870STA.dat
设置上网可以打开RT2870STA.dat文件
我主要设置了这三项无线wpapsk加密上网设置
SSID=无线路由的名字
AuthMode=open(不需密码) 、AuthMode=WPAPSK
WPAPSK="密码"
8启动无线网卡用
ifconfigra0inet192.168.0.165up //ip根据个人喜好
9交叉编译wireless_tools.29
网上下载wireless_tools.29.tar.gz
修改Makefile
12行改为CC=arm-none-linux-gnueabi-gcc
14行改为AR=arm-none-linux-gnueabi-ar
make生成
ifrename
iwconfig
iwevent
iwgetid
iwlist
iwpriv
iwspy
libiw.so.29 挪到目标板的/usr/lib里面
15 网络的测试看鸟哥的私房菜服务器篇里面讲的很好