USB无线网卡STA模式移植到A9

本文介绍将360 wifi2代无线网卡移植到Tiny4412开发板的过程,包括开发环境配置、驱动下载与修改、编译及安装步骤。针对移植过程中出现的问题提供了具体解决方案。

一、开发环境

宿主机:redhat5.3

交叉编译器:arm-linux-gcc (4.5.1)

目标:tiny4412开发板 linux内核:3.5.0

无线网卡型号:360 wifi2代

:360 wifi2代所用的网卡芯片为 Ralink的解决方案,芯片型号为MT7601(可以上网查),在无线网卡的使用中有二种方式:一种直接使用360自带的软件来直接安装驱动。一种是使用其对应的芯片方案驱动。对应咱们只能使用对应的芯片方案来驱动无线网卡。

可以参考下面博客:

http://blog.163.com/gl_jiang@126/blog/static/7610097220144145340238/

二、下载相对应方案的无线网卡驱动

进入http://www.mediatek.com/en/downloads/下载MT7601的驱动或者同一系列的驱动,下载下来的包为:DPO_MT7601U_LinuxSTA_3.0.0.4_20130913.tar.bz2

三、解压并且修改与编译

1、解压


2、修改Makefile,让其支持arm体系

2.1、默认的编译平台为x86的cpu,在Makefile的30行可以看到


2.2、由于需要的平台为arm体系


3、修改交叉编译器与源码树路径

由于接下来是把其驱动编译成模块,因此需要设置内核源码树所在的路径,以及相对的交叉编译器。

把下面

改为

4、修改支持360 wifi2代的usb设备id

4.1、首先在没有接入360wifi的redhat上查看usb设备

 

4.2、接入360wifi后再次查看usb设备

 

从上面可以看出360 wifi2代的usb设备id分别为148f:760b

4.3、修改源码使其支持其id

 

在其文件中可以找到下面代码:

 

修改添加360 wifi2代ID:


5、修改头文去除调试信息

 


6、编译

# make

7、拷贝到arm开发板文件系统

编译成功后会在os/linux目录下产生mt7601Usta.ko 文件,将其拷贝到开发板的文件系统或者nfs系统

在开发板上创建/etc/Wireless/RT2870STA目录

# mkdir /etc/Wireless/RT2870STA -p

把编译好的源码中的.ko和RT2870STA.dat拷贝到开发板根文件系统

# cp os/linux/mt7601Usta.ko /work/system/zxl4412_root

# cp RT2870STA.dat /work/system/zxl4412_root/etc/Wireless/RT2870STA

1、安装360 wifi驱动

# insmod mt7601Usta.ko (加载的过程有点慢,耐心等待下)

安装完毕后插入360 wifi到开发板上,下面是开发板打印的信息:

 

在开发板打印的信息中有下面的错误:

[   81.805000] ERROR!!! Failed to allocate memory - TxRxRing

2、驱动加载错误解决

需要设置DMA缓冲区的大小,在u-boot参数设置即可,在bootargs添加coherent_pool=2M。如:


重新加载后正确的信息:


至此,360 wifi2代移植成功。接下来就是如何使用360 wifi2了







### 通过硬件和驱动确认是否支持监听模式 USB无线网卡是否支持监听模式,主要取决于其使用的芯片组以及在操作系统中的驱动支持。某些芯片组(如Ralink RT3070、Atheros AR9271)在Linux系统下具有良好的兼容性,并广泛用于监听模式的数据包捕获[^1]。 #### 使用`lsusb`命令查看设备信息 插入USB无线网卡后,使用以下命令查看设备的详细信息: ```bash lsusb ``` 该命令会列出所有连接的USB设备及其厂商ID和产品ID。例如输出中可能会出现类似如下内容: ``` Bus 001 Device 004: ID 148f:3070 Ralink Technology, Corp. RT3070 Wireless Adapter ``` 其中`148f:3070`是设备的厂商ID和产品ID,可以用来判断是否为支持监听模式的芯片组型号。 #### 检查驱动支持情况 使用以下命令查看当前加载的驱动模块: ```bash lsmod | grep <driver_name> ``` 例如对于Ralink RT3070芯片组,驱动通常为`rt2800usb`或`rt3070sta`等。如果驱动未正确加载,可能需要手动安装或配置相关驱动文件。 #### 利用`airmon-ng`检测设备兼容性 Aircrack-ng工具集中的`airmon-ng`脚本可以自动检测系统中可用的无线网卡并显示其是否支持监听模式。运行以下命令: ```bash sudo airmon-ng ``` 如果设备出现在列表中,并且状态为“phy0”或其他编号,说明该无线网卡已被识别并可能支持监听模式。接着可尝试执行: ```bash sudo airmon-ng start wlan0 ``` 若成功切换至监听模式,则表明该网卡具备相应功能;否则可能是驱动或芯片组不兼容所致[^2]。 #### 在Windows系统下的表现 部分USB无线网卡在Windows系统中能够正常进入监听模式,但在Linux环境下却无法识别无线网络或启用监听功能。例如,`zd1211rw`和`rt2800usb`芯片组的设备在Fedora 31中曾出现过此类问题,尽管它们可以在Windows 10上正常工作。这通常与Linux内核对该设备的支持程度有关。 --- ### 总结判断方法 - **芯片组型号**:通过`lsusb`获取设备型号,比对已知支持监听模式的芯片组列表。 - **驱动加载情况**:检查是否加载了正确的无线网卡驱动。 - **Aircrack-ng兼容性测试**:使用`airmon-ng`命令验证设备是否能切换到监听模式- **跨平台对比测试**:在Windows系统中测试监听模式功能,有助于排除硬件本身问题。 ---
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值