爱板网论坛

查看: 135|回复: 1

[原创] TI AM335x USB无线网卡移植和使用手册

[复制链接]

4

主题

0

好友

201

积分

秀才

Rank: 3Rank: 3

该用户从未签到

发表于 2017-11-21 10:25:22 |显示全部楼层
AM335x
  AM335x处理器采用系列化,从高端过渡到低端,满足不同行业客户的各种功能需求,达到性价比最优的微妙平衡。有AM3359/AM3358/AM3357/AM3356/AM3354等多款配置参数各不相同的处理器,且系列   处理器管脚PIN对PIN兼容,方便客户进行产品升级公开资料最全的一款芯片,方便工程师学习及进行产品设计。
微信图片_20171121092246.png

  系统支持丰富,支持WINCE、LINUX、Android三种主流嵌入式操作系统;支持裸机操作,可通过StarterWare做到无需操作系统,开发人员便可像对微控制器编程那样对处理器进行编程。集成2个MAC,双千兆网络。拥有CAN、PROFIBUS、RS485等多种主流工业总线,应用领域广泛。品质稳定,定位工业控制MCU,适应各种残酷工业环境;超长供货周期,保证客户产品寿命。

开发板
  这次使用的是深圳盈鹏飞嵌入式公司基于AM335x打造的双网络,6串口的嵌入式开发板EVB-T335。核心板采用的AM335x处理器,最高运行1GHz,邮票孔设计,超小体积,EtherCat.PROFINET工业总线,支持Linux3.14/Wince7.0系统!
从官网上找了两张开发板和核心板的高清图
EVB-T335开发板   EVB-T335_En.pdf (1.26 MB, 下载次数: 0)



微信图片_20171121092801.png
核心板 CoM-T335_cn.pdf (2.58 MB, 下载次数: 0)

微信图片_20171121092820.png

前面已经介绍完AM335x和EVB-T335开发板,下面开始软件部分!
  本文描述如何在AM335x开发板上移植无线网卡驱动及其使用。关于开发板支持哪些usb-wifi设备,取决于该设备使用哪种类型芯片组,每种芯片组都有与之对应的linux驱动,而在EVB-T335的3.14.43内核源码中,已经支持了许多常用的芯片组驱动,具体请用户在menuconfig中自行查看。本文以使用EDUP公司的EP-N8531、TP-LINK公司的TL-WN823N为例,说明usb-wifi移植和使用方法。其中,EP-N8531使用的芯片组分别为RT5370,使用的驱动为rt2800usb;TL-WN823N使用的芯片组为RTL8192CU,驱动为rtl8192cu。

内核驱动模块和编译
a、配置内核支持cfg80211(802.11n协议)
Networking support  --->
              -*-   Wireless --->
                        --- Wireless                                                
                         <*>   cfg80211 - wireless configuration API                                       
                             enable powersave by default                                               
                             cfg80211 wireless extensionscompatibility                                          
                         <*>   Generic IEEE 802.11 Networking Stack(mac80211)                                             
                           Minstrel                                                                        
                             Minstrel 802.11n support
b、配置内核支持RTL8192CU(本文为将驱动编译成模块的形式,如需编译进内核,请自行修改)
DeviceDrivers  --->
      Network device support  --->
                        Wireless LAN --->
                            <M>   Realtek rtlwifi family of devices  --->
                                   <M>   Realtek RTL8192CU/RTL8188CU USB WirelessNetwork Adapter
c、配置内核支持RT5370(本文为将驱动编译成模块的形式,如需编译进内核,请自行修改)
DeviceDrivers  --->
      Network device support  --->
                        Wireless LAN --->
                            <*>   Ralink driver support  --->
                                  <M>   Ralink rt27xx/rt28xx/rt30xx (USB) support
                                             rt2800usb - Include support for rt53xxdevices (EXPERIMENTAL)  
配置完成后,保存退出。然后重新编译内核和内核模块(如已将驱动编译进内核,则无需编译内核模块):

编译内核
$ make ARCH=armCROSS_COMPILE=arm-linux-gnueabihf- LOADADDR=0x80008000 uImage
编译内核模块:
$ make ARCH=armCROSS_COMPILE=arm-linux-gnueabihf- modules
安装内核模块:
$ make ARCH=armINSTALL_MOD_PATH=<path to root of file system>modules_install
path to root of filesystem为模块安装的目录,例如/home/alex/evbt335/kernel/modules为笔者的安装路径,相应命令如下所示:
$ make ARCH=armINSTALL_MOD_PATH=/home/alex/evbt335/kernel/modulesmodules_install
将编译好的内核烧录到开发板,并将安装好的驱动模块目录/home/alex/evbt335/kernel/modules/lib/modules

复制到开发板的/lib/目录下。

下载固件
每个usb-wifi设备驱动都需要相应的固件,其中,RT5370需要的固件为rt2870.bin;RTL8192CU所需固件为rtl8192cufw_TMSC.bin和rtl8192cufw.bin ,其他wifi模块可根据实际模块加载过程中打印输出为准;(在启用设备时,系统会打印出需要的固件,下文会讲到)
Linux系统所需的固件包可在linux系统下通过如下命令下载:
$ gitclone git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git

下载后可在该固件包里找到rt2870.bin、rtl8192cufw_TMSC.bin和rtl8192cufw.bin文件。将rt2870.bin文件拷贝到EVB-T335的/lib/firmware/rtlwifi/目录下(使用EP-N8531的情况下),将rtl8192cufw_TMSC.bin 和rtl8192cufw.bin文件拷贝到EVB-T335的/lib/firmware/rtlwifi/(使用TL-WN823N的情况下)。(注:用户需根据实际情况将所需的固件拷贝到相应的目录下)。

USB-wifi的使用
  经上述步骤将所需的内核和驱动模块以及固件程序烧录到EVB-T335,待系统启动后,将usb-wifi设备插入EVB-T335,系统会识别到设备并自动安装相应驱动模块。由于EP-N8531和TL-WN823N在EVB-T335上的使用方法一致,因此,接下来仅以EP-N8531为例进行使用说明。EP-N8531插入EVB-T335后系统打印出如下信息:
1.png

此时,系统会自动加载rt2800usb的驱动模块,输入lsmod命令可查看:
2.png
注:如果系统没有自动加载,则可以输入modprobert2800usb命令进行手动加载。

并且生成了wlan0网口,输入ifconfig -a可查看:
3.png
驱动模块加载成功后,需要使用wpa_supplicant 工具连接wifi网络。具体使用步骤如下:

创建wpa_supplicant.conf配置文件
在/etc/目录下创建wpa_supplicant.conf文件:
# WPA-PSK/TKIP
ctrl_interface=/var/run/wpa_supplicant
network={
     ssid="artcor"             //Wifi账号
     key_mgmt=WPA-PSK //请无论你是使用WPA-PSK,WPA2-PSK,都请在这里输入 WPA-PSK。这
在wpa_supplicant看来WPA-PSK,WPA2-PSK都是 WPA-PSK,改成WPA2-PSK,它会不认识。
      proto=WPA RSN     //一般这样写可以兼容WPA和WPA2 CCMP和TKIP
proto=RSN #Robust SecurityNetwork:强健安全网络,表示这个网络配
置比 WEP模式要更安全。
      pairwise=CCMPTKIP    //关键点,wpa_supplicant目前还不认AES的加密标准,因此即使你在
此输入AES也没有用,自行web到路由器上改成CCMP TKIP
     psk="82523090"      //Wifi密码
}
(注:请根据路由器实际配置修改,可参考附录1)

连接无线wifi
a、由于EVBT-335使用了双网络,为避免冲突,可以先关闭eth0eth1:
#ifconfigeth0 down
#ifconfigeth1 down
b、设置默认路由网关(一般为路由器IP,笔者的路由器IP192.168.0.1):
#routeadd default gw 192.168.0.1
设置wlan0IP(注:请根据路由器实际情况设置,需与路由器IP在同一网段)

#ifconfigwlan0 192.168.0.222 up
4.png
注:此时可看到此时加载了rt2870.bin的固件)
c、连接无线wifi
#wpa_supplicant-iwlan0 -c /etc/wpa_supplicant.conf -B

5.png


d、查看连接状况:

#iwconfig
可见wlan0已经连接上了账号为‘artcor’的wifi
e、测试,ping路由IP
6.png

# ping192.168.0.1 -I wlan0
7.png
可看到顺利ping通路由IP,至此,EP-N8531可以正常使用

无线网卡使用注意事项

问题1:如何卸载驱动模块
([url=]EVB-T335[/url])系统会自动加载usb-wifi所需的驱动模块,如需卸载rt2800usb模块,可使用如下命令:
#modporbe –rt2800usb
若要手动加载驱动模块,由依赖模块较多,请尽量不要使用insmod命令,推荐使用modprobe 命令,该命令可自动加载该模块所需的其他依赖模块。
问题2:可以ping通路由但是ping不通外网

8.png
解决办法:
routeadd default gw 192.168.0.1  

回复

使用道具 举报

4

主题

0

好友

201

积分

秀才

Rank: 3Rank: 3

该用户从未签到

发表于 2017-11-23 10:54:06 |显示全部楼层
获取更多技术文档,产品咨询,请关注微信关注号
盈鹏飞二维码.jpg

回复

使用道具 举报

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

关闭

站长推荐上一条 /1 下一条

手机版|爱板网 |网站地图  

GMT+8, 2017-12-15 01:12 , Processed in 0.192155 second(s), 12 queries , Memcache On.

苏公网安备 32059002001056号

Powered by Discuz!

回顶部