连续搞了几天,终于在这个周日的晚上搞出来了。流程如下:

一、下载源码
       http://hostap.epitest.fi/wpa_supplicant/

下载wpa_supplicant-0.7.3.tar.gz(openssl用到0.7.3提供的补丁)

#tar xvfz wpa_supplicant-0.7.3.tar.gz
       下载 www.openssl.org/source/openssl-0.9.8e.tar.gz
               #tar zxvf openssl-0.9.8e.tar.gz
二、编译openssl库

将wpa_supplicant中的补丁拷贝到openssl中
       # cpwpa_supplicant-0.7.3/patches/openssl-0.9.8e-tls-extensions.patchopenssl-0.9.8e/
       #cd openssl-0.9.8e
       #mkdir /usr/local/ssl
       #vim Makefile
    CC=arm-hismall-linux-gcc     
    AR=arm-hismall-linux-ar$(ARFLAGS) r
    RANLIB=arm-hismall-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

三、编译wpa_supplicant
进入wpa_supplicant-0.7.3.tar.gz解压生成的wpa_supplicant-0.7.3/wpa_supplicant目录中:
       #cp defconfig              .config
       #vim .config
CC=arm-hismall-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../openssl-0.9.7d/include \
#      -I../WRT54GS/release/src/include
LIBS += -L/usr/local/ssl/lib

#make

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

四、配置wpa_supplicant

在板子根目录/etc中建立wpa_supplicant.conf文件

当然在别的目录建立也行。但是要和后面的路径对应

配置的内容如下:

ctrl_interface=/var/run/wpa_supplicant
#ap_scan=1
network={
ssid="735"

key_mgmt=WPA-PSK
proto=WPA RSN
group=TKIP CCMP

pairwise=TKIP CCMP

#psk="1111122222"
#psk=bd3932b7e88772f675d913659fccc03a3043cd62cd08402c3e2c828ce5f509a5
psk=af488e53787f0ff88577319dd25bf829f328f0560ed985c6442ab659985e2380
}

当然我写出来的只是配置的一种可能,我相信这个配置的方法不只一种,当然要要和你的路由器上面的设置相对应。下面的psk是加密之后的密码,网络上面有这些参数的详解,感兴趣的可以上网搜搜。

五、运行测试

板子上电之后,登录进去,加载wifi的驱动,我自己的驱动是rt3070sta.ko,然后让网卡ra0启动

iiconfig ra0 192.168.1.111 up (这里我随机赋给了一个ip地址,可以不要)

然后运行 已经移植好的wpa_supplicant程序 :wpa_supplicant -Dwext-ira0 -c /etc/wpa_supplicant.conf -B

-B的意思是在后台运行,如果不加,可以看看指令打印出来的参数,具体参数的意义大家可以上网搜搜

过几秒钟 运行iwconfig指令 可以看见运行起来的网卡ra0 (iwconfig也是移植的指令)

ra0      Ralink STA  ESSID:"735" Nickname:"RT2870STA"
         Mode:Managed  Frequency=2.462GHz  Access Point:28:2C:B2:0D:08:82  
         Bit Rate=54 Mb/s  
         RTS thr:off   Fragmentthr:off
         Encryptionkey:FC1E-751D-9F0F-4706-2461-90B9-68AE-1404  Security mode:open
         Link Quality=100/100  Signal level:-54dBm  Noise level:-54 dBm
         Rx invalid nwid:0  Rx invalidcrypt:0  Rx invalid frag:0
         Tx excessive retries:0  Invalidmisc:0   Missed beacon:0

说明已经连接上路由器了,我之前设置了网卡ra0 192.168.111我现在ping路由器就可以ping通。

运行udhcpc -i ra0可以获得路由器分配给wifi模块的ip地址

运行route查看自己的路由 把默认的路由删掉,重新添加自己的路由器的网关:

route del default dev eth0

route add default gw 192.168.1.1 dev ra0(具体网关看情况定)

这样子以后就可以上外网了   可以ping www.baidu.com 看看!

下面我粘贴一个网上看见的好文章:

本文转自:http://forum.ubuntu.org.cn/viewtopic.php?f=155&t=314945
斗胆写个WPA2加密网络下net模式的安装指南,是因为实在被这个安装折磨得受不了了,N次的tty7失败,hcdp失败,还有更要命的kernelpanic -not syncing:vfs:unable to mount rootfs onunkown-block(0.0),甚至到最后光盘模式、图形界面下装个衍生版本Archbang,都无法成功。已经把我打击的不行了。好不容易收了它,自然得发泄一下。我会尽可能详细的讲解全部的安装经历,把每一个笔记碎片串起来,用以纪念被ArchLinux的安装折磨的这十几个日和夜。

