AM4378 usbwifi 移植

1. TL-WN823N使用的芯片组为RTL8192CU,驱动为rtl8192cu

2.内核驱动模块配置和编译
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/目录下。

3.下载固件
每个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的情况下)。(注:用户需根据实际情况将所需的固件拷贝到相应的目录下)。

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

此时,系统会自动加载rt2800usb的驱动模块,输入lsmod命令可查看:


注:如果系统没有自动加载,则可以输入modprobert2800usb命令进行手动加载。

并且生成了wlan0网口,输入ifconfig -a可查看:


驱动模块加载成功后,需要使用wpa_supplicant 工具连接wifi网络。具体使用步骤如下:

4.1创建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密码 

4.2连接无线wifi
a、由于EVBT-335使用了双网络,为避免冲突,可以先关闭eth0和eth1:

#ifconfigeth0 down

#ifconfigeth1 down

b、设置默认路由网关(一般为路由器IP,笔者的路由器IP为192.168.0.1):

#routeadd default gw 192.168.0.1

设置wlan0的IP(注:请根据路由器实际情况设置,需与路由器IP在同一网段):

#ifconfigwlan0 192.168.0.222 up


c、连接无线wifi

#wpa_supplicant-iwlan0 -c /etc/wpa_supplicant.conf -B


d、查看连接状况:

#iwconfig


可见wlan0已经连接上了账号为‘artcor’的wifi。

e、测试,ping路由IP:

# ping192.168.0.1 -I wlan0

可看到顺利ping通路由IP,至此,EP-N8531可以正常使用。

4.3无线网卡使用注意事项
问题1:如何卸载驱动模块

EVB-T335系统会自动加载usb-wifi所需的驱动模块,如需卸载rt2800usb模块,可使用如下命令:

#modporbe–rt2800usb

若要手动加载驱动模块,由依赖模块较多,请尽量不要使用insmod命令,推荐使用modprobe 命令,该命令可自动加载该模块所需的其他依赖模块。

问题2:可以ping通路由但是ping不通外网

解决办法:
routeadd default gw 192.168.0.1  

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值