0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

嵌入式Linux设备开启无线AP/无线接入点的方法

Linux大陆 来源:Linux大陆 2023-02-11 10:53 次阅读

前言

本篇博文我们来分享嵌入式Linux设备开启无线AP/无线接入点(Wireless Access Point)的方法。

什么情况下会用到无线AP?

我最近的工作中有如下两种情况需要用到:

(1)AP配网。设备热点配网,智能硬件处于AP模式,手机作为STA连接到处于AP模式的智能硬件后组成局域网。此时,手机就可以通过局域网把设备即将连接的路由的ssid和pwd信息至智能硬件,智能硬件接收后,连接路由器,完成配网。

(2)把废旧不用的板子作为开启无线AP组建各设备的局域网通信。对于移动机器人的开发来说,设备实际工作过程中,无线调试无疑是最方便的。

因为设备一直处于运动状态,如果接着有线,电脑需要跟着设备跑,很不方便。因为我们调试时,对路由器的需求比较大,而路由器比较有限,所以我把废旧不用的板子配成了无线AP模式。

经过实测,相同距离,旧板子局域网通信速度略低于我们路由器,但不影响我们作为调试时使用。

嵌入式Linux设备,要开启无线接入点需要准备如下四个文件:

hostapd:一个用户态用于AP和认证服务器的守护进程。

hostapd.conf:hostapd配置文件,包含无线AP的名称、密码等信息。

udhcpd:dhcp拨号的服务器端。

udhcpd.conf:udhcpd配置文件,配置网关地址及IP地址的范围。

其中,hostapd、udhcpd工具busybox中包含有。当然,也可以自己下载源码进行编译,方法可参照我们往期的博文:

远程登陆开发板:RTL8723驱动移植+wpa_supplicant移植+SSH移植,编译方法都是大同小异的。

注意区分:udhcpc、udhcpd工具。

udhcpc是dhcp拨号的客户端。设备作为STA时,用于自动获取IP。

udhcpd是dhcp拨号的服务器端。设备作为AP时,用于自动分配IP。

其中,我们的往期博文如何实现程序开机自启动?中有用到udhcpc,本博文中我们用的是udhcpd。

下面我们来看hostapd及udhcpd的配置文件如何配置:

hostapd配置文件

hostapd的配置文件可参考hostapd源码下的hostapd.conf:

5f930d2a-a924-11ed-bfe3-dac502259ad0.png

里面的内容很多,实际中我们可能用不到那么多配置,我们可以删减、修改,只保留我们所需的配置。

我们删减修改之后得到:

左右滑动查看全部代码>>>

#APnetdevicename
interface=wlan0

#SSIDtobeusedinIEEE802.11managementframes
ssid=LinuxZn_AP

#Driverinterfacetype(hostap/wired/none/nl80211/bsd);
#default:hostap).nl80211isusedwithallLinuxmac80211drivers.
#Usedriver=noneifbuildinghostapdasastandaloneRADIUSserverthatdoes
#notcontrolanywireless/wireddriver.
driver=nl80211

#Interfaceforseparatecontrolprogram.
#/var/run/hostapdistherecommendeddirectoryforsocketsandbydefault,
#hostapd_cliwilluseitwhentryingtoconnectwithhostapd.
ctrl_interface=/var/run/hostapd

#Channelnumber(IEEE802.11)
channel=5

#ieee80211n:WhetherIEEE802.11n(HT)isenabled
#0=disabled(default)
#1=enabled
#Note:YouwillalsoneedtoenableWMMforfullHTfunctionality.
#Note:hw_mode=g(2.4GHz)andhw_mode=a(5GHz)isusedtospecifytheband.
ieee80211n=1
hw_mode=g

#SendemptySSIDinbeaconsandignoreproberequestframesthatdonot
#specifyfullSSID,i.e.,requirestationstoknowSSID.
#default:disabled(0)
#1=sendempty(length=0)SSIDinbeaconandignoreproberequestfor
#broadcastSSID
#2=clearSSID(ASCII0),butkeeptheoriginallength(thismayberequired
#withsomeclientsthatdonotsupportemptySSID)andignoreprobe
#requestsforbroadcastSSID
ignore_broadcast_ssid=0

#WPA/IEEE802.11iconfiguration
wpa=2
wpa_passphrase=12345678
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP

该文件主要配置了:

所用网卡:wlan0

AP名称:LinuxZn_AP

AP密码:12345678

加密:WPA2

频段:2.4GHz

我们把hostapd.conf配置文件我们放到板子上的/etc目录下备用:

5fdf892a-a924-11ed-bfe3-dac502259ad0.png

udhcpd配置文件

udhcpd的配置文件可参考udhcpd源码下的udhcpd.conf:

5ff02e74-a924-11ed-bfe3-dac502259ad0.png

同样的,我们只保留如下内容:

左右滑动查看全部代码>>>

#ThestartandendoftheIPleaseblock
start192.168.3.2
end192.168.3.254

#Theinterfacethatudhcpdwilluse
interfacewlan0

optdns114.114.114.114
optionsubnet255.255.255.0
optrouter192.168.3.1
optiondomainlocal
optionlease864000#10daysofseconds

该文件主要配置了:

所能分配的IP地址的范围为:192.168.3.2~192.168.3.254

网卡接口:wlan0

网关地址:192.168.3.1

我们把udhcpd.conf配置文件放到板子上的/etc目录下备用:

60075842-a924-11ed-bfe3-dac502259ad0.png

