1. 程式人生 > >linux下移植wifi之安裝wpa_supplicant及wpa_supplicant其操作(六)

linux下移植wifi之安裝wpa_supplicant及wpa_supplicant其操作(六)

第五節:安裝wpa_supplicant及wpa_supplicant其操作

概念:
     wpa_supplicant : 可用於下述"認證/加密"
     
     All security modes have been verified to work (at least complete authentication and successfully ping a wired host):
    - plaintext
    - static WEP / open system authentication
    - static WEP / shared key authentication
    - IEEE 802.1X with dynamic WEP keys
    - WPA-PSK, TKIP, CCMP, TKIP+CCMP
    - WPA-EAP, TKIP, CCMP, TKIP+CCMP
    - WPA2-PSK, TKIP, CCMP, TKIP+CCMP
    - WPA2-EAP, TKIP, CCMP, TKIP+CCMP
    
    分析: 一般使用 wpa-psk,wpa2-psk. 因為*.eap 是需要伺服器的。


    Download wpa_supplicant soft: http://w1.fi/wpa_supplicant/
    
    下載最新版本:wpa_supplicant-2.6版本。
    
    檢視README得有效資訊:
    This package may include either wpa_supplicant, hostapd, or both. See
README file respective subdirectories (wpa_supplicant/README or
hostapd/README) for more details.

    那就再看wpa_supplicant/README。
    
    由README可知,需要下載庫 openssl. 第三節我們已經安裝了。需要.config。

1. 解壓
   tar -xzf wpa_supplicant-2.6.tar.gz
   cd wpa_supplicant-2.6/wpa_supplicant
2. 編譯與安裝
   cp  deconfig .config
   修改.config,使能CONFIG_LIBNL32=y
   修改Makefile ,加上libnl 和 opnssl的標頭檔案 和 lib庫。
   
    CFLAGS += -I/home/clh/work/libnl-3.2.25/tmp/include/libnl3
    LDFLAGS += -L/home/clh/work/libnl-3.2.25/tmp/lib

    CFLAGS += -I/home/clh/work/openssl-1.0.1o/tmp/include
    LDFLAGS += -L/home/clh/work/openssl-1.0.1o/tmp/lib
    
   make CC=arm-linux-gcc
   make DESTDIR=$PWD/tmp install
3. 將生成的,複製到根檔案系統。
   cp tmp/usr/local/sbin/* /opt/rootfs/bin/     /*wpa_supplicant, wpa_cli, */

   
