使用wifi網絡卡筆記5---AP模式
阿新 • • 發佈:2019-02-15
使用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:
把生成的hostapd hostapd_cli複製到NFS的bin目錄
#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 的加密方式
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; 路由
}
#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
#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進位制值
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要用到韌體, 但是韌體要到根檔案系統被掛載後才能訪問
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是配置檔案
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:
>表示生成一個空檔案
(3)啟動 dhcpd
先配置網絡卡IP
ifconfig wlan0 192.168.1.1
/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
#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
#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模式(熱拔插)
wlan0 0:0 777 * /sbin/auto_wifi_ap.sh
新增執行許可權
chmod +x /sbin/auto_wifi_ap.shcat /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要用到韌體, 但是韌體要到根檔案系統被掛載後才能訪問