一、软、硬件资源准备:

内核版本:linux-2.6.30.4

交叉编译器版本:4.3.3

wpa_supplicant工具:wpa_supplicant-0.7.3.tar ; openssl-0.9.8e.tar

 

开发板:TQ2440

无线网卡芯片:RTL8192CU,(淘宝上35元购买了一个USB接口的无线网卡:http://item.taobao.com/item.htm?spm=a1z09.5.0.0.H6U4Yy&id=25936180156&_u=kk57vmr1977

无线网卡驱动:RTL8192CU_linux_v3.0.2164.20110715(购买无线网卡时带有一张光盘,这里使用的是此光盘配套的驱动,也可从官网下载;下载地址:http://www.realtek.com.tw/downloads/downloadsView.aspx?Langid=1&PNid=48&PFid=48&Level=5&Conn=4&DownTypeID=3&GetDown=false&Downloads=true#RTL8192CU

 

 

二、无线网卡驱动移植:

1、驱动在压缩包中的driver目录(也是一个压缩包),将其解压到/opt/EmbedSky/linux-2.6.30.4/drivers/net/wireless下

2、将无线网卡驱动目录下Kconfig中的信息拷贝到上一级目录的Kconfig末尾

3、修改/opt/EmbedSky/linux-2.6.30.4/drivers/net/wireless目录下的Makefile:

在最后加上 obj-$(CONFIG_RTL8192CU) += rtl8188C_8192C/            (这个是驱动的相对路径,根据自己的实际情况修改rtl8188C_8192C为你自己的目录)

4、 配置内核

                 跳转到内核的目录 cd /opt/EmbedSky/linux-2.6.30.4

                 执行 make menuconfig

                 进入Device Drivers  --->

                               [*] Network device support  --->

                                              Wireless LAN  --->

                                                         将这一项打上信号:<*> Realtek 8192C USB WiFi

                  保存

5、make zImage

 

 

三、wpa_supplicant工具移植:

1、解压wpa_supplicant-0.7.3.tar 和 openssl-0.9.8e.tar

2、编译openssl库 

# cp wpa_supplicant-0.7.3/patches/openssl-0.9.8e-tls-extensions.patch openssl-0.9.8e/             (将wpa_supplicant中的补丁拷贝到openssl中)

#cd openssl-0.9.8e

#mkdir /usr/local/ssl

#vim Makefile

CC= arm-linux-gcc

AR= arm-linux-ar $(ARFLAGS) r

RANLIB= arm-linux-ranlib

INSTALLTOP=/usr/local/ssl

OPENSSLDIR=/usr/local/ssl

#make

#make install

这样就在/usr/local/ssl目录下安装了ssl库

#ls /usr/local/ssl

#bin  certs  include  lib  man  misc  openssl.cnf  private

后面编译wpa_supplicant要依赖openssl中的lib和include

3、编译wpa_supplicant

进入wpa_supplicant-0.7.3.tar.gz解压生成的wpa_supplicant-0.7.3/wpa_supplicant目录中:

#cp defconfig        .config

#vim .config

CC=arm-linux-gcc  -L/usr/local/ssl/lib/

#CC=/opt/brcm/hndtools-mipsel-uclibc/bin/mipsel-uclibc-gcc

CFLAGS += -I/usr/local/ssl/include

#CPPFLAGS += -I../src/include -I../../src/router/openssl/include

LIBS += -L/usr/local/ssl/lib

#make

经过编译后的wpa_supplicant源程序可以看到两个主要的可执行工具:wpa_supplicant和wpa_cli。wpa_supplicant是核心程序,它和wpa_cli的关系就是服务和客户端的关系:后台运行wpa_supplicant,使用wpa_cli来搜索、设置、和连接网络。

4、将可执行工具wpa_supplicant拷贝到制作的根文件系统/bin目录下。

 

四、开发板连接无线路由器:

1、启用USB WiFi网卡:

ifconfig wlan0 up

2、手动设置USB WiFi的IP:

ifconfig wlan0 192.168.0.111 netmask 255.255.255.0

3、在开发板的/etc目录中为连接创建配置脚本wpa_supplicant.conf,参考内容如下:

ctrl_interface=/var/run/wpa_supplicant                               (手动在var目录下创建了目录run,但此目录为空)
     network={
          ssid="GygcYjs"
          psk="xxxxxxxx"
    }

这里是针对wpa-psk加密方式的配置文件,且只对两个关键的选项ssid(要连接的无线路由器的ssid)、psk(要连接的无线路由器的连接密码)进行了配置。

另外一种是wep加密方式,其配置文件有所不同(http://blog.csdn.net/laotie1015/article/details/8529081给出了两种配置文件)。如何确定自己需要哪种类型的配置文件呢?可以参考如下图所示方式查看(将鼠标放在要连接的无线网络名称上就会有个弹出框):

4、使用wpa_supplicant启动连接:

wpa_supplicant –Dwext –iwlan0 -c/etc/wpa_supplicant.conf -B

可以看出上面的输出结果中有一条“ioctl[SIOCSIWAP]: Operation not permitted”的错误信息,目前还没有找到是什么原因造成的。但是,现在已经成功连接到了我们实验室的无线路由器,从第5步可以看出。

注:如果在运行此命令时出现:socket(PF_PACKET): Address family not supported by protocol

原因:内核不支持RAW socket

解决办法:编译内核时把CONFIG_PACKET选项打开

具体操作:进入内核顶层目录,使用vim编辑器编辑.config文件,添加如下行:

CONFIG_PACKET = y

5、测试:

ping 192.168.0.1

而且ping我自己的笔记本在本网段内的IP也是成功的:

 

 

参考:

http://blog.csdn.net/ti_tantbx/article/details/7037741

http://blog.csdn.net/laotie1015/article/details/8528899

http://blog.csdn.net/laotie1015/article/details/8529081

http://blog.csdn.net/duloveding/article/details/7483799

基于TQ2440开发板的WiFi模块的使用经验总结的更多相关文章

  1. [资料分享]迅为iTOP4412开发板-SDIO WiFi移植文档

    本文转自迅为:http://www.topeetboard.com 概述 近期需要把WiFi无线网络功能移植到iTOP-4412 开发平台,查阅了相关资料,经过一段时间的研究.调试,终于成功的将WiF ...

  2. 基于Neptune开发板的键盘蓝牙模块DIY指南

    目录: 1.下载开发板程序2.安装USB串口(CH340)驱动3.安装烧写工具4.烧写开发板程序 本期我们带来基于润和Neptune开发板(以下简称Neptune开发板)的键盘蓝牙模块DIY指南,利用 ...

  3. 基于uFUN开发板和扩展板的联网校准时钟

    项目概述 上周在uFUN试用群里看到管理员说试用活动快结束了,要抓紧完成评测总结,看大家的评测总结也都写了,我也不能落后啊!正好最近做的扩展板到手了,于是赶紧进行调试,做了一个不用校准的时钟,时钟这种 ...

  4. 运行在TQ2440开发板上以及X86平台上的linux内核编译

    一.运行在TQ2440开发板上的linux内核编译 1.获取源码并解压 直接使用天嵌移植好的“linux-2.6.30.4_20100531.tar.bz2”源码包. 解压(天嵌默认解压到/opt/E ...

  5. 基于uFUN开发板的心率计(三)Qt上位机的实现

    前言 上两周利用周末的时间,分别写了基于uFUN开发板的心率计(一)DMA方式获取传感器数据和基于uFUN开发板的心率计(二)动态阈值算法获取心率值,介绍了AD采集传感器数据和数据的滤波处理获取心率值 ...

  6. 基于uFUN开发板的RGB调色板

    前言 使用uFUN开发板配合Qt上位机,实现任意颜色的混合,Qt上位机下发RGB数值,范围0-255,uFUN开发板进行解析,然后输出不同占空比的PWM,从而实现通过RGB三原色调制出任意颜色. Qt ...

  7. 基于uFUN开发板的心率计(二)动态阈值算法获取心率值

    前言 上一篇文章:基于uFUN开发板的心率计(一)DMA方式获取传感器数据,介绍了如何获取PulseSensor心率传感器的电压值,并对硬件电路进行了计算分析.心率计,重要的是要获取到心率值,本篇文章 ...

  8. 基于 Arduino 开发板,这款插座是可编程且开源的

    基于 Arduino 开发板,这款插座是可编程且开源的 https://www.oschina.net/news/74861/open-source-socket https://github.com ...

  9. iTOP-4412开发板-LinuxC-继电器模块的测试例程

    平台:iTOP-4412开发板 实现:继电器模块测试例程 继电器的 C 的测试程序,C 测试程序可以在 Android系统,Qt 系统以及最小 linux 系统上运行,文档以 Android 系统上测 ...

随机推荐

  1. iOS中block简介-作用域

    转:http://www.2cto.com/kf/201401/269467.html 用block可以定义任意的代码片段,将其像对象一样传入另一个方法:它是c级别的语法,和C语言中的函数指针非常相似 ...

  2. JQuery攻略(六)菜单导航

    jQuery菜单导航的基础应用 此章节有 1.0 页面导航 1.01面包屑菜单 1.02菜单悬停 1.03菜单快捷键 1.04两个单独的菜单 1.05折叠菜单 1.01面包屑菜单 html <b ...

  3. .NET零基础入门10:打老鼠之数据存储

    一:数据库设计 到此为止,打老鼠游戏还不能保存每次游戏的成绩,我们今天完成的任务就是要存储成绩到SQLSERVER的数据库中. 在上节课中,我们已经知道了如何创建数据库,所有,先创建数据库" ...

  4. VS Code搭建.NetCore开发环境(一)

    一.使用命令创建并运行.Net Core程序 1.dotnet new  xxx:创建指定类型的项目console,mvc,webapi 等 2.dotnet restore :加载依赖项 dotne ...

  5. Set a Room Mailbox to Show Details of a Meeting in its Calendar – Office 365

    You may notice that meetings with a ‘Room’ mailbox will by default only show a “Busy” status. Many, ...

  6. Qt中printsupport的注意点和使用方法

    问题:Qt中包含QPrintDialog.QPrinter.QPrintPreviewDialog失败:在引入printsupport后报cpp:651: error: undefined refer ...

  7. perf 高级命令简介

    perf 高级命令简介 1.使用 tracepoint 当 perf 根据 tick 时间点进行采样后,人们便能够得到内核代码中的 hot spot. 使用ls命令来演示 sys_enter 这个tr ...

  8. AsyncHttpClient的连接池使用逻辑

    AsyncHttpClient的连接池结构很简单, NettyConnectionsPool内部重要的几个变量如下 // 连接池, 通过 host 区分不同的池 private final Concu ...

  9. 【ContestHunter】【弱省胡策】【Round6】

    KMP/DP+树链剖分+线段树/暴力 今天考的真是……大起大落…… String QwQ题意理解又出错了……(还是说一开始理解了,后来自己又忘了为什么是这样了?) 反正最后的结果就是……我当成:后面每 ...

  10. 一个简易的WebServer程序

    现在这个公司的it管理真不知道说什么了,我主要从事.net方向的开发,公司电脑配置还是win7了,可是自己没有安装iis的权限,it也拒绝安装,想玩玩web安全都不行.于是乎决定开发一个window ...