视频监控—开发板上WIFI网卡的使用(2)-AP模式
- 硬件平台:韦东山嵌入式Linxu开发板(S3C2440.v3),无线WIFI网卡(RT3070)
- 软件平台:运行于VMware Workstation 12 Player下UbuntuLTS16.04_x64 系统
- 参考资料:OV7740_CSP_DS_1.51 datasheet、S3C2440 datasheet
- 开发环境:Linux-4.13.0-41内核(虚拟机)、arm-linux-gcc-4.3.2工具链、linux-3.4.2内核(开发版根文件系统)
- 源码仓库:https://gitee.com/d_1254436976/Embedded-Linux-Phase-3
目录
一、使用hostapd工具
1、解压、配置、编译、安装hostapd
-
解压
执行tar xzf hostapd-2.0.tar.gz
-
配置
进入到hostapd-2.0/hostapd/
执行cp defconfig .config
,使用默认的配置文件
修改.config
,加一行:CONFIG_LIBNL32=y
修改Makefile
:CC=arm-linux-gcc
-
编译
执行make
-
安装
执行make DESTDIR=$PWD/tmp install
生成了两个可执行文件 -
把生成的可执行文件复制到开发板的根文件系统的
bin
目录
执行sudo cp * /work
-
由于在上篇博客中介绍到,建立了一个
/etc/mdev.conf
,其中使用的是STA模式,现在需要使用到AP模式,所以可以把这个配置文件删除或者重命名mv /etc/mdev.conf /etc/mdev_sta.conf
2、使用hostapd的WAP与WAP2模式
- 新建一个配置文件
/etc/myhostapd.conf
,执行vi /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 #
auth_algs=1 # 指定标准,WEP
ignore_broadcast_ssid=0
wpa=3 # 支持WPA、WPA2
wpa_passphrase=baiwenwang # 网络密码
wpa_key_mgmt=WPA-PSK # 认证方式:PSK
wpa_pairwise=TKIP # WPA的加密方式:TKIP
rsn_pairwise=CCMP # WPA2的加密方式:CCMP
- 启动hostapd
执行hostapd -B /etc/myhostapd.conf
在手机上可以搜索到此WIFI,但是一直在获取IP,无法连接上,需要使用dhcpd
,来自动为连接的设备分配IP
3、使用dhcpd为连接的设备分配IP
- 修改配置文件
/etc/dhcpd.conf
,执行vi /etc/dhcpd.conf
,添加的内容如下:
subnet 192.168.7.0 netmask 255.255.255.0 {
range 192.168.7.10 192.168.7.100;
option domain-name-servers 192.168.7.1;
option routers 192.168.7.1;
}
-
创建空文件
/var/db/dhcpd.leases
,执行> /var/db/dhcpd.leases
-
配置无线网卡的IP,执行
ifconfig wlan0 192.168.7.1
-
启动dhcpd,执行
dhcpd -cf /etc/dhcpd.conf wlan0
此时手机就可以连接上开发板的无线WIFI,也可以ping通
4、通过hostapd_cli查看hostapd状态
注意,hostapd的配置文件一定得有这句ctrl_interface=/var/run/hostapd
,否则hostapd_cli与hostapd之间无法进行socket通信。
执行hostapd_cli all_sta
,可以查看所有的连接信息
执行vi /var/db/dhcpd.leases
,根据上述的c4:98:80:7f:a3:23
信息,可以从文件中找到对应的连接设备。
5、使用hostapd的OPEN模式
修改/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=1
ignore_broadcast_ssid=0
6、使用hostapd的WEP模式
修改/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
7、支持自动启动AP模式
- 修改
/etc/mdev.conf
配置文件,内容如下:
wlan0 0:0 777 * /sbin/auto_wifi_ap.sh
- 添加
/sbin/auto_wifi_ap.sh
脚本,内容如下:
#!/bin/sh
if [ $ACTION = "add" ];
then
hostapd -B /etc/myhostapd.conf
ifconfig wlan0 192.168.7.1
dhcpd -cf /etc/dhcpd.conf wlan0
else
killall hostapd
killall dhcpd
fi
来源:oschina
链接:https://my.oschina.net/u/4370323/blog/4478270