Chinaunix首页 | 论坛 | 博客
  • 博客访问: 155974
  • 博文数量: 44
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 407
  • 用 户 组: 普通用户
  • 注册时间: 2015-11-10 13:28
个人简介

仰望星空

文章分类
文章存档

2016年(22)

2015年(22)

我的朋友

分类: 嵌入式

2015-11-18 18:31:25

一、移植目的
    为了实现ARM9开发板可以和电脑Windows系统网络互通,从而可以使用FTP工具(cuteFTP或者flashfxp)将电脑的编译好的驱动文件和应用程序文件发送到开发板上,这样每次用不着每次都对开发板的内核或者文件系统重新烧写了,延长Nandflash的寿命。
二、移植准备(硬件软件)
    硬件:(1)磊科(netcore)NW336 150M USB无线网卡,这个是从京东上买的,网址是:
                        选择该网卡的原因是看在这个博文:
                (2)TX2440开发板,mini开发板和其他的开发板都没有影响
                (3)路由器或者交换机都可以(最好支持Wep加密认证方式)
       软件:无线网卡的光盘提供了相关软件,包括NM336的驱动和wireless_tools
三、移植步骤
    我也是参照的这个网址:http://hxluo.blog.163.com/blog/static/19660227620129165139632/
光盘下面NW336的目录如下:

其中android开头的文件夹是与android系统有关的东东。我猜这是安卓手机做成wifi热点需要的软件支持的参考代码。
下面是一样的,只不过是ICS (冰激凌三明治)4.0的系统。
document:里面有各种移植说明文档,全英文的。
然后我有用的就是driver(驱动)还有wireless_tools

1、驱动移植:
将driver里面的rtl8188C_8192C_usb_linux_v3.4.4_4749.20120730.tar.gz 移动到fedora系统下。
驱动加载到TX2440或者mini2440里面,一般来说有两种:①加载到内核,然后将内核烧进板子里面 ②动态加载

(1)动态加载
将驱动文件移动到任意文件夹,比如home/mrluo
然后解压:tar xzvf rtl8188C_8192C_usb_linux_v3.4.4_4749.20120730.tar.gz 

打开解压后的文件夹,先修改Makefile,因为官方默认是装在linux系统上面的,X86的平台。

因此:


另外,你得找到CONFIG_PLATFORM_ARM_S3C2K4这个配置所对应makefile所执行的操作:


首先KSRC,内核的路径,修改成你内核所放的位置,然后-$(KVER)d的移植是内核的版本,因此你也得修改上面KVER对应的内核版本,然后ARCH,应该就是架构,也就是对应是哪一种架构的,这是我自己移植的内核,是ARM,友善的一般是FriendlyARM的。
然后我的修改如下:

 
修改玩后执行make命令,会生成一个.ko文件,这里生成一个8192cu.ko文件。
然后用NFS挂载或者用U盘 SD卡传输到你的mini2440开发板,或者用smb服务器都可以,别用超级终端,这东西很大,会卡死的。

放到一个任意文件夹,执行
insmod 8192cu.ko   
命令,加载无线网卡驱动,
然后超级终端会打印一大串东西,最后输出:
usbcore: registered new  interface driver rtl8192cu 
这样就算驱动加载成功了,然后就可以用了。
2、加载进内核
将解压后的文件夹搬进内核驱动driver这边,我是搬到了/driver/char里面
然后打开/driver/char 目录
修改一下Kconfig
将无线网卡加载到内核配置菜单选项:


然后就是修改Makefile
加压之后可以了解到,其实无线网卡驱动程序里面也有一个Makefile文件的,我们要做的就是让Kconfig菜单找到驱动程序文件夹里面的Makefile文件。
打开driver/char 里面的Makefile
加入下面这句

也就是让Makefile 找到与CONFIG_RTL8192CU相关联的Makefile

当然,rtl8188c_XXXXX 文件夹里面的Makefile也需要修改成与你的开发平台(mini2440)相关的配置。
重复上述动态加载里面修改Makefile的步骤就OK了。
然后配置内核菜单:make menuconfig


Device Drivers ——》Character devices ——》<*> Realtek 8192C USB WiFi
搞定 ~ ,编译内核 make zImage      烧进去板子。
插网卡能打印一大堆东西,然后到友善的无线网络设置那边,能搜到附件的一些无线网络,就成功了。
以上两种方式都可以。我喜欢动态加载。。。


