1. 程式人生 > >使用wifi網絡卡筆記5---AP模式

使用wifi網絡卡筆記5---AP模式

使用WIFI網絡卡的AP功能
1、下載原始碼 hostapd: http://w1.fi/hostapd/
2、編譯、安裝hostapd依賴於libnl庫,需要編譯、安裝此庫

tar xzf hostapd-2.0.tar.gz
cd hostapd-2.0/
cd hostapd/
cp defconfig .config
修改.config, 加一行: CONFIG_LIBNL32=y
修改Makefile:

CC=arm-linux-gcc  交叉編譯

編譯

make

安裝

make DESTDIR=$PWD/tmp install


把生成的hostapd  hostapd_cli複製到NFS的bin目錄

3、

使用(啟動 hostapd

hostapd  -h檢視命令如何使用

(3.1)定義一個 hostapd的配置檔案/etc/myhostapd.conf:WPA/WPA2

 

配置檔案hostapd.conf對相關選項的取值有詳細的介紹

ctrl_interface=/var/run/hostapd
#change wlan0 to your wireless device
interface=wlan0   用哪一個網絡卡
driver=nl80211    所用驅動
ssid=S3C2440    AP名稱
channel=1


# 認證/加密方式 
macaddr_acl=0  控制MAC地址的過濾
auth_algs=1   使用wep方式(對於WPA或WPA2,此值必須設為1)

ignore_broadcast_ssid=0
wpa=3   AP既支援WPA也支援WPA2
wpa_passphrase=baiwenwang  密碼
wpa_key_mgmt=WPA-PSK  在AP上預設密碼,不經伺服器處理
wpa_pairwise=TKIP    WPA的加密方式
rsn_pairwise=CCMP  WPA2 的加密方式


把配置檔案存為/etc/myhostapd.conf

-B是指運行於後臺,/etc/myhostapd.conf是配置檔案

啟動 hostapd: hostapd -B /etc/myhostapd.conf


4、 啟動 dhcpd,給手機分配IP
(1)修改配置檔案/etc/dhcpd.conf,新增:

subnet 192.168.1.0 netmask 255.255.255.0 { //子網和子網掩碼                    
  range 192.168.1.10 192.168.1.100;          //要分配的IP地址範圍                    
  option domain-name-servers 192.168.1.1;      //DNS伺服器IP                  
  option routers 192.168.1.1;                    路由                
}    



(2)建立空檔案/var/db/dhcpd.leases:

>表示生成一個空檔案


> /var/db/dhcpd.leases


(3)啟動 dhcpd

先配置網絡卡IP

ifconfig wlan0 192.168.1.1

/etc/dhcpd.conf是我們編寫的配置檔案 ,wlan0是我們所用的網絡卡

dhcpd -cf /etc/dhcpd.conf wlan0

(4)檢視有多少個客戶端連線我的無線IP命令

hostapd_cli和hostapd是通過socket檔案來通訊的,不指定socket檔案,hostapd_cli和hostapd無法連線,修改myhostapd.conf 檔案,加上此行ctrl_interface=/var/run/hostapd

hostapd_cli  -h檢視如何使用

兩種模式

1、直接寫入命令

2、互動模式:先直接執行hostapd_cli。

看有多少個客戶端連線我們的無線AP


檢視MAC地址對應的IP



5、 OPEN方式的配置檔案

hostapd的配置檔案/etc/myhostapd.conf

ctrl_interface=/var/run/hostapd
#change wlan0 to your wireless device
interface=wlan0   用哪一個網絡卡
driver=nl80211    所用驅動
ssid=S3C2440    AP名稱
channel=1


# 認證/加密方式
macaddr_acl=0  控制MAC地址的過濾
auth_algs=1   使用wep方式(對於WPA或WPA2,此值必須設為1)
ignore_broadcast_ssid=0


6、 WEP方式的配置檔案

hostapd的配置檔案/etc/myhostapd.conf

ctrl_interface=/var/run/hostapd
#change wlan0 to your wireless device
interface=wlan0
driver=nl80211
ssid=S3C2440
channel=1


# 認證/加密方式
macaddr_acl=0
auth_algs=2
ignore_broadcast_ssid=0
wep_key0="baiwenwang123"   密碼
wep_default_key=0   預設密碼是第0個密碼

baiwenwang123是ASCII碼,其16機制可用UltrasEdit在裡面寫入後,按Ctrl+h鍵就能出現16進位制值

7、 修改/etc/mdev.conf自動啟動AP模式(熱拔插)


cat /etc/mdev.conf 

wlan0 0:0 777 * /sbin/auto_wifi_ap.sh

新增執行許可權

 chmod +x /sbin/auto_wifi_ap.sh
cat /sbin/auto_wifi_ap.sh 
#!/bin/sh
if [ $ACTION = "add" ]; 
then
   hostapd -B /etc/myhostapd.conf
   ifconfig wlan0 192.168.1.1
   dhcpd -cf /etc/dhcpd.conf wlan0

else
   killall hostapd
   killall dhcpd
fi


注意事項:
對於包含了AR9271網絡卡驅動的核心,有一個問題:
在上電之前就接上了網絡卡,那麼系統啟動後無法識別出這個網絡卡。
解決方法:
1.上電後再接網絡卡
2.把驅動編譯為模組,當系統啟動後再insmod: 可以在上電之前就接網絡卡



可能原因:ath9k_htc.ko要用到韌體, 但是韌體要到根檔案系統被掛載後才能訪問