最近在搞摄像头,手上雄迈的3518e板子引出了usb接口,正好也扒出来一块带着rt5370的小板,然后焊点线就行了,剩下的就是搞移植了。

0.准备工作

虚拟机中已正常安装海思交叉工具链且path也export了,这里使用arm-hisiv100nptl-linux,内核代码,这里是linux-3.0.y,绝对路径为/work/hi3518/linux-3.0.y。

待移植源码
2011_0719_RT3070_RT3370_RT5370_RT5372_Linux_STA_V2.5.0.3_DPO.bz2
openssl-1.0.1e.tar.gz
wpa_supplicant-0.7.3.tar.gz
wireless_tools.29.tar.gz

1.配置内核
Networking support==>Wireless 下80211相关配置选上,至于debug开关酌情考虑
Device Drivers==>Network deivce support==>Wireless LAN==><*> USB ZD1201 based Wireless device support
Device Drivers==>USB support下EHCI HCD support、OHCI HCD support 、USB Wireless Device Management support
make uImage

2.移植rt5370驱动

a.解压源码

2011_0719_RT3070_RT3370_RT5370_RT5372_Linux_STA_V2.5.0.3_DPO.bz2

b.修改顶层Makefile
修改平台为Hi3518E:
#PLATFORM = PC
PLATFORM = HI3518E
添加平台内核路径及编译工具
ifeq ($(PLATFORM),HI3518E)
LINUX_SRC = /work/hi3518/linux-3.0.y
CROSS_COMPILE = arm-hisiv100nptl-linux-
endif
c.修改配置文件
修改os/linux/config.mk
使能wpa supplicant
# Support Wpa_Supplicant
HAS_WPA_SUPPLICANT=y
# Support Native WpaSupplicant for Network Maganger
HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y
添加平台的EXTRT_CFLAGS
ifeq ($(PLATFORM),HI3518E) 
EXTRA_CFLAGS := $(WFLAGS) -I$(RT28xx_DIR)/include
endif
d.修改设备名称
修改include/rtmp_def.h
将宏
#define INF_MAIN_DEV_NAME "ra"
#define INF_MBSSID_DEV_NAME "ra"
修改为
#define INF_MAIN_DEV_NAME "wlan"
#define INF_MBSSID_DEV_NAME "wlan"
这样加载驱动后,添加的网卡名称为wlan0
e.编译 make
f.部署到开发板饿
将os/linux/rt5370sta.ko放入开发板ko目录下
将RT2870STA.dat放入开发板/etc/Wireless/RT2870STA/目录下
f.加载5370驱动
#insmod rt5370sta.ko
#rtusb init rt2870 --->

=== pAd = c31c3000, size = 510192 ===

RTMPAllocTxRxRingMemory, Status=0
 RTMPAllocAdapterBlock, Status=0
usbcore: registered new interface driver rt2870

ifconfig -a  之后会看到有个wlan0

#ifconfig wlan0 up
#(Efuse for 3062/3562/3572) Size=0x2d [2d0-2fc] 
RTMP_TimerListAdd: add timer obj c320a9c8!
RTMP_TimerListAdd: add timer obj c320a9f8!
RTMP_TimerListAdd: add timer obj c320aa28!
RTMP_TimerListAdd: add timer obj c320a998!
RTMP_TimerListAdd: add timer obj c320a908!
RTMP_TimerListAdd: add timer obj c320a938!
RTMP_TimerListAdd: add timer obj c31d553c!
RTMP_TimerListAdd: add timer obj c31c4d40!
RTMP_TimerListAdd: add timer obj c31c4d78!
RTMP_TimerListAdd: add timer obj c31d55e0!
RTMP_TimerListAdd: add timer obj c31d54dc!
RTMP_TimerListAdd: add timer obj c31d55ac!
-->RTUSBVenderReset
RTUSBVenderReset
Key1Str is Invalid key length(0) or Type(0)
Key2Str is Invalid key length(0) or Type(0)
Key3Str is Invalid key length(0) or Type(0)
Key4Str is Invalid key length(0) or Type(0)
1. Phy Mode = 5
2. Phy Mode = 5
NVM is Efuse and its size =2d[2d0-2fc] 
phy mode> Error! The chip does not support 5G band 15!
RTMPSetPhyMode: channel is out of range, use first channel=1 
(Efuse for 3062/3562/3572) Size=0x2d [2d0-2fc] 
3. Phy Mode = 9
AntCfgInit: primary/secondary ant 0/1
AsicSetRxAnt, switch to main antenna
MCS Set = ff 00 00 00 01
== rt28xx_init, Status=0
0x1300 = 00064300

