5616|8

2144

帖子

3

TA的资源

五彩晶圆(中级)

楼主
 

helper2416_tl-wn725n移植01_驱动篇 [复制链接]

恩,这个帖子我之前有发过,不过基本上没怎么介绍细节的东西,这里打算写个入门帖子,有兴趣的可以跟着做一下,有任何问题欢迎跟帖讨论。整个移植过程花费了几天时间,中间遇到了一些问题,基本上通过阅读configure、readme和install这三个就能定位问题了。
打算分三篇来讲,驱动篇、wpasupplicant篇、hostapd篇。前面两个之前已经弄好了,有时间在完善一下softap吧。

tl-wn725n v2版本使用的芯片是rtl8188eu,v1版本使用的是rtl8188cu。这里使用的是v2版本,可以在模块的usb接口上面看到版本。驱动包地址在git上面,地址如下,先下载他,后面我就直接开始介绍了,我习惯在工作之余使用txt来记录过程或者思路的东西,感觉比较清晰,带图片的那种word文档还是给初学者看的,繁杂也不便于管理,如果你真的去弄某个东西,有的时候只要一点提示就会ok了,老外基本上都是采用这种方式,经常会搜索到这种readme,很不错,我在实际工作中都会使用,后面也采用这种方式来描述整个驱动的移植过程:
  1. https://github.com/twd2/TL-WN725N-V2-Driver-for-Linux
复制代码


一、准备工作
  1. 1、进入kernel源码测试meke ARCH=arm CROSS_COMPILE=arm-linux- menuconfig
  2. 2、提示失败需要安装依赖包sudo apt-get install libncurses5-dev
  3. 3、再次测试OK,准备工作完成
复制代码




二、编译内核
  1. 1、打开CONFIG_WIRELESS_EXT=y
  2. 2、使用kernel-2.6.x版本无需以下设置,针对kernel-3.2.x版本需要修改源码目录source/net/wireless/下的Kconfig文件,修改第一项为
  3.                 config WIRELESS_EXT
  4.                 bool "Wireless extension"
  5.                 default y
  6. 3、注意如下:
  7.                 Networking support--->Wireless--->Wireless extension--->y
  8.                 Networking support--->Wireless--->cfg80211 - wireless configuration API--->y
  9.                 Networking support--->Wireless--->cfg80211 - wireless extension sysfs files--->y
  10.                 Device Drivers--->Network device support--->Wireless LAN--->Realtek RTL8192cu/RTL8188CU USB Wireless Network Adater--->y
  11.                 Device Drivers--->Network deivce support--->Wireless LAN--->USB ZD1201 based Wireless device support--->y
  12. 4、make ARCH=arm CROSS_COMPILE=arm-linux- zImage
复制代码




三、编译wifi驱动
  1. 1、进入目录Makefile修改硬件和交叉编译器
  2.                 CONFIG_RTL8188E=y
  3.                 CONFIG_PLATFORM_ARM_S3C2K4=y
  4. 可以通过vi .config确认是否配置OK
  5.                 ifeq ($(CONFIG_PLATFORM_ARM_S3C2K4), y)
  6.                 EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
  7.                 ARCH := arm
  8.                 CROSS_COMPILE := arm-linux-
  9.                 KVER :=
  10.                 KSRC := /home/develop/helper2416/kernel2416/
  11.                 endif


  12. 2、修改一处bug
  13.                 cd core/rtw_recv.c  
  14.                 Line 3469  
  15.                 sub_skb->tail = (sk_buff_data_t)((SIZE_PTR)sub_skb->data + nSubframe_Length);  
  16. 改为  
  17.                 sub_skb->tail = (u8 *)((SIZE_PTR)sub_skb->data + nSubframe_Length);  


  18. 3、进入目录Makefile修改模块名称
  19.                 Line 180  
  20.                 MODULE_NAME = 8188eu  
  21. 改为  
  22.                 MODULE_NAME = rtl8188eu  
  23. 通过验证此处不可修改,编译有名称依赖
复制代码




四、安装驱动
  1. 1、把编译好的8188eu.ko文件拷贝到目标板/lib/modules下面对应的目录中
  2. 执行如下命令,注意前面两条命令可不执行
  3.                 depmod -a
  4.                 modprobe 8188eu.ko
  5.                 insmod 8188eu.ko
  6. 2、重启板子等待板子启动,从启动信息中可以看到wifi驱动8188eu.ko已经被安装(注意自己添加安装启动项或者添加驱动安装启动等)
  7. 3、在板子的命令行中使用iwconfig来查看wireless设备
  8. 4、启动wlan0设备,命令为ifconfig wlan0 up
  9. 5、使用iwlist wlanX sc扫描周围的AP
  10. 6、注意此时只能连接WPE加密的路由器,建议大家使用没有密码的路由来测试。
复制代码



因为iwconfig、iwlist等命令比较简单,不支持WPA加密机制,所以才有后面的wpasupplicant篇,大家可以先了解一下这个工具,很不错的,里面还有qt界面的图形化配置工具源码,可以编译到helper2416上面哦,类似手机搜索ap然后连接的那种界面。






附几张图吧:


1)insmod 8188eu.ko


2)tl-wn725n 插入


3)ifconfig wlan0 up



4)ifconfig wlan0


5)ifconfig


6)iwconfig


7)iwlist wlanX



最新回复

本帖最后由 wcabcd 于 2014-9-17 10:25 编辑 我之前移植过RT5370的usb wifi,你可以看一下这个 http://blog.csdn.net/lanyang123456/article/details/7370805 这里面除了要编译生成一个.ko的模块,还需要 将rt5370驱动源码目录下的RT2870STA.dat拷贝到/etc/Wireless/RT2870STA/目录下(首先要创建/etc/Wireless/RT2870STA) RT2870STA.dat就是我所说的固件,没有源码的,要使RT5370的usb wifi工作必须有这个固件。   详情 回复 发表于 2014-9-16 16:56
点赞 关注
个人签名电工

回复
举报

2144

帖子

3

TA的资源

五彩晶圆(中级)

沙发
 
注意两点

这个路劲是内核的路劲,
KSRC := /home/develop/helper2416/kernel2416/


驱动模块名称,默认不要修改,
MODULE_NAME = 8188eu  
 
个人签名电工
 

回复

2144

帖子

3

TA的资源

五彩晶圆(中级)

板凳
 
还有一点,建议使用3.2版本的内核,2.6版本的我也试了,有一些问题,两者过程有一些差异,我主要是以3.2为对象介绍,wpa篇,请参考下一贴。
 
个人签名电工
 
 

回复

2144

帖子

3

TA的资源

五彩晶圆(中级)

4
 
tl-wn725n模块实物图片,树莓派上有用的,所以上次买的时候多买了一个。


 
个人签名电工
 
 

回复

19

帖子

0

TA的资源

一粒金砂(中级)

5
 
这个只需要一个.ko文件就可以,不需要固件吗?

点评

可参考我下一篇帖子,有介绍驱动ko就够了,使用的话最好是用wpasupplicant  详情 回复 发表于 2014-9-16 12:37
 
 
 

回复

2144

帖子

3

TA的资源

五彩晶圆(中级)

6
 
wcabcd 发表于 2014-9-16 11:32
这个只需要一个.ko文件就可以,不需要固件吗?

可参考我下一篇帖子,有介绍驱动ko就够了,使用的话最好是用wpasupplicant

点评

我记得我之前移植的usb wifi还需要一个.dat文件拷贝到文件系统里,看来你这个wifi不需要这个固件,是完全开源的。  详情 回复 发表于 2014-9-16 14:43
 
个人签名电工
 
 

回复

19

帖子

0

TA的资源

一粒金砂(中级)

7
 
lyzhangxiang 发表于 2014-9-16 12:37
可参考我下一篇帖子,有介绍驱动ko就够了,使用的话最好是用wpasupplicant

我记得我之前移植的usb wifi还需要一个.dat文件拷贝到文件系统里,看来你这个wifi不需要这个固件,是完全开源的。

点评

你说的dat是固件相关的东西么 不太了解,linux下面一般都是有源码的 mcu上的wifi基本上都是固件+配置这种方式  详情 回复 发表于 2014-9-16 15:33
 
 
 

回复

2144

帖子

3

TA的资源

五彩晶圆(中级)

8
 
wcabcd 发表于 2014-9-16 14:43
我记得我之前移植的usb wifi还需要一个.dat文件拷贝到文件系统里,看来你这个wifi不需要这个固件,是完全 ...

你说的dat是固件相关的东西么
不太了解,linux下面一般都是有源码的

mcu上的wifi基本上都是固件+配置这种方式
 
个人签名电工
 
 

回复

19

帖子

0

TA的资源

一粒金砂(中级)

9
 
本帖最后由 wcabcd 于 2014-9-17 10:25 编辑
lyzhangxiang 发表于 2014-9-16 15:33
你说的dat是固件相关的东西么
不太了解,linux下面一般都是有源码的


我之前移植过RT5370的usb wifi,你可以看一下这个
http://blog.csdn.net/lanyang123456/article/details/7370805
这里面除了要编译生成一个.ko的模块,还需要
将rt5370驱动源码目录下的RT2870STA.dat拷贝到/etc/Wireless/RT2870STA/目录下(首先要创建/etc/Wireless/RT2870STA)
RT2870STA.dat就是我所说的固件,没有源码的,要使RT5370的usb wifi工作必须有这个固件。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表