配置hostapd实现无线热点(失败记录)¶
在 树莓派Raspberry Pi 400 上运行 Kali Linux 时,我尝试 linux-wifi-hotspot: 设置Linux无线热点 ,但是会遇到由于树莓派采用的brmfmac驱动(broadcom芯片)可能会触发内核crash,所以 使用create_ap工具创建软AP 禁止使用虚拟机接口来实现同一个无线网卡同时作为internet接口和共享AP接口。
由于 使用create_ap工具创建软AP 实际是 hostapd
的包装脚本,所以还是可以全程手工配置 hostapd
来实现一个单一无线接口实现Internet共享的无线AP配置。
警告
我的在树莓派上实践尚未成功!
准备¶
安装必要软件:
sudo apt install hostapd dnsmasq
配置¶
检查接口:
iw list
可以看到:
...
valid interface combinations:
* #{ managed } <= 1, #{ monitor } <= 1, #{ P2P-device } <= 1, #{ P2P-client, P2P-GO } <= 1,
total <= 4, #channels <= 2
* #{ managed } <= 1, #{ AP } <= 1, #{ monitor } <= 1, #{ P2P-client } <= 1, #{ P2P-device } <= 1,
total <= 5, #channels <= 1
配置
/etc/dnsmasq.conf
内容:interface=lo,uap0 no-dhcp-interface=lo,wlan0 dhcp-range=192.168.2.100,192.168.2.200,12h
这里关闭了 wlan0
接口上的dhcp很重要,避免和无线网络上的DHCP服务冲突,启用了虚拟接口 uap0
上的DNS解析。
编辑
/etc/hostapd/hostapd.conf
interface=uap0 ssid=pipi hw_mode=g channel=6 macaddr_acl=0 auth_algs=1 ignore_broadcast_ssid=0 wpa=2 wpa_passphrase=0123456789 wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP
注意,请修改配置中的 ssid
和 wpa_passphrase
内容以符合实际要求
编辑
/etc/network/interfaces
auto uap0 iface uap0 inet static address 192.168.2.1 netmask 255.255.255.0
增加一个文件
/usr/local/bin/hostapdstart
iw dev wlan0 interface add uap0 type __ap service dnsmasq restart sysctl net.ipv4.ip_forward=1 iptables -t nat -A POSTROUTING -s 192.168.2.0/24 ! -d 192.168.2.0/24 -j MASQUERADE ifup uap0 hostapd /etc/hostapd/hostapd.conf
并设置上述脚本可执行:
chmod 667 /usr/local/bin/hostapdstart
启动:
hostapdstart
如果正常,也可以:
hostapdstart >1&
我这里遇到 dmesg -T
显示报错:
[Tue Apr 27 17:36:17 2021] brcmfmac: brcmf_link_down: WLC_DISASSOC failed (-52)
[Tue Apr 27 17:36:18 2021] brcmfmac: brcmf_sdio_hostmail: mailbox indicates firmware halted
[Tue Apr 27 17:36:21 2021] brcmfmac: brcmf_sdio_bus_rxctl: resumed on timeout
[Tue Apr 27 17:36:21 2021] brcmfmac: brcmf_sdio_checkdied: firmware trap in dongle
[Tue Apr 27 17:36:23 2021] brcmfmac: brcmf_sdio_bus_rxctl: resumed on timeout
[Tue Apr 27 17:36:23 2021] brcmfmac: brcmf_sdio_checkdied: firmware trap in dongle
[Tue Apr 27 17:36:23 2021] brcmfmac: brcmf_c_set_joinpref_default: Set join_pref error (-110)
[Tue Apr 27 17:36:26 2021] brcmfmac: brcmf_sdio_bus_rxctl: resumed on timeout
[Tue Apr 27 17:36:26 2021] brcmfmac: brcmf_sdio_checkdied: firmware trap in dongle
[Tue Apr 27 17:36:28 2021] brcmfmac: brcmf_sdio_bus_rxctl: resumed on timeout
[Tue Apr 27 17:36:28 2021] brcmfmac: brcmf_sdio_checkdied: firmware trap in dongle
[Tue Apr 27 17:36:28 2021] brcmfmac: brcmf_cfg80211_connect: BRCMF_C_SET_SSID failed (-110)
[Tue Apr 27 17:36:31 2021] brcmfmac: brcmf_sdio_bus_rxctl: resumed on timeout
[Tue Apr 27 17:36:31 2021] brcmfmac: brcmf_sdio_checkdied: firmware trap in dongle
[Tue Apr 27 17:36:31 2021] brcmfmac: brcmf_run_escan: error (-110)
[Tue Apr 27 17:36:31 2021] brcmfmac: brcmf_cfg80211_scan: scan error (-110)
[Tue Apr 27 17:36:35 2021] brcmfmac: brcmf_sdio_bus_rxctl: resumed on timeout
[Tue Apr 27 17:36:35 2021] brcmfmac: brcmf_sdio_checkdied: firmware trap in dongle
[Tue Apr 27 17:36:35 2021] brcmfmac: brcmf_run_escan: error (-110)
[Tue Apr 27 17:36:35 2021] brcmfmac: brcmf_cfg80211_scan: scan error (-110)
[Tue Apr 27 17:36:37 2021] brcmfmac: brcmf_sdio_bus_rxctl: resumed on timeout
[Tue Apr 27 17:36:37 2021] brcmfmac: brcmf_sdio_checkdied: firmware trap in dongle
[Tue Apr 27 17:36:37 2021] brcmfmac: brcmf_vif_set_mgmt_ie: vndr ie set error : -110
[Tue Apr 27 17:36:37 2021] brcmfmac: brcmf_cfg80211_scan: scan error (-110)
[Tue Apr 27 17:36:40 2021] brcmfmac: brcmf_sdio_bus_rxctl: resumed on timeout
[Tue Apr 27 17:36:40 2021] brcmfmac: brcmf_sdio_checkdied: firmware trap in dongle
[Tue Apr 27 17:36:40 2021] brcmfmac: brcmf_vif_set_mgmt_ie: vndr ie set error : -110
[Tue Apr 27 17:36:40 2021] brcmfmac: brcmf_cfg80211_scan: scan error (-110)
[Tue Apr 27 17:36:42 2021] brcmfmac: brcmf_sdio_bus_rxctl: resumed on timeout
[Tue Apr 27 17:36:42 2021] brcmfmac: brcmf_sdio_checkdied: firmware trap in dongle
[Tue Apr 27 17:36:42 2021] brcmfmac: brcmf_cfg80211_get_tx_power: error (-110)
[Tue Apr 27 17:36:42 2021] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
[Tue Apr 27 17:36:45 2021] brcmfmac: brcmf_sdio_bus_rxctl: resumed on timeout
[Tue Apr 27 17:36:45 2021] brcmfmac: brcmf_sdio_checkdied: firmware trap in dongle
[Tue Apr 27 17:36:45 2021] brcmfmac: _brcmf_set_multicast_list: Setting mcast_list failed, -110
[Tue Apr 27 17:36:48 2021] brcmfmac: brcmf_sdio_bus_rxctl: resumed on timeout
[Tue Apr 27 17:36:48 2021] brcmfmac: brcmf_sdio_checkdied: firmware trap in dongle
[Tue Apr 27 17:36:48 2021] brcmfmac: _brcmf_set_multicast_list: Setting allmulti failed, -110
[Tue Apr 27 17:36:50 2021] brcmfmac: brcmf_sdio_bus_rxctl: resumed on timeout
[Tue Apr 27 17:36:50 2021] brcmfmac: brcmf_sdio_checkdied: firmware trap in dongle
[Tue Apr 27 17:36:53 2021] brcmfmac: brcmf_sdio_bus_rxctl: resumed on timeout
[Tue Apr 27 17:36:53 2021] brcmfmac: brcmf_sdio_checkdied: firmware trap in dongle
[Tue Apr 27 17:36:53 2021] brcmfmac: brcmf_cfg80211_get_channel: chanspec failed (-110)
[Tue Apr 27 17:36:55 2021] brcmfmac: brcmf_sdio_bus_rxctl: resumed on timeout
[Tue Apr 27 17:36:55 2021] brcmfmac: brcmf_sdio_checkdied: firmware trap in dongle
[Tue Apr 27 17:36:55 2021] brcmfmac: brcmf_cfg80211_get_tx_power: error (-110)
[Tue Apr 27 17:36:58 2021] brcmfmac: brcmf_sdio_bus_rxctl: resumed on timeout
[Tue Apr 27 17:36:58 2021] brcmfmac: brcmf_sdio_checkdied: firmware trap in dongle
[Tue Apr 27 17:36:58 2021] brcmfmac: _brcmf_set_multicast_list: Setting BRCMF_C_SET_PROMISC failed, -110
[Tue Apr 27 17:37:00 2021] brcmfmac: brcmf_sdio_bus_rxctl: resumed on timeout
[Tue Apr 27 17:37:00 2021] brcmfmac: brcmf_sdio_checkdied: firmware trap in dongle
[Tue Apr 27 17:37:03 2021] brcmfmac: brcmf_sdio_bus_rxctl: resumed on timeout
[Tue Apr 27 17:37:03 2021] brcmfmac: brcmf_sdio_checkdied: firmware trap in dongle
[Tue Apr 27 17:37:05 2021] brcmfmac: brcmf_sdio_bus_rxctl: resumed on timeout
[Tue Apr 27 17:37:05 2021] brcmfmac: brcmf_sdio_checkdied: firmware trap in dongle
[Tue Apr 27 17:37:08 2021] brcmfmac: brcmf_sdio_bus_rxctl: resumed on timeout
[Tue Apr 27 17:37:08 2021] brcmfmac: brcmf_sdio_checkdied: firmware trap in dongle
[Tue Apr 27 17:37:08 2021] brcmfmac: _brcmf_set_multicast_list: Setting mcast_list failed, -110
[Tue Apr 27 17:37:11 2021] brcmfmac: brcmf_sdio_bus_rxctl: resumed on timeout
[Tue Apr 27 17:37:11 2021] brcmfmac: brcmf_sdio_checkdied: firmware trap in dongle
[Tue Apr 27 17:37:13 2021] brcmfmac: brcmf_sdio_bus_rxctl: resumed on timeout
[Tue Apr 27 17:37:13 2021] brcmfmac: brcmf_sdio_checkdied: firmware trap in dongle
[Tue Apr 27 17:37:13 2021] brcmfmac: _brcmf_set_multicast_list: Setting allmulti failed, -110
[Tue Apr 27 17:37:16 2021] brcmfmac: brcmf_sdio_bus_rxctl: resumed on timeout
[Tue Apr 27 17:37:16 2021] brcmfmac: brcmf_sdio_checkdied: firmware trap in dongle
[Tue Apr 27 17:37:16 2021] brcmfmac: _brcmf_set_multicast_list: Setting BRCMF_C_SET_PROMISC failed, -110
[Tue Apr 27 17:37:18 2021] brcmfmac: brcmf_sdio_bus_rxctl: resumed on timeout
[Tue Apr 27 17:37:18 2021] brcmfmac: brcmf_sdio_checkdied: firmware trap in dongle
[Tue Apr 27 17:37:21 2021] brcmfmac: brcmf_sdio_bus_rxctl: resumed on timeout
[Tue Apr 27 17:37:21 2021] brcmfmac: brcmf_sdio_checkdied: firmware trap in dongle
[Tue Apr 27 17:37:23 2021] brcmfmac: brcmf_sdio_bus_rxctl: resumed on timeout
[Tue Apr 27 17:37:23 2021] brcmfmac: brcmf_sdio_checkdied: firmware trap in dongle
[Tue Apr 27 17:37:26 2021] brcmfmac: brcmf_sdio_bus_rxctl: resumed on timeout
[Tue Apr 27 17:37:26 2021] brcmfmac: brcmf_sdio_checkdied: firmware trap in dongle
[Tue Apr 27 17:37:28 2021] brcmfmac: brcmf_sdio_bus_rxctl: resumed on timeout
[Tue Apr 27 17:37:28 2021] brcmfmac: brcmf_sdio_checkdied: firmware trap in dongle
[Tue Apr 27 17:37:31 2021] brcmfmac: brcmf_sdio_bus_rxctl: resumed on timeout
[Tue Apr 27 17:37:31 2021] brcmfmac: brcmf_sdio_checkdied: firmware trap in dongle
[Tue Apr 27 17:37:31 2021] brcmfmac: _brcmf_set_multicast_list: Setting mcast_list failed, -110
[Tue Apr 27 17:37:34 2021] brcmfmac: brcmf_sdio_bus_rxctl: resumed on timeout
[Tue Apr 27 17:37:34 2021] brcmfmac: brcmf_sdio_checkdied: firmware trap in dongle
[Tue Apr 27 17:37:34 2021] brcmfmac: _brcmf_set_multicast_list: Setting allmulti failed, -110
[Tue Apr 27 17:37:36 2021] brcmfmac: brcmf_sdio_bus_rxctl: resumed on timeout
[Tue Apr 27 17:37:36 2021] brcmfmac: brcmf_sdio_checkdied: firmware trap in dongle
[Tue Apr 27 17:37:39 2021] brcmfmac: brcmf_sdio_bus_rxctl: resumed on timeout
[Tue Apr 27 17:37:39 2021] brcmfmac: brcmf_sdio_checkdied: firmware trap in dongle
[Tue Apr 27 17:37:39 2021] brcmfmac: _brcmf_set_multicast_list: Setting BRCMF_C_SET_PROMISC failed, -110
[Tue Apr 27 17:37:44 2021] brcmfmac: brcmf_netdev_set_mac_address: Setting cur_etheraddr failed, -110
[Tue Apr 27 17:37:49 2021] brcmfmac: brcmf_proto_bcdc_query_dcmd: brcmf_proto_bcdc_msg failed w/status -110
[Tue Apr 27 17:37:49 2021] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
[Tue Apr 27 17:37:49 2021] brcmfmac: brcmf_cfg80211_set_power_mgmt: power save disabled
[Tue Apr 27 17:37:52 2021] brcmfmac: brcmf_cfg80211_set_power_mgmt: error (-110)
[Tue Apr 27 17:37:57 2021] brcmfmac: _brcmf_set_multicast_list: Setting mcast_list failed, -110
[Tue Apr 27 17:37:59 2021] brcmfmac: brcmf_vif_set_mgmt_ie: vndr ie set error : -110
[Tue Apr 27 17:37:59 2021] brcmfmac: brcmf_cfg80211_scan: scan error (-110)
[Tue Apr 27 17:38:02 2021] brcmfmac: _brcmf_set_multicast_list: Setting allmulti failed, -110
[Tue Apr 27 17:38:04 2021] brcmfmac: brcmf_run_escan: error (-110)
[Tue Apr 27 17:38:04 2021] brcmfmac: brcmf_cfg80211_scan: scan error (-110)
[Tue Apr 27 17:38:07 2021] brcmfmac: _brcmf_set_multicast_list: Setting BRCMF_C_SET_PROMISC failed, -110
[Tue Apr 27 17:38:09 2021] brcmfmac: brcmf_run_escan: error (-110)
[Tue Apr 27 17:38:09 2021] brcmfmac: brcmf_cfg80211_scan: scan error (-110)
参考¶
Raspberry Pi Zero W as Internet connected Access Point *and* Wireless Client 提供了完整的配置文件可以参考,并且介绍了 lukicdarkoo/rpi-wifi 设置脚本,以及完整的设置方法参考文档: