使用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要用到固件, 但是固件要到根文件系统被挂载后才能访问
原文地址:https://www.cnblogs.com/alan666/p/8311858.html