3.移植wpa supplicant
wpa supplicant需要用到ssl库,为此需先编译openssl,
a.解压源码
解压openssl-1.0.1e.tar.gz与wpa_supplicant-0.7.3.tar.gz
b.编译OpenSSL库
将上一步解压出来wpa_supplicant-0.7.3中的patches/openssl-0.9.8e-tls-extensions.patch复制到openssl-1.0.1e目录下。
建立一个openssl的安装目录,例如work/hi3518/openssl.
修改顶层Makefile
CC= arm-hisiv100nptl-linux-gcc
AR= arm-hisiv100nptl-linux-ar $(ARFLAGS) r
RANLIB= arm-hisiv100nptl-linux-ranlib
INSTALLTOP=/work/hi3518/openssl
OPENSSLDIR=/work/hi3518/openssl
make
make install
c.编译wpa_suppicant
进入目录wpa_supplicant-0.7.3/wpa_supplicant,
cp defconfig .config
修改.config
CC=arm-hisiv100nptl-linux-gcc -L/work/hi3518/openssl/lib/
CFLAGS += -I/work/hi3518/openssl/include
LIBS += -L/work/hi3518/openssl/lib/
编译make
d.部署到开发板
将编译生成的wpa_supplicant、wpa_cli下载到开发板
创建配置文件/etc/wap_supplicant.conf,内容如下:
ctrl_interface=/var/run/wpa_supplicant

network={
ssid="Test-Wifi"
scan_ssid=1
key_mgmt= WPA-EAP WPA-PSK IEEE8021X NONE
pairwise=TKIP CCMP
group=CCMP TKIP WEP104 WEP40
psk="12345678"

}

创建运行目录mkdir /var/run/wpa_supplicant,上面配置文件中ssid、psk为路由wifi名称与密码
e.连接到路由
运行命令
./wpa_supplicant -Dwext -iwlan0 -c/home/wpa_supplicant.conf -dd &
这里-dd可以去掉,关闭调试信息。
这样3518就连接到了路由,路由ssid、密码在wpa_supplicant.conf中配置
f.自动获得ip
busybox中已默认包含udhcpc,只需要在开发板中做配置运行即可
复制busybox中example/udhcp/simple.script到开发板etc目录下,根据其中的RESOLV_CONF="/etc/resolv.conf"在etc下建立resolv.conf文件,修改权限为777

运行命令 udhcpc -i wlan0 -s /etc/udhcpc-default.script &
开发板能够从路由获得ip

4.移植wireless_tools
a.解压源码,修改Makefile
CC = arm-hisiv100nptl-linux-gcc
AR = arm-hisiv100nptl-linux-ar
RANLIB = arm-hisiv100nptl-linux-ranlib
b.编译make

c.部署到开发板

将编译生成的libiw.so.29放到开发板/usr/lib/目录下

将编译生成的iwlist、iwconfig、iwpriv等下载到开发板运行即可,具体使用可查找相关资料。

参考
无线wlan在mips平台上的移植与应用
嵌入式Linux USB WIFI驱动的移植