开启热点

有了以上工具及相关配置文件之后,还需要进行一些操作,才可以开启我们的热点,我们把这些操作写成脚本:

start_ap.sh:

左右滑动查看全部代码>>>

#!/bin/bash

#杀掉网卡操作相关的进程
killallwpa_supplicantudhcpcdhcpcddnsmasqudhcpdhostapd>/dev/null2>&1

#禁用网卡
ifconfigwlan0down

#启用网卡
ifconfigwlan0up

#给无线网卡设置IP地址(网关地址)
ifconfigwlan0192.168.3.1

#启动DHCP
udhcpd/etc/udhcpd.conf

#启动热点
hostapd/etc/hostapd.conf-B

开启热点:

60168fd8-a924-11ed-bfe3-dac502259ad0.png

连接测试:

6038bd24-a924-11ed-bfe3-dac502259ad0.png

可见,手机分配到的IP为192.168.3.2,属于192.168.3.2~192.168.3.254的范围,我们的设备热点开启成功!我们的PC可以连接这个热点对设备进行调试。

审核编辑:陈陈

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5062

    文章

    18984

    浏览量

    302379
  • Linux
    +关注

    关注

    87

    文章

    11216

    浏览量

    208761
  • 无线AP
    +关注

    关注

    0

    文章

    53

    浏览量

    19177

原文标题:嵌入式Linux设备开启无线接入点的方法步骤

文章出处:【微信号:Linux大陆,微信公众号:Linux大陆】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何部署无线接入点原则

    近年来,无线设备制造商始终致力于让无线接入点设备的部署趋于简单化,这将使总体的部署工程变得十分简便。但对于用户来说,在实际部署当中仍然需要注
    发表于 10-01 01:17 1338次阅读

    为什么这么多人将无线路由器当做无线接入点

    今天我们的话题是:无线路由器是无线接入点吗?为什么要讨论这个看似非常简单的东西,因为前几天听到别人这样问我。我一时愣住了,很想说,兄弟,第一次接触无线
    发表于 08-12 17:34

    基于MPC852T的无线接入点AP由哪些部分组成?如何去设计?

    无线接入点AP的功能是什么?基于MPC852T的无线接入点AP由哪些部分组成?如何去设计?
    发表于 06-02 06:07

    如何使用无线网卡连接WIFI接入点

    概述在移植完USB无线网卡的驱动和wpa_supplicant后,我们就可以开始来使用无线网卡连接WIFI接入点了。前提工作–udhcpc配置udhcpc是嵌入式的DHCP客户端,用来
    发表于 11-04 06:04

    嵌入式Linux无线接入点的设计与实现

    基于IEEE802.11b 协议的无线局域网是数据通信里的新兴领域,它所提供的无线接入功能在很大程度上满足了用户在移动情况下对无线数据传输接入
    发表于 05-26 14:45 24次下载

    无线接入点(WAP),什么是无线接入点(WAP)

    无线接入点(WAP),什么是无线接入点(WAP) 无线AP
    发表于 04-06 11:15 2663次阅读

    嵌入式无线接入系统设计

    通过分析嵌入式XSCALE处理器的性能和CDMA 1X无线通信的概况,给出了嵌入式无线接入Internet终端
    发表于 05-25 16:37 1287次阅读

    针对用户需求的无线接入点关联策略

    无线局域网中,接入点(access point,简称AP)的稠密部署使得AP的关联策略成为一个重要的研究问题.目前,用户与AP的关联仅依据
    发表于 01-18 10:44 0次下载
    针对用户需求的<b class='flag-5'>无线</b><b class='flag-5'>接入点</b>关联策略

    无线ap好还是无线路由器好_优势在哪里

    无线接入点是一个无线网络的接入点,俗称“热点”。主要有路由交换接入一体设备和纯
    发表于 03-05 17:41 10.2w次阅读
    <b class='flag-5'>无线</b><b class='flag-5'>ap</b>好还是<b class='flag-5'>无线</b>路由器好_优势在哪里

    无线ap是干什么用的_无线ap无线中继的区别

    无线AP(Access Point)即无线接入点,它是用于无线网络的无线交换机,也是
    发表于 04-15 11:11 3w次阅读

    无线接入点是什么意思_无线接入点和路由器有什么区别

    无线接入点是一个无线网络的接入点,俗称“热点”。主要有路由交换接入一体设备和纯
    发表于 08-04 09:23 1.9w次阅读

    无线接入点连不上互联网_无线接入点怎么用

    Switch使用无线接入点联网并提示失败有多种可能的原因,包括网络本身问题以及Switch设备问题。以下是针对不同情况的解决方法
    发表于 08-04 09:32 8199次阅读

    什么是无线接入点?WAP的用途是什么?

    无线接入点AP 或 WAP)是允许 Wi-Fi 设备连接到有线网络的网络设备。它们形成 无线
    发表于 12-16 17:48 3384次阅读

    无线接入点无线路由器有什么区别?

    无线接入点无线路由器有什么区别? 无线接入点(简称AP)和
    的头像 发表于 12-27 15:44 1861次阅读

    商用WIFI无线AP(接入点)绝缘散热膜

    AP一般指无线接入点,是一个无线网络的接入点,俗称“热点”。主要有路由交换接入一体
    的头像 发表于 06-21 08:10 253次阅读
    商用WIFI<b class='flag-5'>无线</b><b class='flag-5'>AP</b>(<b class='flag-5'>接入点</b>)绝缘散热膜