博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
rt5370 无线网卡移植到内核为2.6.13的mini2440包括测试连接热点的全过程
阅读量:4280 次
发布时间:2019-05-27

本文共 3712 字,大约阅读时间需要 12 分钟。

 最近准备搞一套基于mini2440的摄像头监控无线传输给PC机的系统,首先先要把mini2440的无线网卡驱动装上,用时大约不到一周的时间。

一 先要找到无线网卡的驱动,我的无线网卡是雷凌的 芯片是rt5270 ,这个如果你不清楚芯片是什么,可以先插到PC机上,看看型号

可以看到ID是148f 5370 ralink 根据这个可以找到驱动  下载网址http://pan.baidu.com/s/1mgHr2PU

下载完之后解压,然后在解压目录里make  ,make install,最后可以通过modprobe或者insmod命令加载驱动,之后可以通过lsmod查看驱动已经加载上了。

二 需要把驱动移植到2440上,由于我的mini2440的驱动是kernel2.6.13的 里面没有无线模块所以需要自己添加,在2.6.32以后的版本好像已经有无线模块的驱动,貌似通用的网卡驱动都有,省了很大功夫。还是进入到解压目录里,首先修稿配置文件vim os/linux/config.mk

# Support Wpa_Supplicant

HAS_WPA_SUPPLICANT=y

# Support Native WpaSupplicant for NetworkMaganger

HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y
然后修改makefile:vim Makefile,将PLATFORM=PC 注释掉,将PLATFORM=SMDK的#号删除,就是把平台改成SMDK,然后将ifeq ($(PLATFORM),SMDK)下面的改成

LINUX_SRC = /linux-2.6.13/kernel-2.6.13
CROSS_COMPILE = /usr/local/arm/3.4.1/bin/arm-linux-
第一个是kernel2.6.13的解压位置,这个就是你2440板子里烧的内核,我的是http://pan.baidu.com/s/1jGFtGyy第二个是交叉编译的位置,经我测试,貌似只能用3.4.1的交叉编译环境,我最开始安装的是arm-linux-gcc 3.3.2和4.3.2 这两个比较通用,但是make的时候总是提示错误,显示缺少3.4.1的arm-linux-gcc,所以又只能装了个3.4.1。这样make clean,然后make,make install。这样就生成了可以在2440上运行的驱动,然后在当前目录下执行 cd os/linux/  将里面生成的rt5370sta.ko 文件发送到mini2440里,这个就是驱动文件 我用ftp方式发送的,这个方式很多,就不一一说了。同时将源代码根目录下面的RT2870STA.dat文件传送到/etc/Wireles/TR2870STA/目录下,没有的话就mkdir命令创建。这个许多参考资料上说需要把rt5370sta.ko文件放到开发板的/lib/modules/2.6.32.2-FriendlyARM下面,其实没有必要,随便放到哪里即可,因为2.6.13不支持depmod modprobe 这些命令,只能用insmod命令,只要在存放.ko文件的路径里执行insmod即可,如图

这样就是驱动安装成功了,插入网卡,然后启动网卡,ifconfig ra0 up  注意这里给无线网卡分配的名字是ra0 不是wlan0 。

然后ifocnfig就能看到网卡信息了

三  需要安装执行网络相关命令的文件,再次强调一边由于kernel2.6.13的内核完全没有无线模块,所以常用的iwlist iwpriv 等命令都不支持,如果输入的话就会提示命令not found,这样需要我们下载工具包,首先下载wireless_tools.29.tar.gz工具包,这些资源我都会上传到我的百度云空间,下载地址http://pan.baidu.com/s/1k1PSE  然后在PC机上解压tar zxvf wireless_tools.29.tar.gz,进入解压目录,修改Makfile,vim Makfile,修改如下所示ifndef PREFIX

  PREFIX = /usr/local

endif
## Compiler to use (modify this for cross compile).
CC = arm-linux-gcc
## Other tools you need to modify for cross compile (static lib only).
AR = arm-linux-ar
RANLIB = arm-linux-ranlib    就是改一下交叉编译环境。然后make,makeinstall。然后解压包的根目录下找到libiw.so.29。下载到开发板的/lib/目录下;还在根目录下找到iwpriv、iwconfig、iwlist, iwevent, iwspy等命令,下载到开发板的/usr/sbin目录下。这时就应该可以使用这些命令通过网卡搜索到环境中的无线网络。然后执行iwlist scan 就可看到周围的无线网络

