VT6656 driver for linux
1. download driverwget
2. unzip && copy directory driver/* and include/ to $KSRC/driver/usb/net/vt6656/3. prepare for make menuconfigedit $KSRC/driver/usb/net/Kconfig------------------------------------
config USB_VT6656
tristate "USB VT6656 based Wireless device support"
depends on USB && NET
default y
help
Say Y if you want to use wireless LAN adapters based on the
VT6656 chip.
To compile this driver as a module, choose M here: the
module will be called vt6656.
------------------------------------
edit $KSRC/driver/usb/net/Makefile------------------------------------
obj-$(CONFIG_USB_VT6656) += VT6656/
------------------------------------
edit $KSRC/driver/usb/Makefile [ !! important !!]------------------------------------
obj-$(CONFIG_USB_VT6656) += net/
------------------------------------
edit $KSRC/driver/usb/net/VT6656/Makefile [ !! important !!]------------------------------------
obj-$(CONFIG_USB_VT6656) += vntwusb.o
------------------------------------
4. make menuconfig ------------------------------------
Device Drivers --->
USB support --->
USB Network Adapters --->
<*> USB VT6656 based Wireless device support
------------------------------------
5. make uImage
无线网卡驱动RT73的移植
1.下载最新版的RT73无线网卡驱动:
# wget [url=][/url]
解压:# tar zxvf rt73-cvs-daily.tar.gz
2.在内核中创建新文件夹drivers/usb/net/rt73,
# mkdir drivers/usb/net/rt73
将解压出来的文件夹Module下的文件拷贝到刚才新建的rt73文件夹中:
# cp rt73-(time)/Module/* /home/oem/trunk/cirrus-1-0-0-4/linux-2.6.8.1/drivers/usb/net/rt73
3.修改扬创板内核源代码,加入RT73驱动的配置信息,以使在make menuconfig 中能添加RT73驱动的选项。
?修改drivers/usb/net/Kconfig文件,加入RT73的驱动模块的配置项:
# gedit drivers/usb/net/Kconfig
加入以下内容:
config RT73
tristate “support for rt73 wireless usb device”
depends on USB && NET && USB_USBNET
?修改drivers/usb/net/Makefile, 加入rt73的编译项:
# gedit drivers/usb/net/Makefile
添加一下内容:
obj-$(CONFIG_RT73)+= rt73/
4.修改RT73的Makefile,设置内核位置和编译选项:
?删除以前的modules选项,并将arm编译项改成modules,这样编译的时候才是for ARM版本的驱动模块;
?修改KERNDIR为Qwerk内核位置:
KERNDIR=/扬创/linux-2.6.11
5.配置内核:
?将Qwerk默认配置拷贝到内核根目录下:
# cp ../edb9302/linux.config .config
?用make menuconfig界面配置编译选项,选上RT73无线网卡编译选项:
在USB devices à network à support for rt73 wireless usb device,按空格键选为M,将其编译成模块。
6.编译内核模块:
# make modules
成功编译后,会在drivers/usb/net/rt73目录下生成rt73.ko驱动文件,将其拷贝到FTP目录下,以便于下载到Qwerk板上:
# cp drivers/usb/net/rt73/rt73.ko /home/ftp/
7.下载rt73驱动到扬创上,并修改一些脚本文件使其开机加载驱动并启用网卡:
假设扬创板已经可以启动起来从minicom命令行操作:
# cd /opt/driver/
# wget [url=ftp://192.168.1.201/rt73.ko]ftp://192.168.1.201/rt73.ko[/url]
编写开机加载rt73.ko驱动、启用网卡脚本,将其放入/opt/scripts/目录下:
# cd ../scripts/
# vi wifi-up
加入如下内容:
(去公司后Copy到这儿)
修改/opt/scripts/robot.init脚本文件,在最后添加wifi-up脚本:
# vi robot.init
加入:
/opt/scripts/wifi-up
保存推出。
8.至此为止,无线网卡驱动移植和配置工作已经完成,重启扬创,无线网卡就能工作了。
说明:
1.如果按照modules编译的rt73.ko不能工作的话,可以选用armdebug编译。
[转载]TL-WN321G (rt73)USB无线网卡驱动在armlinux平台上的移植http://hi.baidu.com/aokikyon/blog/item/ee1672107f28f3f4c3ce7984.html
TL-WN321G (rt73)USB无线网卡驱动在armlinux平台上的移植
张驿风
2007年8月20日
最近想搞一个无线的网络收音机玩玩,有现成的at91sam9261ek板子,linux操作系统是2.6.20,mplayer前几天已经成功移植到该平台,使用网线连接播放电台已经ok。
去科技京城赛格4楼转了一圈询问商家usb类型的无限网卡,好象仅有的几个有usb无线网卡的商户卖的都是TL-WN321G或者是TL-WN322G类型的。呵呵其实我还不知道上海卖这些电脑周边配件的集散地
在哪里?因为比较熟悉赛格。 网上找了一圈算是还有收获,TL-WN321G使用的是rt73芯片,还好有rt73的开源linux驱动。
1 .从 下载:rt73 (USB)代码。
2 . 解压到内核源代码的drivers/usb/net/rt73目录下。
3 .删除其Makefile文件。重新编写Makefile如下:
CROSS-COMPILE = arm-linux-
CC=$(CROSS-COMPILE)gcc
obj-$(CONFIG_RT73) +=rt73.o
rt73-objs := rtmp_main.o mlme.o connect.o rtusb_bulk.o rtusb_io.o \
sync.o assoc.o auth.o auth_rsp.o rtusb_data.o \
rtmp_init.o sanity.o rtmp_wep.o rtmp_info.o \
rtmp_tkip.o wpa.o md5.o
KDIR := /home/at91sam9261ek/linux-2.6.20
PWD := $(shell pwd)
default:
$(MAKE) -C $(KDIR) M=$(PWD) modules
clean:
rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions *.symvers test
install:
scp rt73.ko 192.168.2.46:/home/nfs/usr
4. 修改drivers/usb/net/Kconfig 加入下面的项:
config RT73
tristate "support rt73 wireless usb network device"
depends on USB && NET && USB_USBNET
5. 修改drivers/usb/net/Makefile 加入下面的项:
obj-$(CONFIG_RT73) += rt73/
6. 重新配置内核选中rt73设备。
make menuconfig
7. 编译:
如果选中为M 使用 make modules 编译rt73.ko 运行时候手工加载。
如果选中为* 使用make uImage 直接把rt73设备编译到内核去。
8. 插入TL-WN321G+
提示找不到rt73.bin ,应该是fireware加载有问题,可 是我一直没有处理掉,后来突然发现
已经把rt73.bin文件
转换为C语言数组存放在rtmp_init.c文件里,不需要使用hotplug事件去加载rt73.bin了。于是
决定使用RT73_Linux_STA_Drv1.0.4.0.tar.gz 代码。
9. 下载RT73_Linux_STA_Drv1.0.4.0.tar.gz 。
10. 修改makefile 适合编译到arm linux2.6.20上。
代码原来的makefile没有考虑到arm上的移植不是很适合交叉编译的,我的makefile修改后如下:
######################################################################
# Module Name: Makefile
# Abstract: Makefile for rt73 linux driver on kernel series 2.6
######################################################################
WFLAGS := -Wall -Wstrict-prototypes -Wno-trigraphs
CFLAGS += $(WFLAGS)
obj-m := rt73.o
rt73-objs := rtmp_main.o mlme.o connect.o rtusb_bulk.o rtusb_io.o sync.o assoc.o auth.o auth_rsp.o rtusb_data.o rtmp_init.o sanity.o rtmp_wep.o rtmp_info.o rtmp_tkip.o wpa.o md5.o
ND_CONF=/etc/sysconfig/network-scripts/ifcfg-rausb0
ifdef NDDIR
NDDIR := $(NDDIR)
else
NDDIR := /etc/sysconfig/network-scripts
endif
ifdef MOD_CONF
MOD_CONF := $(MOD_CONF)
else
MOD_CONF := /etc/modprobe.conf
endif
KDIR := /home/at91sam9261ek/linux-2.6.20
all:
# make -C $(KDIR) SUBDIRS=$(shell pwd) modules
make -C $(KDIR) 'EXTRA_CFLAGS=-DRTMP_EMBEDDED -I.' SUBDIRS=$(shell pwd) modules
clean:
rm -rf *.o *~ .*.cmd *.ko *.mod.c .tmp_versions built-in.o
install:
make -C /lib/modules/$(shell uname -r)/build \
INSTALL_MOD_DIR=extra SUBDIRS=$(shell pwd) \
modules_install
@echo "Network device directory $(NDDIR)";
@echo "Module configuration file $(MOD_CONF)";
@if [ -d "$(NDDIR)" ] ; then \
if [ ! -f "$(ND_CONF)" ]; then \
echo "Create 'ifcfg-rausb0' in $(NDDIR)/"; \
cp ifcfg-rausb0 $(NDDIR)/ ; \
fi; \
fi
@if ! grep -q 'rausb0' $(MOD_CONF) ; then \
echo "append 'alias rausb0 rt73' to $(MOD_CONF)"; \
echo "alias rausb0 rt73" >> $(MOD_CONF) ; \
fi
/sbin/depmod -a
11. 重新编译RT73_Linux_STA_Drv1.0.4.0.tar.gz 。
由于在Makefile gcc编译选项里加入 DRTMP_EMBEDDED 造成一个编译错误,要修改rtmp_init.c中
VOID RTMPMoveMemory( OUT PVOID pDest, IN PVOID pSrc, IN ULONG Length)
函数,修改后如下:
VOID RTMPMoveMemory(
OUT PVOID pDest,
IN PVOID pSrc,
IN ULONG Length)
{
#ifdef RTMP_EMBEDDED
if(Length <= 8){
unsigned char *dest,*src;
int i;
dest = pDest;
src = pSrc;
for(i=0;i
*(dest++) = *(src++);
}
}
else
memcpy(pDest, pSrc, Length);
#else
memcpy(pDest, pSrc, Length);
#endif
}
12. 加载rt73.ko.
insmod rt73.ko
ifconfig rausb0 up
udhcpc -i rausb0
可以从无线AP获取到ip地址ping 一下网关,scp一个文件都成功了。
13.总结:
看来其实移植这个usb无线网卡并不麻烦,网上有人说1.0.3版本的很难,移植好的代码 要收
费,现在看来1.0.4是很好移植的并不难。