1、先说明安装环境

一台P4 845G的老旧爱机(2G内存,160G SATA+320SATA硬盘),TPLink无线路由器,TPLink无线USB网卡

网络环境: 教育网

安装方式:U盘启动安装采用unetbootin-windows-494制作,(目前发现这个版本采用HDD模式刻录、启动表现最好,能正常启动,也少在初始化时出现错误。)

其中,TPLink无线路由器最初设置为

安全类型 WPA-PSK/WPA2-PSK
安全选项 WPA2-PSK
加密方法 AES

请各位看客,非常注意我的无线路由配置,已经一开始的最初二字,后面,我会饱含血泪的告诉诸位,为什么这些设置如此重要。

1、原始状态

原在160G SATA硬盘中装有一个 Windows7操作系统,并分有5个区,其中有1个11G和1个40G的区是完全空的,320GSATA硬盘所有分区全部都装有数据。

2、安装

1) 不知道是命苦还是,Arch鄙视我这个菜鸟,每次选择从CD安装都不行,无论是64位的NetinstallImage,还是64位的CoreImage,亦或者archlinux-2010.12-1-archboot.iso,都千篇一律的在选择CD模式后,弹出无法找到/src/core/pkg。没办法只好自己建了一个目录。Arch开始倒是很听话就通过了选择安装模式这一关,但是到了更新安装包时,就开始弹出tty7错误的信息,无法继续下去。只好铁了心的要用http/ftp模式安装。

2)被逼上梁山的感觉很不好,但是只要坚持,倒真能找到路。

我在ArchLinux的wiki和论坛里翻了很久之后,发现这篇回复。这也打开了我在命令行使用无线wpa2网络的钥匙。就连wiki,我个人觉得都需要以这篇为主干,混合在一起看,才能看懂。
https://bbs.archlinux.org/viewtopic.php?pid=734332#7

具体流程如下:

1、开始还是正常的流程,由U盘启动,进过初始化,进入到系统中,出现

代码:
archiso login:

根据提示,输入root,密码[空]。

如果你不能从U盘启动,并到不了登陆这一步,wpa2模式安装过程讲解完成后,会给你解决方法。

登陆后,输入 /arch/setup 开始进入蓝色的安装界面。

source selection -> net ->

仔细看此处的提示,你会发现可以在此时,用Alt+F2,切换到桌面2,设置好无线网络,再使用ALT+F1,切换回蓝色的安装界面,也就是桌面1。我也是这样做的。

ALT+F2,切换到桌面2,然后用root登陆。开始无线网络设置。

2、首先查看光盘里有没有wpa_supplicant.conf文件,它一般在/etc/wpa_supplicant.conf

3、备份/etc/wpa_supplicant.conf

代码:
# mv /etc/wpa_supplicant.conf/etc/wpa_supplicant.conf.original

基于我们现在还处于操作系统的安装过程,所以,wiki里的WPA GUI安装,在当下没有意义。

4、修改wpa_supplicant.conf

1)输入命令+修改,以我的无线网络的SSID号为Mywireless,密码为 secretpassphrase,为例。我就要按如下输入。

代码:
# wpa_passphrase Mywireless "secretpassphrase" >/etc/wpa_supplicant.conf

2)

代码:
nano /etc/wpa_supplicant.conf

在这里顺便赞一个nano,实在太顺手了,比起vi和vim,nano与windows下的文本输入使用方式更接近。

会看到wpa_supplicant.conf本应是新建的空白文档,已经被填入了如下数据。

代码:
network={
        ssid="mywireless"
        #psk="secretpassphrase"
        psk=7b271c9a7c8a6ac07d12403a 1f0792d7d92b5957ff8dfd56 481ced43ec6a6515
}

此处到关键点了,手动添加一下,变成这样

