转载自:http://blog.sina.com.cn/s/blog_546ced060101cmru.html

   

移植wifi无线网卡到mini2440上全过程 前段时间移植了U-boot和linux2.6.27.9到mini2440上,最近有点空,手头有一个usb接口的zd1211b芯片的wifi无线网卡(PSP和NDSL玩家都知道的神卡),于是决定进行wifi无线网卡在嵌入式中的移植。要在内核中加入此无线网卡的驱动。我是在我移植的linux2.6.27.9内核上移植的。关于内核移植,请看我的这篇文章。http://blog.chinaunix.net/u2/75270/showart.php?id=1796658 
新版的linux2.6.27.9已自带zd1211b的驱动。此驱动在rat-linux-2.6.27.9/drivers/net/wireless/zd1211rw/中。要让此驱动生效,得修改内核配置。
选中 networking support-->wireless-->Generic IEEE 802.11 Networking Stack
(mac80211) 选中 device drivers-->netword device support-->wirelss
lan-->ZyDAS ZD1211/ZD1211B USB-wireless support 重新编译内核。下载到板子中,重启。加入无线网卡。出现
usb 1-1: USB disconnect, address 2
usb
1-1: new full speed USB device using s3c2410-ohci and address 3
usb
1-1: configuration #1 chosen from 1 choice
usb
1-1: reset full speed USB device using s3c2410-ohci and address 3
zd1211rw
1-1:1.0: phy1
表示无线网卡已被识别。使用cat
/proc/net/wireless 命令,可以查看到系统中多了个wlan0网卡。此时,网卡还没工作。使用命 令ifconfig wlan0
up则出现firmware:requesting zd1211,然后没反应了,这是因为没有firmware的原因,从这里 http://downloads.sourceforge.net/zd1211/zd1211-firmware-1.4.tar.bz2?modtime=1191498990&big_mirror=0
下载到zd1211
firmware
1.4后,根据firmware的说明,将其中的zd1211_*文件拷贝到根文件系统/lib/firmware/zd1211目录中。这里再执行ifconfig
wlan0 up命令,则出现 firmware: requesting zd1211/zd1211b_ub
firmware:
requesting zd1211/zd1211b_uphr
zd1211rw
1-1:1.0: firmware version 4725
zd1211rw
1-1:1.0: zd1211b chip 0ace:1215 v4810 full 00-02-72 AL2230_RF pa0 g--N
网卡硬件开始正常工作了。其中,0ace:1215是网卡的ID,可以用主机linux系统命令lsusb查看到。但此时,网卡还没被正确配置,还不能正常使用。要正常使用无线网卡,还要正确配置。linux下的配置工具是wireless-tools,可以在这里下载到它的最新版。 http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html 下载后,将源代码解压。再修改其中的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
mini2440的根文件系统中的/bin目录下,将
libiw.so.29拷贝到/lib目录下。启动mini2440开发板,进入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

