Hi3518E开发板上添加RT5370模块
来源:互联网 发布:数据库教程 pdf 编辑:程序博客网 时间:2024/06/06 07:13
最近在搞摄像头,手上雄迈的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驱动的移植
1 0
- Hi3518E开发板上添加RT5370模块
- HI3518E的开发板使用485通信
- hi3518e移植wifi模块注意事项
- hi3518e移植wifi模块注意事项
- hi3518e
- 在OK6410 android开发板上添加led驱动模块,并通过NDK测试驱动
- 在fl2440开发板上添加WiFi模块------RT3070无线网卡
- 移植RT5370驱动到MIPS架构上
- 开发板上驱动程序模块的实现
- hello模块装载在开发板上。
- 手把手教你如何配置内核---举例添加RT5370驱动
- 手把手教你如何配置内核---举例添加RT5370驱动
- Linux系统中添加IPv6模块(TQ2440开发板)
- 给Hi3518e的Uboot添加UDP广播收发功能
- windows 上开发Apache 模块
- 成功在 Tiny6410开发板上加载hello world模块
- 成功在 Tiny6410开发板上加载hello world模块
- ucf模块-Spartan-3开发板上的引脚
- gSoap传输UTF8格式数据
- HDU 1002
- 存储过程的调用
- java零碎要点---class()、getClass()、Class.forName()、getClassLoader()的区别和联系--又不详细的地方求补充
- hadoop pipes 原理及编程实践
- Hi3518E开发板上添加RT5370模块
- cmd下编译、运行java工程(一)
- MySQL启动时ERROR! The server quit without updating PID file
- ORACLE数据的导入与导出
- 序列化的作用
- 修改tomcat服务器默认端口号
- 黑马程序员——C语言基础——结构体、枚举
- ireport自定义动态创建报表
- ORA-00845: MEMORY_TARGET not supported on this system