network={
ssid="Mywireless" # 请非常注意你ssid名的大小写。
proto=RSN #Robust Security Network:强健安全网络,表示这个网络配置比WEP模式要更安全。
key_mgmt=WPA-PSK # 请无论你是使用WPA-PSK,WPA2-PSK,都请在这里输入WPA-PSK。这在wpa_supplicant看来WPA-PSK,WPA2-PSK都是WPA-PSK,改成WPA2-PSK,它会不认识。
pairwise=CCMP TKIP #关键点, wpa_supplicant目前还不认AES的加密标准,因此即使你在此输入AES也没有用,自行web到路由器上改成CCMPTKIP吧,否则…… 否则 …… 我也不知道该怎么做。
group=CCMP TKIP #同上
psk=7b271c9a7c8a6ac07d12403a

1f0792d7d92b5957ff8dfd56 481ced43ec6a6515#wpa_supplicant算出来的密码。如果你自己会算,你就可以完全自己写这个wpa_supplicant.conf文件
}

如果还想添加另外的无线接入点。

代码:
# wpa_passphrase additional_ssid "additional_passphrase">> /etc/wpa_supplicant.conf

并用nano打开/etc/wpa_supplicant.conf文档,在文档顶端写入如下:

代码:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=wheel

3) 启动wlan

代码:
ifconfig wlan0 up

4) 搜索无线接入点

代码:
iwlist wlan0 scan

5)用ALT+F3切换到桌面3,以保证桌面2的相对干净,不会在后面进行网络连接时的大量刷屏所干扰。

6)启动wpa_supplicant协议

代码:
wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf -d

此时,wpa_supplicant开始快速刷屏,不停的传回目前的连接情况,注意看有没有哪些是mismatch,如果有,认真回去改wpa_supplicant里的SSID或者 key_mgmt、pairwise、group。

再强调一遍

a、不要写成WPA2-PSK,即使你真的是,也要写成WPA-PSK。
b、如果用的是AES加密标准,wpa_supplicant是不能识别的。自行在路由器上改成CCMP TKIP。

7)可选步骤,如果你网络在上一步已经提示连接上,且你的路由器采用的dhcp分配IP地址,那么请输入。

代码:
dhcpcd wlan0

8)用ALT+F1切换回久违的蓝色Archlinux安装界面。

如果你用的是静止IP,那么可以在后一步自行输入IP 掩码,网关信息。

到此,在wpa2加密环境下,进行无线网络连接的最关键部分就完成了。

====================================================================================

推荐一个教育网下载很快的Archlinux镜像站

记住,在图文安装Archlinux模式下,输入更新镜像地址,请只输入顶级域名部分。

代码:
Shttp://mirror.csclub.uwaterloo.ca/