嵌入式wifi iwconfig编译的更多相关文章

  1. linux下使用无线网卡的命令行方法(wifi,iwconfig)

    原文地址:linux下使用无线网卡的命令行方法(wifi,iwconfig) 作者:andyhzw (1)首先关闭开发板的有线网卡 [root@FriendlyARM /]# ifconfig eth ...

  2. [转]嵌入式SQC文件编译

      Src Url:http://blog.csdn.net/cws1214/article/details/12996351   A.预编译部分  1.预编译DB2篇 1.1 什么是DB2预编译 在 ...

  3. 嵌入式 Linux下编译并使用curl静态库

    #x86 ./configure --disable-shared --enable-static --disable-ftp --disable-ipv6 --disable-rtsp --disa ...

  4. [转][linux][centos]嵌入式 Linux下编译并使用curl静态库

    #x86 ./configure --disable-shared --enable-static --disable-ftp --disable-ipv6 --disable-rtsp --disa ...

  5. 附录三 嵌入式C程序的编译与调试

    课程回顾 C语言库的特性和发展 C语言库的常用库函数 标准库函数的特色应用 git@github.com:Kevin-Dfg/Data-Structures-and-Algorithm-Analysi ...

  6. 【课程分享】深入浅出嵌入式linux系统移植开发 (环境搭建、uboot的移植、嵌入式内核的配置与编译)

    深入浅出嵌入式linux系统移植开发 (环境搭建.uboot的移植.嵌入式内核的配置与编译) 亲爱的网友,我这里有套课程想和大家分享,假设对这个课程有兴趣的,能够加我的QQ2059055336和我联系 ...

  7. Redpine的Lite-Fi解决方案获Wi-Fi CERTIFIED认证

    应用微电路公司(AMCC)和Redpine Signals日前共同宣布,已合作开发出新一代基于Power Architecture的嵌入式Wi-Fi连接性解决方案,目前双方已经在AMCC的PowerP ...

  8. 交叉编译问题记录-嵌入式环境下 GDB 的使用方法

    本文为作者原创,转载请注明出处:https://www.cnblogs.com/leisure_chn/p/10693247.html 本文以嵌入式 Linux 环境下的 gdb 使用为例,记录交叉编 ...

  9. centos6.5安装无线网卡驱动并配置wifi

    1.驱动下载地址: RTL8188无线网卡驱动下载 链接:https://pan.baidu.com/s/1ms-EbQCDxa76jPhYUPmr9Q 密码:r2vu 2.安装步骤: [root@c ...

随机推荐

  1. c++程序设计第三版例题1.2 求两数的和

    #include <iostream>using namespace std; int main(){ //求两数之和 int a,b,sum; a=11; b=22; sum=a+b; ...

  2. python之斐波纳契数列

    斐波纳契数列 斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,676 ...

  3. selinux详解及配置文件

    selinux详解 selinux 的全称是Security Enhance Linux,就是安全加强的Linux.在Selinux之前root账号能够任意的访问所有文档和服务 : 如果某个文件设为7 ...

  4. kubernetes搭建dashboard-v1.10.1

    一键部署脚本(或者可使用helm安装): wget https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/ ...

  5. Python知识点入门笔记——基本控制流程

    复合赋值语句 在Python中,可以使用一次赋值符号,给多个变量同时赋值:                  划重点:age_1,age_2 = age_2,age_1这种操作是Python独有的 i ...

  6. 使用shell脚本添加用户

    该文演示如何使用shell脚本完成添加用户,首先进行一个判断,如果用户存在,提示该用户已经存在,否则进行添加新的用户. 示例代码如下: #!/bin/bash grep_user() { R=`gre ...

  7. UVA - 10213 How Many Pieces of Land?(欧拉公式 + 高精度)

    圆上有n个点,位置不确定.问这些点两两连接成的线段,最多可以把圆划分成多少块平面? 欧拉公式:V-E+F = 2,V是点数,E是边数,F是面数. 答案是F=C(n,4)+C(n,2)+1,看的别人推的 ...

  8. POJ 2763 Housewife Wind 树链拋分

    一.前言 这破题WA了一天,最后重构还是WA,最后通过POJ讨论版得到的数据显示,我看上去是把某个变量写错了..于是,还是低级错误背锅啊....代码能力有待进一步提升2333333 二.题意 某家庭主 ...

  9. Redis实现之字符串

    简单动态字符串 Redis中的字符串并不是传统的C语言字符串(即字符数组,以下简称C字符串),而是自己构建了一种简单动态字符串(simple dynamic string,SDS),并将SDS作为Re ...

  10. easyui tree datagrid动态添加表头和表格数据,动态弹出框,修改和删除按钮

    1.要有获取表头的URL和表格的URL 背景:点击树的一个节点,就加载一个表格,这个表格是动态的,表头和表格数据都是动态的 解决方案:需要两个URL,一个是获取表头的URL,一个是获取表格数据的URL ...