嵌入式系统中启动Hostapd

嵌入式系统中启动Hostapd项目过程中需要添加AP热点的需求,自然会想用到hostapd,具体的不做分析,自行百度,这里主要分析下启动脚本采用的WiFi模组是“博通”公司的AP6255芯片,“博通”公司的wifi芯片AP与STATION切换需要对网卡驱动进行卸载重装,所以配网方式不建议使用AP模式配网,这会造成多次WiFi模式的切换,耗时可能比较严重。不过给出以下方法,开发者可以自行配置,进入…

大家好,又见面了,我是你们的朋友全栈君。

项目过程中需要添加AP热点的需求,自然会想用到hostapd,具体的不做分析,自行百度,这里主要分析下启动脚本

采用的 WiFi 模组是“博通”公司的 AP6255 芯片,“博通”公司的 wifi 芯片 AP 与 STATION 切换需要对网卡驱动进行卸载重装,所以配网方式不建议使用 AP 模式配网,这会造成多次 WiFi 模式的切换,耗时可能比较严重。不过给出以下方法,开发者可以自行配置,进入 AP 模式。

如果需要进入 AP 模式,需要依次执行以下命令,对应的 hostapd 和 dnsmasq


# 构造 WiFi AP 参数,其中 ssid 和 wpa_passphrase 分别对应 SSID 和 密码, 例如此配置文件对应的 SSID 是 rokid,密码是 rokidos_psk
echo "interface=wlan0 driver=nl80211 ctrl_interface=/var/run/hostapd ssid=rokid channel=6 ieee80211n=1 ieee80211ac=1 hw_mode=g hw_mode=a ignore_broadcast_ssid=0 wpa=3 wpa_passphrase=rokidos_psk wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP CCMP rsn_pairwise=CCMP"  > /etc/hostapd_temp.conf

# 创建虚拟网卡 
iw wlan0 interface add wlan1 type managed

# 启动 hostapd (AP 管理软件)
hostapd -B /etc/hostapd_temp.conf

# 配置网卡的 IP 地址
ifconfig wlan0 192.168.2.1

# 启动 dns 和 dhcp 服务, 其中注意 IP 参数要与 IP 地址相对应
dnsmasq -iwlan0  --dhcp-option=3,192.168.2.1 --dhcp-range=192.168.2.50,192.168.2.200,12h -p100

脚本中创建wlan1需要使用iw命令,参数含义如下:

	dev <devname> interface add <name> type <type> [mesh_id <meshid>] [4addr on|off] [flags <flag>*]
	phy <phyname> interface add <name> type <type> [mesh_id <meshid>] [4addr on|off] [flags <flag>*]
		Add a new virtual interface with the given configuration.
		Valid interface types are: managed, ibss, monitor, mesh, wds.
		
		The flags are only used for monitor interfaces, valid flags are:
		none:     no special flags
		fcsfail:  show frames with FCS errors
		control:  show control frames
		otherbss: show frames from other BSSes
		cook:     use cooked mode
		active:   use active mode (ACK incoming unicast packets)
		
		The mesh_id is used only for mesh mode.
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/143265.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 邮箱正则表达式写法错误_通用邮箱正则表达式

    邮箱正则表达式写法错误_通用邮箱正则表达式合法E-mail地址:1.必须包含一个并且只有一个符号“@”2.第一个字符不得是“@”或者“.”3.不允许出现“@.”或者.@4.结尾不得是字符“@”或者“.”5.允许“@”前的字符中出现“+”6.不允许“+”在最前面,或者“+@”正则表达式如下:———————————————…

    2022年9月14日
    2
  • 链表排序java_java有序链表

    链表排序java_java有序链表这是自己的第一篇博客,话说学习是50%的学习,另外50%是解释,以后会分享自己遇到的一些问题,欢迎各位大佬指教。第一篇对象数组排序的问题处理。..

    2022年10月11日
    2
  • 函数iconv_substr和mb_substr

    函数iconv_substr和mb_substr

    2021年9月19日
    52
  • 增长黑客目录_黑客手册书籍

    增长黑客目录_黑客手册书籍增长黑客手册——02增长黑客的数据分析方法趋势分析多维分解漏斗分析用户画像细查路径留存分析A/B测试增长黑客的能力市场营销技能搜索引擎优化(SearchEngineOptimization)营销自动化(MarketingAutomation)病毒传播(ViralRefferal)内容营销工程开发技能应用程序接口A/B测试数据分析技能数据统计数据分析数据的9款工具市场营销工具产品工程工具数据分析增长黑客的数据分析方法趋势分析通过对业务指标的检测研究用户规律,寻找增长点多维分解从多个维度进行拆

    2022年9月16日
    4
  • TranslateMessage和DispatchMessage作用[通俗易懂]

    TranslateMessage和DispatchMessage作用[通俗易懂]PostMessage是将消息放入到窗体的消息队列中,窗体过程需要等待一段时间,以便从队列中取出了消息之后,才处理消息SendMessage不将消息放入消息队列,而只是把直接让窗体过程处理这个消息,所以消息一般能立刻响应。TranslateMessage函数是将消息转化成某一个,或更多的消息,比如,当消息循环接收一个WM_KEYDOWN消息时,如果用户按下了字母键,那么Translat

    2025年9月11日
    6
  • 两种Ajax写法_js调用java方法

    两种Ajax写法_js调用java方法Ajax:(AsynchronousJavascriptAndXML)简称为异步的js和xmljs中有两种写法://原生js写法functionshow(){varxhr=newXMLHttpRequest();xhr.onreadystatechange=function(){if(xhr.readyState==4&amp;&amp;xhr.status==200){…

    2022年9月27日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号