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要用到固件, 但是固件要到根文件系统被挂载后才能访问