Hi3518E开发板上添加RT5370模块相关推荐

  1. 海思开发板上添加ftp功能

    海思开发板上添加ftp功能 前言: 本博客是基于海思3520Dv100开发,编译工具链为:arm-hisiv100nptl-linux-gcc 1.下载stupid-ftpd-1.5beta.tar. ...

  2. 在MINI2440开发板上添加qtopia应用程序

    博客首页 登录 注册 如果时间倒流你在哪里 发博文 博文 点滴积累的博客 http://blog.sina.com.cn/u/2767346860  [订阅] [手机订阅] 首页 博文目录 图片 关于 ...

  3. 利用开发板上的RS485模块与PC机的串口通讯

    上网买的RS232转RS485的接口迟迟没有送到,程序又着急写,所以本人就利用开发板上现有的资源实现了一个简单的转化功能 本人利用的开发板资源:RS485模块(MAX 485芯片),U软串(PL230 ...

  4. 4G上网模块ME3760移植到arm开发板上(6410)

    花了一天时间终于让6410开发板ping通www.baidu.com了,下面分享给大家.希望大家少走弯路~     我不知道是不是因为ME3760 V2这个4G模块太偏了,网上没有一个成熟详细的移植教 ...

  5. linux内核添加usb键盘驱动,配置USB外设 - linux-2.6.32在mini2440开发板上移植_Linux编程_Linux公社-Linux系统门户网站...

    linux-2.6.32在mini2440开发板上移植 配置USB外设 [日期:2013-04-08] 来源:Linux社区 作者:ssdsafsdsd [字体:大 中 小] 编者:因为LINUX内核 ...

  6. 如何在ARM开发板上从源码编译安装OpenCV和OpenCV contrib

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 本文主要介绍如何在ARM开发板上从源码编译安装OpenCV和OpenCV contrib. OpenC ...

  7. linux usb视频开发板,ARM开发板上USB 摄像头图像采集实现

    开发板上的arm是AT91RM9200,摄像头选用的是网眼的pc350,主控芯片是ov511+.系统内核是2.4,宿主机是fedora core 6,交叉编译器是2.95.3.就是这些家底了,:-). ...

  8. Kria K26 SOM 在 KV260 开发板上的使用

    Kria K26 SOM 在 KV260 开发板上的使用 参考 前言 一.Linux开发环境搭建 1. 设置使用local sstate,加速工程编译 (1) 在Xilinx官网下载 aarch64 ...

  9. 让kaldi在Linux开发板上运行起来~ (测试运行篇)

    [kaldi各文件解释] /egs:不同语料例子的执行脚本文件 /tools:存放asr过程中用到的库 /src:存放实际执行的c++算法 解码工具(src/onlinebin中): online-g ...

最新文章

  1. LINUX CentOS7安装字体库
  2. 语音识别可以直接编码吗
  3. SAR 和光学图像配准研究
  4. jquery 获取checkbox的checked属性总是undefined
  5. 使用Python开发会聊天的智能小机器人
  6. python协程第一课(实现爬取自己博客)
  7. MySQL之 分库分表
  8. laravel后台可修改配置自动加载
  9. linux下epoll网络编程模型,C++ - 网络编程模型 - Linux EPOLL
  10. kubernetes endpoints是什么
  11. idea2020不显示光标所在位置的方法名
  12. QCC3040---Application启动流程
  13. 【数据分析】2种常见的反爬虫策略,信息验证和动态反爬虫
  14. java 两张图片合成
  15. 梳理50道经典计算机网络面试题
  16. 美通企业周刊 | 理想汽车提交赴美IPO文件;默克最大M Lab协作中心落户上海;百世上线东南亚门到门寄递服务...
  17. 关于H5的20道面试题及答案
  18. HTML中placeholder用法
  19. Chrome性能调优技巧
  20. 欢度国庆!今天,我们为祖国母亲庆生......

热门文章

  1. 倒计时3天,和V神一起点燃这个夏天
  2. 苹果air3安兔兔html5是什么,苹果新品iPad mini5和iPad Air3,值不值得购买?-admini
  3. 认识和使用Slf4j
  4. PTA L1-020 帅到没朋友 C++实现
  5. OSChina 周二乱弹 ——曝光巴叔最爱蕾丝女仆机器人
  6. oracle修改字体样式,电脑系统字体样式怎么改?电脑字体样式更改方法
  7. OpenCV在已有图片上画点
  8. asp.net身份验证方式
  9. 设置ImageView中图片的的颜色
  10. 远程监控及数据采集解决方案