USB无线网卡(Zydas)移植到Linux-2.6.22.6

/*2011-3-29 -- 2011-3-30*/

 

Kernel version :2.6.22.6
Crosstool      :arm-linux-gcc-3.4.1
Board          :FL2440
System         :Ubuntu 10.10
Source         :zd1211-firmware-1.4.tar.bz2, wireless_tools.29.tar.gz

 

1.配置内核:
/*一般采用WiFi Zyda 2611的网卡,注意在内核中有一个ZB1201的无法驱动比较新的网卡*/

 

Networking--->
     [*]Networking support
     Wireless-->
           <*>Generic IEEE 802.11 Networking Stack (mac80211)
           <*>Generic IEEE 802.11 Networking Stack
           <*>   Software MAC add-on to the IEEE 802.11 networking stack


Device Drivers--->
     Netword device support--->
          Wireless LAN--->
               [*]Wireless LAN (IEEE 802.11)
               <M>ZyDAS ZD1211/ZD1211B USB-wireless support

 

注意:要使用firmware,必须要在配置内核时选上:

Device Drivers  --->   
     Generic Driver Options  --->     
          <*> Userspace firmware loading support


否则会出现: Unknown symbol release_firmware 和: Unknown symbol request_firmware 的错误。


2.make uImage

 

3.make modules /*编译动态模块*/

 

4.tar xvjf zd1211-firmware-1.4.tar.bz2
mkdir -p /lib/firmware/zd1211/
cp zd1211-firmware/*   lib/firmware/zd1211/

 

5.此时应该安装应用层的工具.以便在Linux 在ifconfig 下能使用网络结点操作.
一般使用wireless_tools.29.tar.gz这一工具配置结点.

 

cd /home/arm/work/source
tar zxvf wireless_tools.29.tar.gz

cd wireless_tools.29


vi Makefile
修改Makefile中的以下代码:
## Compiler to use (modify this for cross compile).
CC = gcc
## Other tools you need to modify for cross compile (static lib only).
AR = ar
RANLIB = ranlib

 

修改后代码:

 

## Compiler to use (modify this for cross compile).
CC = arm-linux-gcc
## Other tools you need to modify for cross compile (static lib only).
AR = arm-linux-ar
RANLIB = arm-linux-ranlib

 

6.再执行make,编译完成后,将生成的iwconfig,iwlist文件拷贝到FL2440的根文件系统中的/bin目录下,将
libiw.so.29拷贝到/lib目录下(这里我是用NFS挂PC机上的根文件系统):

cp iwconfig iwlist /home/arm/rootfs/bin/
cp libiw.so.29 /home/arm/rootfs/lib/

 

7.启动开发板FL2440,执行 insmod zd1211rw.ko 后插入无线网卡显示如下:
# usb 1-1.1: new full speed USB device using s3c2410-ohci and address 3
usb 1-1.1: configuration #1 chosen from 1 choice
usb 1-1.1: reset full speed USB device using s3c2410-ohci and address 3
zd1211rw 1-1.1:1.0: firmware version 4725
zd1211rw 1-1.1:1.0: zd1211b chip 0ace:1215 v4810 full 00-02-72 AL2230_RF pa0 g-S
zd1211rw 1-1.1:1.0: eth1

 

如果网卡安装成功,应该能在 用 cat /proc/net/wireless 目录下看到网卡,( 注意,在2.6.21以前,要配置CONFIG_NET_RADIO才会显示这个文件系统.更高的版本是自动支持的.):
Inter-| sta-|   Quality        |   Discarded packets               | Missed | WE
 face | tus | link level noise |  nwid  crypt   frag  retry   misc | beacon | 22
  eth1: 0000    0     0     0        0      0      0      0      0        0

 

由以上看到无线网卡为eth1.

 

8.启动FL2440开发板,进入linux命令行后,执行ifconfig eth1 up,启动无线网卡。再执行iwlist scanning,此命令可以搜索到
可用的无线网络接入点。我这里使用学校的无线网,ESSID是"CMHN_HNU",执行此命令后就会下列输出:
Cell 22 - Address: 3C:E5:A6:5F:FF:21
                    ESSID:"CMHN_HNU"
                    Protocol:IEEE 802.11bg
                    Mode:Master
                    Channel:11
                    Frequency:2.462 GHz (Channel 11)
                    Encryption key:off
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 6 Mb/s; 9 Mb/s
                              11 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s; 36 Mb/s
                              48 Mb/s; 54 Mb/s
                    Quality=100/100  Signal level=23/100
                    Extra: Last beacon: 140ms ago

 

如果无线网络需要密码,可以使用如下的命令设置密码。
iwconfig eth1 key xxxxxx /*xxxxxx换为实际密码*/
为了能接无线网,还要使用下面的命令设置ESSID
iwconfig eth1 essid "CMHN_HNU"
其它的参数可以都采用默认的,不用再设了。可以使用下面的命令加入无线网了。
 
iwconfig eth1 ap auto
再执行 iwconfig eth1 ,就可以看到下面的信息。
eth1      IEEE 802.11b/g  ESSID:off/any  Nickname:"zd1211"
          Mode:Managed  Frequency:2.472 GHz  Access Point: Invalid
          Bit Rate=1 Mb/s
          Encryption key:off
          Link Quality:0  Signal level:0  Noise level:0
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0


这就表示已接入无线网。
最后,为无线网卡指定IP地址。命令如下
ifconfig eth1 192.168.1.30 netmask 255.255.255.0
我的开发主机和无线网卡处于同一网段,因此是可以相互PING通的。因此可以用从开发主机上PING无线网卡的IP地址的方法来确网
卡是否工作正常。从主机上执行ping 192.168.1.30,正常PING通。
至此,无线网卡安装全部完成。
最后,为了方便配置,可以将上述的配置命令写入linux脚本文件,以后,只要执行此脚本,即可完成上述步骤的配置。脚本文件内
容如下:

 

#! /bin/sh
insmod zd1211rw.ko
#iwlist scanning
ifconfig eth1 up
iwconfig eth1 essid "CMHN_HNU"
iwconfig eth1 ap auto
#iwconfig eth1
ifconfig eth1 115.157.200.37 netmask 255.255.248.0

 

参考链接:
Linux 增加Zydas WiFi模块:
http://www.rosoo.net/a/201011/10510.html
移植wifi无无线网卡到mini2440上全过程:
http://linux.chinaunix.net/techdoc/install/2010/01/19/1154592.shtml
Linux设备模型(热插拔、mdev 与 firmware):
http://blog.csdn.net/huaciom/archive/2010/12/24/6097254.aspx

你可能感兴趣的:(linux,encryption,compiler,makefile,Signal,networking)