4. 操作
   在操作之前,檢視檔案wpa_supplicant/README。內容:Command line options
   
  usage:
  wpa_supplicant [-BddfhKLqqtuvW] [-P<pid file>] [-g<global ctrl>] \
        [-G<group>] \
        -i<ifname> -c<config file> [-C<ctrl>] [-D<driver>] [-p<driver_param>] \
        [-b<br_ifname> [-MN -i<ifname> -c<conf> [-C<ctrl>] [-D<driver>] \
        [-p<driver_param>] [-b<br_ifname>] [-m<P2P Device config file>] ...

options:
  -b = optional bridge interface name
  -B = run daemon in the background
  -c = Configuration file
  -C = ctrl_interface parameter (only used if -c is not)
  -i = interface name
  -d = increase debugging verbosity (-dd even more)
  -D = driver name (can be multiple drivers: nl80211,wext)
  -f = Log output to default log location (normally /tmp)
  -g = global ctrl_interface
  -G = global ctrl_interface group
  -K = include keys (passwords, etc.) in debug output
  -t = include timestamp in debug messages
  -h = show this help text
  -L = show license (BSD)
  -p = driver parameters
  -P = PID file
  -q = decrease debugging verbosity (-qq even less)
  -u = enable DBus control interface
  -v = show version
  -W = wait for a control interface monitor before starting
  -M = start describing matching interface
  -N = start describing new interface
  -m = Configuration file for the P2P Device

drivers:
  nl80211 = Linux nl80211/cfg80211
  wext = Linux wireless extensions (generic)
  wired = wpa_supplicant wired Ethernet driver
  roboswitch = wpa_supplicant Broadcom switch driver
  bsd = BSD 802.11 support (Atheros, etc.)
  ndis = Windows NDIS driver

In most common cases, wpa_supplicant is started with

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

This makes the process fork into background.

The easiest way to debug problems, and to get debug log for bug
reports, is to start wpa_supplicant on foreground with debugging
enabled:

wpa_supplicant -c/etc/wpa_supplicant.conf -iwlan0 -d

If the specific driver wrapper is not known beforehand, it is possible
to specify multiple comma separated driver wrappers on the command
line. wpa_supplicant will use the first driver wrapper that is able to
initialize the interface.

wpa_supplicant -Dnl80211,wext -c/etc/wpa_supplicant.conf -iwlan0


分析:

wpa_supplicant [-BddfhKLqqtuvW] [-P<pid file>] [-g<global ctrl>] \
        [-G<group>] \
        -i<ifname> -c<config file> [-C<ctrl>] [-D<driver>] [-p<driver_param>] \
        [-b<br_ifname> [-MN -i<ifname> -c<conf> [-C<ctrl>] [-D<driver>] \
        [-p<driver_param>] [-b<br_ifname>] [-m<P2P Device config file>] ... 是命令格式
        
options : 引數說明

在大多數常見情況下,wpa_supplicant的啟動,都是以這種方式配置的wpa_supplicant -B -c / etc / wpa_supplicant.conf -iwlan0。這種配置方式,使得wpa_supplicant執行在後臺。
若要獲取bug除錯日誌,可以這樣設定,wpa_supplicant -c / etc / wpa_supplicant.conf -iwlan0 -d。

使用:
配置可以參考examples下的。plaintext.conf, wep.conf, wpa2-eap-ccmp.conf, wpa-psk-tkip.conf,複製到/etc下,按自己需要進行修改。

mkdir -p /var/run/wpa_supplicant
① OPEN
wpa_supplicant -B -c/etc/plaintext.conf -iwlan0
wpa_cli -iwlan0 status  // 檢視狀態
ifconfig wlan0 192.168.43.88
ping 192.168.43.1

配置檔案內容為:
ctrl_interface=/var/run/wpa_supplicant
network={
        ssid="hello"
        key_mgmt=NONE
}

② WEP/WEP
wpa_supplicant -B -c/etc/wep.conf  -iwlan0
wpa_cli -iwlan0 status  // 檢視狀態
ifconfig wlan0 192.168.43.88
ping 192.168.43.1

配置檔案:
ctrl_interface=/var/run/wpa_supplicant
network={
        ssid="hello"
        key_mgmt=NONE
        wep_key0="hellogrilclh0"
        wep_tx_keyidx=0   //註釋: 表示用第幾個密碼
}

③WPA(TKIP)
wpa_supplicant -B -c/etc/wpa-psk-tkip.conf  -iwlan0
wpa_cli -iwlan0 status  // 檢視狀態
ifconfig wlan0 192.168.43.88
ping 192.168.43.1

配置檔案
ctrl_interface=/var/run/wpa_supplicant  # 一個目錄,用於wpa_supplicant和wpa_cli的socket通訊
network={
        ssid="hello"
        proto=WPA  # proto: list of accepted protocols, 可取WPA,RSN
                   # If not set, this defaults to: WPA RSN
        key_mgmt=WPA-PSK # 認證方式
                         # If not set, this defaults to: WPA-PSK WPA-EAP
        pairwise=TKIP    # If not set, this defaults to: CCMP TKIP
        group=TKIP       # If not set, this defaults to: CCMP TKIP WEP104 WEP40 
        psk="hellogrilclh0"
}

④ WPA2(AES)
wpa_supplicant -B -c/etc/wpa_wpa2.conf  -iwlan0
wpa_cli -iwlan0 status  // 檢視狀態
ifconfig wlan0 192.168.43.88
ping 192.168.43.1

配置檔案:
ctrl_interface=/var/run/wpa_supplicant
network={
        ssid="hello"
        psk="hellogrilclh0"
}

⑤ 配置檔案裡設定多個network:             //第一個沒有連線到的話,連線第二個。
ctrl_interface=/var/run/wpa_supplicant
network={
        ssid="hello"
        psk="hellogrilclh0"
}
network={
        ssid="vivo"
        psk="vivotest"
}

⑥ 訪問外網:
修改/etc/resolv.conf新增DNS:
nameserver 192.168.43.1

設定閘道器:
route add default gw 192.168.43.1

然後訪問外網
ping www.baidu.com


擴充套件:
wpa_cli可工作於"命令模式"和"互動模式" 下面是wpa_cli命令說明:

status  /*檢視當前連線狀態*/
scan    /*啟動一次wifi熱點掃描*/
scan_result  /*顯示上一次掃描的結果*/
add_network  /* 新增網路,返回一個編號 */
set_network  /* 設定網路的加密形式和ssid,祕鑰 */
select_network /* 使能網路,並且禁用其他網路 */
save_config  /* 儲存配置 */

例如:
# Configure a network using the newly added network interface:
wpa_cli -iwlan0 add_network
wpa_cli -iwlan0 set_network 0 ssid '"test"'
wpa_cli -iwlan0 set_network 0 key_mgmt WPA-PSK
wpa_cli -iwlan0 set_network 0 psk '"12345678"'
wpa_cli -iwlan0 set_network 0 pairwise TKIP
wpa_cli -iwlan0 set_network 0 group TKIP
wpa_cli -iwlan0 set_network 0 proto WPA
wpa_cli -iwlan0 enable_network 0


問題注意點: 設定板子ip的時候,和無線網路設定在一個網段。

相關推薦

linux移植wifi安裝wpa_supplicantwpa_supplicant操作()

第五節:安裝wpa_supplicant及wpa_supplicant其操作 概念:      wpa_supplicant : 可用於下述"認證/加密"            All security modes have been verified to work (a

linux移植wifi安裝hostapd及其操作(八)

安裝 hostapd 1.  下載,解壓     下載原始碼: http://w1.fi/hostapd/     tar -xvf hostapd-2.6.tar.gz     cd hostapd-2.6/hostapd      2.     編譯、安裝     cp

linux移植wifi安裝iw and iw操作(五)

第四節 安裝iw and iw操作 一、 先檢視README,獲取了三個有用點:     1.    This is 'iw', a tool to use nl80211(iw需要nl80211)     2.  To build iw, just enter 'make'

linux移植wifi概念介紹(一)

詳細介紹linux下移植wifi的步驟.docx 目錄 Linux系統下移植wifi模組,使其正常工作。包括兩部分內容,第一部分是識別無線裝置,並且正確安裝驅動程式。第二部分是選擇管理無線連線的方法。本文將介紹這兩部分內容。一、   背景配置w

deepin linux新增源,安裝git配置msf的postgresql資料庫

由於機緣巧合用上了深藍linux又想在其下安裝kali的工具但是源新增無效,在閱覽大批網文後開闢一條奇淫技巧安裝gitsudo apt-get install git新增kali源(藉助katoolin從git上新增源到本地)如何使用git clone https://git

linuxredis與phpredis安裝詳解與簡單操作

首先下載redis安裝包 [[email protected] ~]#wget http://download.redis.io/releases/redis-3.0.2.tar.gz [[email protected] ~]# tar xzf re

Linux使用Corosync+Pacemaker詳解安裝

corosync pacemaker 珠聯璧合 Corosync詳解OpenAIS概述OpenAIS是基於SA Forum 標準的集群框架的應用程序接口規範。OpenAIS提供一種集群模式,這個模式包括集群框架,集群成員管理,通信方式,集群監測等,能夠為集群軟件或工具提供滿足 AIS標準的集

linux硬盤的安裝分區fdisk

硬盤分區 fdisk 摘要:本文將通過虛擬機VMware模擬增加新硬盤來介紹linux下對新增硬盤的分區及安裝。在本文中,將通過虛擬機增加一個10G的SCSI接口的虛擬硬盤,然後對這塊新的虛擬硬盤建立3個分區,在第1個和第3個分區上建立ext3fs文件系統,把第2個分區留作swap交換分區。首先,將硬

linuxelasticsearch、elk 安裝、配置、排錯示例

簡介 開始學習安裝elasticsearch時,出現過很多錯誤,導致無法進行安裝的操作。該文章是供自己安裝的總結及後面的小夥伴們能更好更快的解決問題。安裝中出現過問題會在下面描述。 一 、部署準備 檔案準備 elk-5.4.0.tar.gz 部署環境 C

linuxboost庫的安裝使用

1.下載原始檔 去官網下載:http://www.boost.org/ 這裡下載最新版本 wget https://dl.bintray.com/boostorg/release/1.64.0

linuxmysql的解除安裝安裝全過程遇到"MySQL提示:The server quit without updating PID file問題的解決辦法"

1、查詢以前是否裝有mysql 命令:rpm -qa|grep -i mysql 可以看到mysql的兩個包: mysql-4.1.12-3.RHEL4.1 mysqlclient10-3.23.58-4.RHEL4.1 2、刪除mysql 刪除命令:rpm -e --nodeps 包名 (

kali linux的中文輸入法安裝iceweasel漢化

昨天搞了一下午包括ubuntu的解除安裝、kali linux&win7雙系統安裝、中文輸入法的安裝及iceweasel漢化。。。 好類好累。。 kali linux 安裝跟普通的linux安裝沒有太大區別,一定要聯絡自己的電腦選清是32wei還是64位。在一個就是

ElasticSearch概述Linux的單機ElasticSearch安裝

這兩天在專案中要涉及到ElasticSearch的使用,就上網去搜索了一些這方面的資料,發現elasticSearch的安裝分為單機和叢集兩種方式。在本例中,我們重點介紹單機下的ElasticSearch的安裝,親測可用,記錄下來與各位同仁分享。 一、Elas

linux shell 程式設計變數數學運算

1.shell中的變數是不分資料型別的,統一按照字串來儲存 2. bash shell只能支援數學整數運算(zsh可以支援浮點) 3.以下都是在bash shell 下進行的數學運算 方法一使用方括號進行基本的整數運算: #!/bin/bash var1=1 var2=2

Linux環境非root使用者安裝Python相關庫

以前在使用Python的時候,都是使用root使用者安裝好的全域性python,現在,因為root使用者安裝的Python版本太低,同時自己沒有root許可權去對全域性Python升級,所以要在非root使用者下安裝自己指定的Python。因此,就重新整理了一份如何在Li

LinuxOracle 12C的安裝配置篇

1前言 一般企業級的伺服器都是採用Linux或者Unix,因為相對Windows系統來說,Linux和Unix伺服器穩定性比較好、可以多使用者作業系統、bug較Windows少、調控性高、可以根據實際應用做出相應的調整、排錯性強,而且Linux是免費的而Windows收費。

linuxPostgresql-9.2安裝資料庫的建立過程

公司寫部署手冊需要,現總結一些linux下postgresql的安裝及資料庫建立的詳細步驟吧! 1.1.1  軟體安裝   1.設定使用者組和使用者級別     Postgresql不能以root身份執行,要以其他的身份執行,所以必須建立對應的使用者和組。 (1)新增pos

LinuxPython3.6的安裝避坑指南

## Python3的安裝 #### 1.安裝依賴環境 Python3在安裝的過程中可能會用到各種依賴庫,所以在正式安裝Python3之前,需要將這些依賴庫先行安裝好。 ``` yum -y install zlib-devel bzip2-devel openssl-devel ncurses-d

Linux常用命令sed學習總結

linux sed sed命令 正則表達式 sed總結 Sed功能說明:Sed是linux下一個強大的文本文件處理工具,通過對文件增加、刪除、查找、查詢操作,配合正則表達式以實現工作中的各種需求。同時也是一名運維人員必須掌握的核心技能。---------------------------

CentOS 7 yum安裝lamp,三者位於不同服務器,並為安裝WordPressphpmyadmin

localhost 下載地址 wordpress 服務器 最新版 系統平臺:CentOS 7 1611WordPress下載地址phpMyAdmin下載地址(CentOS 7 建議不要安裝最新版,否則需要編譯最新的php-fpm)分別在三臺主機上安裝httpd(192.168.1.200)