接下来就需要安装加密软件,移植wpa_supplicant,和openssl-0.9.8e,下载地址http://pan.baidu.com/s/1gdzkI4b 和 http://pan.baidu.com/s/1ewmZk 将两个包解压后,需要为opensll打上wpa的补丁,然后交叉编译

cpwpa_supplicant-0.7.3/patches/openssl-0.9.8e-tls-extensions.patchopenssl-0.9.8e/

cd openssl-0.9.8e

mkdir /usr/local/ssl

vim Makefile

INSTALLTOP=/usr/local/ssl

OPENSSLDIR=/usr/local/ssl

……

CC= arm-linux-gcc

AR= arm-linux- ar $(ARFLAGS) r

RANLIB= arm-linux-ranlib

make

make install

在/usr/local/ssl目录下安装了ssl库。

然后进入到wpa_supplicant的目录,修改配置文件和Makefile

cd ../wpa_supplicant-0.7.3/wpa_supplicant

cp defconfig .config
  在最后面加上下面三行。
vim .config

CC=arm-linux-gcc -L /usr/local/ssl/lib/
CFLAGS += -I/usr/local/ssl/include

LIBS += -L/usr/local/ssl/lib
可以在当前目录下得到需要的wpa_supplicant工具

对wpa_supplicant.conf文件进行编辑:

ctrl_interface=/var/run/wpa_supplicant

network={



        ssid="xxxxxx"

        scan_ssid=1

        key_mgmt=WPA-EAP WPA-PSK IEEE8021X NONE

        pairwise=TKIP CCMP

        group=CCMP TKIP WEP104 WEP40

        psk="XXXXXXXX"

}将wpa_supplicant和配置文件wpa_supplicant.conf下载到开发板中,wpa_supplicant替换掉原本开发板/usr/sbin/目录下的wpa_supplicant,wpa_supplicant.conf放在/etc目录下,然后有参考资料说需要关闭有线网卡,否则不能成功,我写了个脚本文件

#!/bin/sh

ifconfig eth0 down
ifconfig ra0 up 
ifconfig ra0 192.168.1.248 netmask255.255.255.0
route add default gw 192.168.1.1
wpa_supplicant -B -ira0 -c/etc/wpa_supplicant.conf –Dwext

然后ftp进板子。然后加权限,执行。前提是你先要用PC机建个热点,可以通过ping测试

如果想用2440ping通PC机的话 需要改PC机IP,原因就是在启动脚本里已经将IP,网关都写死了,2440不能自动获取IP,如果想要自动获取IP,还需要移植其他安装包,由于时间限制,暂时还未做,希望大家一起探讨

参考文件http://www.educity.cn/wenda/419738.html

http://blog.chinaunix.net/uid-26333327-id-3212280.html

http://blog.csdn.net/liangyamin/article/details/7209761

你可能感兴趣的文章
Java集合框架综述
查看>>
List集合源码解析原理和用法
查看>>
RabbitMQ深入理解及运用
查看>>
MapStruct-实体映射处理器
查看>>
Kafka设计解析(一):Kafka 背景及架构介绍
查看>>
Win10无法启用.NET环境
查看>>
Kafka 设计解析(二):Kafka High Availability (上)
查看>>
欢迎大家指导(表达式求值)
查看>>
计算cpu是大字节序还是小字节序
查看>>
strcpy详细解释
查看>>
static局部变量的使用
查看>>
阶乘运算 已测试999!
查看>>
精通C++是一个艰巨的任务。
查看>>
Linux操作系统原理与应用(第一章)细节指南
查看>>
阿里2015实习生招聘 面试第一轮学习
查看>>
内存分配器 (Memory Allocator)
查看>>
最大堆 最小堆 解决TOPK问题
查看>>
虚拟内存与物理内存映射解析
查看>>
深入解释直接初始化与复制初始化的区别
查看>>
C++虚函数表详细解释及实例分析
查看>>