文档库

最新最全的文档下载
当前位置:文档库 > S3C6410 无线网卡移植 VT5565和ZyDAS

S3C6410 无线网卡移植 VT5565和ZyDAS

VT5565型号无限网卡移植

基于2.6.38内核

1下载驱动代码

从http://www.wendangku.net/doc/f2d2d7ea0975f46527d3e14b.html/Driver/VT6656_linux_src_v1.20.03_x86.rar 下载VNT6656驱动源代码并解压缩.(在Linux下你需要安装"unrar");

2修改配置文件drivers/main_usb.c

在drivers/main_usb.c中加入头文件(139行附近)(在下载的代码内部)

//============yaoyafei===================

#include

//=====================================

替换如下代码,注释掉的被替换为黄色背景的(2067行附近):

static void device_set_multi(struct net_device *dev) {

PSDevice pDevice = (PSDevice)VNT_NETDEV_GET_PRIV(dev);

PSMgmtObject pMgmt = &(pDevice->sMgmtObj);

u32 mc_filter[2];

int ii;

//===================yaoyafei==========

// struct dev_mc_list *mclist;

struct netdev_hw_addr *ha;

//=================================

替换如下代码,注释掉的被替换为黄色背景的(2088行附近):

if (dev->flags & IFF_PROMISC) { // Set promiscuous.

DBG_PRT(MSG_LEVEL_ERR,KERN_NOTICE "%s: Promiscuous mode enabled.\n", dev->name);

// Unconditionally log net taps.

pDevice->byRxMode |= (RCR_MULTICAST|RCR_BROADCAST|RCR_UNICAST);

}

//================== yaoyafei ======================

// else if ((dev->mc_count > pDevice->multicast_limit) || (dev->flags & IFF_ALLMULTI))

{

else if ((netdev_mc_count(dev) > pDevice->multicast_limit) || (dev->flags &

IFF_ALLMULTI)) {

//===============================

注释掉如下代码(灰色背景部分),替换为黄色背景部分(2095行附近):

CONTROLnsRequestOut(pDevice,

MESSAGE_TYPE_WRITE,

MAC_REG_MAR0,

MESSAGE_REQUEST_MACREG,

8,

pbyData

);

pDevice->byRxMode |= (RCR_MULTICAST|RCR_BROADCAST);

}

else {

memset(mc_filter, 0, sizeof(mc_filter));

//=============== yaoyafei =============================

/*

for (ii = 0, mclist = dev->mc_list; mclist && ii < dev->mc_count;

ii++, mclist = mclist->next) {

int bit_nr = ether_crc(ETH_ALEN, mclist->dmi_addr) >> 26;

mc_filter[bit_nr >> 5] |= cpu_to_le32(1 << (bit_nr & 31));

}

*/

netdev_for_each_mc_addr(ha, dev) {

int bit_nr = ether_crc(ETH_ALEN, ha->addr) >> 26;

mc_filter[bit_nr >> 5] |= cpu_to_le32(1 << (bit_nr & 31));

}

//===================================================

3配置菜单项

[*] Networking support --->

-*- Wireless --->

S3C6410 无线网卡移植 VT5565和ZyDAS

Device Drivers --->

[*] Network device support --->

[*] Wireless LAN --->

<*> IEEE 802.11 for Host AP (Prism2/2.5/3 and WEP/TKIP/CCMP)

4.编译

#make -C /path/to/source/of/linux-2.6.32.2 M=`pwd` modules

LD [M] /root/mywork/linux-2.6.38-nfs/VT6656_linux_src_v1.20.03_x86/driver/vntwusb.ko make: Leaving directory `/root/mywork/linux-2.6.38-nfs'

出现上面情况编译成功后,最终将生成驱动内核模块vntwusb.ko

5.开发板测试

S3C6410 无线网卡移植 VT5565和ZyDAS

6使用驱动模块

6.1将vntwusb.ko下载至开发板上;

S3C6410 无线网卡移植 VT5565和ZyDAS

6.3 加载vntwusb.ko驱动模块

#insmod /path/to/vntwusb.ko //左边的驱动模块的目录根据实际调整!

S3C6410 无线网卡移植 VT5565和ZyDAS

网卡),用ifconfig命令将其设为UP状态:

S3C6410 无线网卡移植 VT5565和ZyDAS

S3C6410 无线网卡移植 VT5565和ZyDAS

S3C6410 无线网卡移植 VT5565和ZyDAS

要正常使用无线网卡,还要正确配置。linux下的配置工具是wireless-tools。有个很好用的配置工具(wireless tool),可以方便配置无线网卡。

7.1下载wire-tool工具

下载地址是:http://www.wendangku.net/doc/f2d2d7ea0975f46527d3e14b.html/personal/Jean_Tourrilhes/Linux/Tools.html(在下方找)。

7.2编译工具

下载后,将源代码解压。再修改其中的Makefile文件,将其中的CC、AR和RANLIB 进行修改:

#vi Makefile

CC = gcc

AR = ar

RANLIB = ranlib

改为

CC = arm-linux-gcc

AR = arm-linux-ar

RANLIB = arm-linux-ranlib

再执行

#make

7.3 下载wire-tool到开发板

编译完成后,将生成的iwconfig,iwlist文件拷贝到mini2440的根文件系统中的/bin 目录下,将libiw.so.29拷贝到mini2440根文件系统下的/lib目录下。

7.4启动无线网卡

启动mini2440开发板,进入linux命令行后,执行:

#ifconfig eth1 up //也可能是wlan0

7.5 搜索无线网路

启动无线网卡。再执行

#iwlist scanning

我的无线路由器ESSID是"TP-LINK",执行此命令后就会下列输出:

7.7设置ESSID

用如下命令设置要连接的ESSID

#iwconfig wlan0 essid " TP-LINK_PocketAP_FE65A8" //根据需要

修改ESSID

S3C6410 无线网卡移植 VT5565和ZyDAS

#iwconfig eth1 ap auto

7.9查看连接状态

# iwconfig eth1

7.10为无线网卡设置IP地址

#ifconfig eth1 192.168.1.130 netmask 255.255.255.0

7.12测试网络是否连通

#ping 192.168.1.1

我的返回如下结果,可见无线网已经连通,而且很稳定。但我发现无线网卡很热,也许是网卡不好吧。

4 packets transmitted, 4 packets received, 0% packet loss

出现的问题ping 不通

round-trip min/avg/max = 3.166/7.773/21.447 ms

7.13无线联网的自动化

为了确保开发板系统启动无线网络就联通,可以建立一个脚本文件/etc/wireless.sh,内容如下:

#!/bin/sh

echo "Install wireless model ….."

insmod /lib/modules/vntwusb.ko #要提前将无线网模块文件复

制好

ifconfig eth1 up

echo "wireless up ….."

#iwconfig eth1 key 123456 #根据需要设置

iwconfig eth1 essid " TP-LINK_PocketAP_FE65A8" #根据需要

iwconfig eth1 ap auto

ifconfig eth1 192.168.1.130 netmask 255.255.255.0

echo "wireless Linked ….."

注意修改其权限使之可以执行。

ZyDAS 型号无线网卡移植

1.配置菜单选项

Device Drivers --->

[*] Network device support --->

[*] Wireless LAN --->

S3C6410 无线网卡移植 VT5565和ZyDAS

[*] Networking support ---> -*- Wireless --->

S3C6410 无线网卡移植 VT5565和ZyDAS

2.编译

#make

3.下载测试

S3C6410 无线网卡移植 VT5565和ZyDAS

启动无线网卡。再执行#iwlist scanning

S3C6410 无线网卡移植 VT5565和ZyDAS

S3C6410 无线网卡移植 VT5565和ZyDAS

S3C6410 无线网卡移植 VT5565和ZyDAS