第三阶段应用层——2.8 视频监控—开发板上WIFI网卡的使用(2)-AP模式

☆樱花仙子☆ 提交于 2020-08-13 01:56:49

视频监控—开发板上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

  1. 解压
    执行tar xzf hostapd-2.0.tar.gz

  2. 配置
    进入到hostapd-2.0/hostapd/
    执行cp defconfig .config,使用默认的配置文件
    修改.config,加一行: CONFIG_LIBNL32=y
    在这里插入图片描述
    修改MakefileCC=arm-linux-gcc
    在这里插入图片描述





  3. 编译
    执行make
    在这里插入图片描述

  4. 安装
    执行make DESTDIR=$PWD/tmp install
    在这里插入图片描述
    生成了两个可执行文件
    在这里插入图片描述



  5. 把生成的可执行文件复制到开发板的根文件系统的bin目录
    执行sudo cp * /work

  6. 由于在上篇博客中介绍到,建立了一个/etc/mdev.conf,其中使用的是STA模式,现在需要使用到AP模式,所以可以把这个配置文件删除或者重命名mv /etc/mdev.conf /etc/mdev_sta.conf

2、使用hostapd的WAP与WAP2模式

  1. 新建一个配置文件/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
  1. 启动hostapd
    执行hostapd -B /etc/myhostapd.conf
    在这里插入图片描述
    在手机上可以搜索到此WIFI,但是一直在获取IP,无法连接上,需要使用dhcpd,来自动为连接的设备分配IP
    在这里插入图片描述



3、使用dhcpd为连接的设备分配IP

  1. 修改配置文件/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;                                    
}
  1. 创建空文件/var/db/dhcpd.leases,执行> /var/db/dhcpd.leases

  2. 配置无线网卡的IP,执行ifconfig wlan0 192.168.7.1
    在这里插入图片描述

  3. 启动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模式

  1. 修改/etc/mdev.conf配置文件,内容如下:
wlan0 0:0 777 * /sbin/auto_wifi_ap.sh
  1. 添加/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
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!