驱动加载成功以后就可以对驱动进行调用了,担心现在还不能直接调用,因为没有相关应用程序,需要iwconfig、iwlist和iwpriv等命令

同样在驱动的文件夹里也用wireless_tools的工具包,可将其直接复制到linux系统上,修改Makefile,然后进行交叉编译,得到我们需要 应用程序
参考这个文档:

下载后,将源代码解压。再修改其中的makefile文件,将其中的
CC = gcc
AR = ar
RANLIB = ranlib
改为
CC = arm-linux-gcc
AR = arm-linux-ar
RANLIB = arm-linux-ranlib
再执行make,编译完成后,将生成的iwconfig,iwlist文件拷贝到rat-linux for 2440的根文件系统中的/bin目录下,将
libiw.so.29拷贝到/lib目录下。
启动2440开发板,进入linux命令行后,执行ifconfig wlan0 up,启动无线网卡。再执行iwlist scanning,此命令可以搜索到
可用的无线网络接入点。我的无线接入点是一台无线路由器,ESSID是"rat-linux",执行此命令后就会下列输出
wlan0     Scan completed :
          Cell 01 - Address: 00:19:C6:53:B9:CE
                    ESSID:"rat-linux"
                    Mode:Master
                    Channel:2
                    Frequency:2.417 GHz (Channel 2)
                    Quality=11/100  Signal level:66/100
                    Encryption key:on
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
                              9 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s; 36 Mb/s
                              48 Mb/s; 54 Mb/s
                    Extra:tsf=000000056306469f
                    Extra: Last beacon: 1065ms ago

其中可以看到我的无线接入点是需要密码的。假设密码是123456。使用如下的命令设置密码。
  iwconfig wlan0 key 123456
为了能接无线网,还要使用下面的命令设置ESSID
  iwconfig wlan0 essid "rat-linux"
其它的参数可以都采用默认的,不用再设了。可以使用下面的命令加入无线网了。
  
  iwconfig wlan0 ap auto
再执行iwconfig wlan0,就可以看到下面的信息。
wlan0     IEEE 802.11bg  ESSID:"rat-linux"
          Mode:Managed  Frequency:2.417 GHz  Access Point: 00:19:C6:53:B9:CE
          Bit Rate=1 Mb/s   Tx-Power=27 dBm
          Retry min limit:7   RTS thr:off   Fragment thr=2352 B
          Encryption key:1234-56   Security mode:open
          Power Management:off
          Link Quality=100/100  Signal level:66/100
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0
这就表示已接入无线网。
最后,为无线网卡指定IP地址。命令如下
  ifconfig wlan0 192.168.1.30 netmask 255.255.255.0
我的开发主机和无线网卡处于同一网段,因此是可以相互PING通的。因此可以用从开发主机上PING无线网卡的IP地址的方法来确网
卡是否工作正常。从主机上执行ping 192.168.1.30,正常PING通。
至此,无线网卡安装全部完成。
最后,为了方便配置,可以将上述的配置命令写入linux脚本文件,以后,只要执行此脚本,即可完成上述步骤的配置。脚本文件内
容如下。
#! /bin/sh
ifconfig wlan0 up              这句很重要,使用它来打开无线网卡的
iwconfig wlan0 key 123456
iwconfig wlan0 essid "rat-linux"
iwconfig wlan0 ap auto
ifconfig wlan0 192.168.1.30 netmask 255.255.255.0 

经过以上操作你的开发板可能已经连上路由器了,那么很好,你就不用接着往下看了,若果只是能够进行刷新网络和看到周围 网络,没有连上。。接着往下看
没有连上的原因很有可能是因为你的路由器的加密方式是wpa或者wpa2方式,不是wep的方式,这样的话只有两种办法,1、找一个支持Wep加密方式的路由器。2、使用wpa工具而不是wire-tools了,不过这个工具使用有点麻烦,下次再讲吧。

假设你的开发板现在已经连上路由器了,电脑和开发板已经是一个局域网的条件下怎么互传文件
两个工具:cuteftp和flashfxp,这两个都行,可以百度下载,然后在网址的一栏写上开发板的ip地址,有户名和密码没有的话就写anonymous


然后连接上了开发板,不过挂载的文件是一个叫做pub的目录,它的路径在开发板上是var/ftp/pub

    
阅读(1888) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~