直接在mirror.lst中手工加入,则需注意要添加一些尾巴。如: /archlinux/$repo/os/$arch[/code

代码:
Server =http://mirror.csclub.uwaterloo.ca/archlinux/$repo/os/$arch[/code

=====================================================================================

rc.conf
[code]LOCALE="en_US.UTF-8"#没改成zh_CN,以避免出现命令行下出现中文乱码和方块的情况,就让它都用英文吧。图形界面有其他地方可以改。
HARDWARECLOCK="UTC"
TIMEZONE="Asia/Shanghai"
KEYMAP="us"
CONSOLEFONT=Lat2-Terminus16
CONSOLEMAP=
USECOLOR="yes"
MOD_
USELVM="no"
HOSTNAME=""
wlan0="dhcp" #此处wlan方式安装完后,程序就已经自行改好了。
INTERFACES=(wlan0) #此处wlan方式安装完后,程序就已经自行改好了。
gateway="default gw 192.168.0.1"请写自己的网关地址。
ROUTES=(!gateway)
DAEMONS=(syslog-ng net-profiles)[/code]后面要添加这两个。

locale.gen 拉到该文件的最下面。
[code]zh_CN.GB18030 GB18030 去掉前面的#
zh_CN.GBK GBK 去掉前面的#
zh_CN.UTF-8 UTF-8 去掉前面的#
zh_CN GB2312 去掉前面的#

不得不说,ArchLinux的中文格式还是挺全的。

在华为海思上面实现wpa_supplicant移植和最终连接上网相关推荐

  1. 07-20210305在WIN10下通过USB口给华为海思Hi3516DV300刷机(鸿蒙系统)

    07-20210305在WIN10下通过USB口给华为海思Hi3516DV300刷机(鸿蒙系统) 2021/3/5 17:26 https://blog.csdn.net/cocoron/articl ...

  2. 08-20210305在WIN10下通过网口给华为海思Hi3516DV300刷机(鸿蒙系统)

    08-20210301在WIN10下通过网口给华为海思Hi3516DV300刷机(鸿蒙系统) 2021/3/5 11:03 https://bbs.elecfans.com/jishu_2002000 ...

  3. 在WIN10下通过网口给华为海思Hi3516DV300刷机(鸿蒙系统)

    08-20210301在WIN10下通过网口给华为海思Hi3516DV300刷机(鸿蒙系统) 2021/3/5 11:03 https://bbs.elecfans.com/jishu_2002000 ...

  4. 52-20210322华为海思Hi3516DV300的linux系统编译(eMMC模式)1

    52-20210322华为海思Hi3516DV300的linux系统编译(eMMC模式) 2021/3/22 18:00 请严重注意: 本文所使用的的SDK是:Hi3516CV500R001C02SP ...

  5. 12-20210225华为海思Hi3518EV300在鸿蒙系统下测试WIFI(AP+STATION模式)

    12-20210225华为海思Hi3518EV300在鸿蒙系统下测试WIFI(AP+STATION模式) 2021/2/25 10:45 [HarmonyOS HiSpark_IPC_DIY开发套件] ...

  6. 51-20210316华为海思Hi3516DV300的linux系统编译1(SPI模式)

    51-20210316华为海思Hi3516DV300的linux系统编译 2021/3/16 10:42 https://xueqiu.com/7970718062/159110439 官井想开挖掘机 ...

  7. 56-20210402华为海思Hi3516DV300的linux系统下读取TF卡(eMMC模式)

    56-20210402华为海思Hi3516DV300的linux系统下读取TF卡(eMMC模式) 2021/4/2 15:02 https://xueqiu.com/7970718062/159110 ...

  8. 06-20210224华为海思Hi3518EV300鸿蒙系统的uboot编译

    06-20210224华为海思Hi3518EV300鸿蒙系统的uboot编译 2021/2/24 15:51 https://blog.csdn.net/qq_31765191/article/det ...

  9. 05-20210301在WIN10下通过串口给华为海思Hi3516DV300刷机(鸿蒙系统)

    05-20210301在WIN10下通过串口给华为海思Hi3516DV300刷机(鸿蒙系统) 2021/3/1 15:11 (!!!!请严重注意,串口烧录需要花很久很久的时间:2小时6分41秒.) h ...

最新文章

  1. java投票锁_Java并发编程锁之独占公平锁与非公平锁比较
  2. leetcode算法题--最后一块石头的重量 II★
  3. Java程序结合Aapche Ant进行远程服务器文件备份
  4. 使用xmanager连接centos5.5
  5. 【数学建模】MATLAB从入门到精通:Logistic模型原理及应用案例(附MATLAB代码)
  6. 福大软工1816:项目测评
  7. java 弹出下载_java如何实现下载弹出的对话框
  8. 其它综合-CentOS7 忘记root密码
  9. 关于Gossip协议的几个问题
  10. java 线程池数量_java线程池及创建多少线程合适
  11. IBM将剥离传统IT基础设施部门;迅雷前CEO陈磊涉嫌职务侵占罪被调查 ;Python 3.9发布|极客头条
  12. 《Git与Github使用笔记》分享3款Git可视化工具
  13. IBM SPSS Statistics 25 安装教程
  14. vsode 编译报错:main.c:4:10: fatal error: iostream: 没有那个文件或目录
  15. jq正则过滤html style,Jqgrid利用正则匹配表达式正确移除html标签
  16. 纯小白Python爬取东方财富网研报内容并通过机器学习的SVM模型进行文本分析(一)
  17. 软负载均衡和F5负载均衡(硬负载均衡)区别
  18. Gazebo物理仿真环境搭建 实例
  19. eclipse鼠标变成十字架
  20. html 页眉选项卡,步骤如下: (1)在插入选项卡的页眉和页脚选项组中单击【页眉】按钮...

热门文章

  1. Javascript手把手教你做商品放大镜效果
  2. centos7下使用yum安装ifconfig
  3. 儿童台灯哪个牌子对眼睛好?2022精选眼科医生推荐护眼灯
  4. 黑马程序员_毕老师_CSS_JS(上)
  5. CTPAT认证辅导,安全程序紧对于那些符合C-TPAT认证条件的商业伙伴
  6. 《随遇而安》读书摘记
  7. JS-面向对象放大镜
  8. 华为博士招聘上机考试题目_华为招聘机试题目
  9. android仿微信下拉二楼_Android仿微信下拉列表实现
  10. .NET开发资源精华收集