wpa_supplicant 移植及 linux 命令行模式配置無線上網


本文涉及內容為linux 命令行模式配置無線上網 及 wpa_supplicant 移植到開發板的過程,僅供參考

 

1.源碼下載

  wpa_supplicant 源碼下載地址 :http://hostap.epitest.fi/releases/   本人使用的是 wpa_supplicant-0.7.3.tar.gz

  openssl 源碼下載地址:http://www.openssl.org/source/   本人使用的是openssl-1.0.0j.tar.gz

2.openssl  交叉編譯

  在服務器home目錄下,創建連個文件wpa_source , wpa_install ,兩個目錄 mkdir wpa_source ,mkdir wpa_install .

  創建完成后,將兩份源碼上傳到wpa_source目錄中,分別解壓 tar xvf xxx (源碼名稱)。

  解壓完成后,進入openssl-1.0.0j文件中。執行命令:

./config no-asm shared --prefix=/home/wpa_install

  說明: no-asm  在交叉編譯過程中不使用匯編代碼代碼加速編譯過程。

      shared  生成動態鏈接庫。

      --prefix      指定生成lib include bin目錄的路徑,不修改此項則默認為OPENSSLDIR目錄。 我們將其安裝在/home/wpa_install 目錄下。

  * 此處注意下,本人在編譯openssl時,如果不加no-asm shared ,在后面make中會出錯。

  修改Makefile 文件,具體修改如下,主要修改有三處:

CC= mips-wrs-linux-gnu-mips_74k_softfp-glibc_small-gcc
。。。省略
AR= mips-wrs-linux-gnu-mips_74k_softfp-glibc_small-ar $(ARFLAGS) r
RANLIB= mips-wrs-linux-gnu-mips_74k_softfp-glibc_small-ranlib

  修改的幾處換成你使用的交叉編譯工具即可。

  把所有的 –march=pentium 去掉(三處)。否則編譯的時候會出錯

  然后執行make , make install。中間如果出錯,請baidu or google。我在編譯openssl時,未出現問題。

   具體openssl交叉編譯可以參考 :http://blog.csdn.net/zqj6893/article/details/8778237  ,講的比較詳細

3.編譯wpa_supplicant

  進入wpa_supplicant.0.7.3/wpa_supplicant/ 目錄,執行:

cp defconfig .config

vi .config

  修改如下:

#### sveasoft (e.g., for Linksys WRT54G) ######################################
#CC=mipsel-uclibc-gcc
CC=mips-wrs-linux-gnu-mips_74k_softfp-glibc_small-gcc -L /home/wpa_install/lib/
#CC=/opt/brcm/hndtools-mipsel-uclibc/bin/mipsel-uclibc-gcc
#CFLAGS += -Os
CFLAGS += -I /home/wpa_install/include/
#CPPFLAGS += -I../src/include -I../../src/router/openssl/include
#LIBS += -L/opt/brcm/hndtools-mipsel-uclibc-0.9.19/lib -lssl
LIBS += -L /home/wpa_install/lib/

  * ,# 開頭的為文件本身的代碼,我們需要修改CC,CFLAGS,LIBS三處內容。 分別指向你包含的include和lib文件夾

  修改完成后,保存並退出,執行 make 命令。在當前目錄下會生成wpa_supplicant,wpa_cli 兩個可執行文件,這個就可以放在開發板中進行運用啦!

  * 幾句廢話:在編譯wpa_supplicant時,最開始使用的是最新版本,wpa_supplicant-2.0的一個版本,編譯好多次沒有編譯過去,都是出現缺少這個或那個連接的問題,較典型的就是 can't find -lnl .后來換成0.7.3的版本后就沒有出現過該問題。只是暫時的把這個繞過去了吧。移植后的功能也都滿足我使用的。所以就用0.7.3的版本了。

  參考連接:http://blog.csdn.net/ti_tantbx/article/details/7037741

 

4.在開發板實際使用。

  此處我只說下wpa_supplicant 配置上網的用法。wpa_cli適合個人使用配置,wpa_supplicant 使用於后台操作型的配置。

  注:默認無線驅動已加載,此處略。

  (1)、在使用前,將wpa_supplicant 復制的/bin/目錄下。

  (2)、在/var/run/目錄下創建wpa_supplicant文件夾,mkdir /var/run/wpa_supplicant

  (3)、在/etc/下創建文件wpa_supplicant.conf. (也可不是/etc/,其他目錄亦可)

      此處的wpa_supplicant.conf 文件內容有幾種。

      1]、無密碼連接

      

ctrl_interface=/var/run/wpa_supplicant
      
network{    
        ssid="你要連接的SSID"
    key_mgmt=NONE
}

 

      2]、WEP連接

      

ctrl_interface=/var/run/wpa_supplicant

network{
    ssid="你要連接的SSID"
            key_mgmt=NONE
            wep_key0="你的密碼"
         wep_key1=0102030405
         wep_tx_keyidx=0
}

 

 

      3]、WPA-PSK/WPA2-PSK,TKIP/AES 連接

      

# WPA-PSK/TKIP

ctrl_interface=/var/run/wpa_supplicant

network={
        ssid="你要連接的SSID"
        key_mgmt=WPA-PSK
        proto=WPA    //RSN  如果WPA2連接不成功時,可以設置為RSN看看
        pairwise=TKIP    //CCMP 。如果為AES時,可以設置為CCMP TKIP看看
        group=TKIP    //同上
        psk="SSID的密碼"
} 

    加密文件配置參考連接:http://www.360doc.com/content/12/0709/15/9424702_223192125.shtml

              http://evan7s.blog.163.com/blog/static/108955356201132494921476/ 

    這兩篇文章的提示作用很大的,建議看看    

 

    按照無線連接方式配置好wpa_supplicant.conf后,執行命令

wpa_supplicant -B -d -i wlan0 -c /etc/wpa_supplicant.conf

    注釋:-B 是指后台運行,如果想查看連接信息,可以把—B去掉。

       -i wlan0 ,-i是接口名稱,如果你的無線網卡不是wlan0,(如ra0),那么隨之更改接口名稱。

       -d ,指增加debug信息。

       -c , 后面跟wpa_supplicant配置文件的路徑

    執行之后就連接到你想要連接的無線SSID上啦。連接上之后,如果想要wlan0 動態獲取地址:輸入

dhclient wlan0

    如果不用DHCP,手動配置地址哎

ifconfig wlan0 192.168.x.x netmask 255.255.255.0

    

    

    wpa_cli 配置無線網絡可以參考:http://blog.163.com/wxiongn@126/blog/static/11788203820102262748358/

 

    OK, 這就是我移植wpa_supplicant 及配置無線上網的過程。希望對大家有幫助

    轉載謝謝注明。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM