一、下载源码
下载hostpad源码:https://w1.fi/releases/hostapd-2.9.tar.gz
二、编译、安装
hostpad的交叉编译依赖libnl、openssl库,交叉编译libnl、openssl库的步骤见:
tar -xvf hostapd-2.9.tar.gz cd hostapd-2.9/ cd hostapd/ cp defconfig .config export PKG_CONFIG_PATH=/root/wifi/libnl-3.2.23/build/lib/pkgconfig/:PKG_CONFIG_PATH vim .config
添加如下几行:
CFLAGS += -I/root/wifi/openssl-OpenSSL_1_1_1b/build/include CFLAGS += -I/root/wifi/libnl-3.2.23/build/include LIBS += -L/root/wifi/openssl-OpenSSL_1_1_1b/build/lib LIBS += -L/root/wifi/libnl-3.2.23/build/lib
编译:
make CC=arm-linux-gcc
在当前目录下会生成hostapd、hostapd_cli,把生成的hostapd 、hostapd_cli复制到开发板文件系统的/usr/bin目录下。
三、使用
hostapd的配置文件: WPA/WPA2
ctrl_interface=/var/run/hostapd #change wlan0 to your wireless device interface=wlan0 driver=nl80211 ssid=S3C2440 channel=1 # 认证/加密方式 macaddr_acl=0 auth_algs=1 ignore_broadcast_ssid=0 wpa=3 wpa_passphrase=baiwenwang wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP
把配置文件存为/etc/myhostapd.conf
启动 hostapd:
hostapd -B /etc/myhostapd.conf
启动 dhcpd
修改配置文件/etc/dhcpd.conf,添加:
subnet 192.168.3.0 netmask 255.255.255.0 { range 192.168.3.10 192.168.3.100; #hotspot连接的设备网段设为192.168.3.X,IP地址分配从10-100 option domain-name-servers 192.168.0.1,8.8.8.8,8.8.4.4; #192.168.0.1是路由器的LAN口IP地址 option routers 192.168.3.1; #需要给wlan0分配的静态IP地址 }
创建空文件/var/db/dhcpd.leases:
> /var/db/dhcpd.leases
给wlan0分配一个静态IP地址:
ifconfig wlan0 192.168.3.1
启动dhcpd:
dhcpd -cf /etc/dhcpd.conf wlan0
四、测试
用手机连接上SSID为S3C2440的这个热点,查看手机热点分配到的IP地址,我这里是192.168.3.10(这个IP地址是开发板上的dhcpd自动分配的)。
用开发板ping手机拿到的IP地址: