树莓派上开热点(AP)的三种办法实践结果V2

树莓派上开热点(AP)的三种办法实践结果

  • date: 2021-08-02
  • lastmod: 2021-09-19

背景

UC2 项目中树莓派大脑和子模块有两种方式连接方式,一种是采用 I2C 总线通过 Arduino 做主从,一种是走 WIFI 使用 MQTT 协议与子模块通信。为了减少线数,采用了后者。实际调试中都是自己手机开热点给 pi、esp、pc,因为校园网不知道不知道为啥无法在一个子网中,也不能说是不在,只是无法进行内网通信。

但是考虑到实际使用中,也会有不存在 wifi 网络覆盖的情况,因此需要某个设备来开启热点来搭建一个 WIFI 子网,esp32 具有这种功能,实现上也比较简单,但是为了便于管理和维护,最后我想的是让树莓派开启热点,其它设备接入它,这样子由于 AP 模式带来的功耗和发热就转移到了树莓派上。

此外,树莓派的 wifi 模块是可以开热点的,但是官方系统中没有默认加入这个功能,需要自己动动那个小手。

总结

三种方式中,有官方的也有非官方的,最后实践结果表明官方的文档更简单可靠些。create_ap 表示不再维护,当然可以选择它的后继者(尚未常识)。

方法汇总

官方文档的办法

树莓派官方文档 - Setting up a Routed Wireless Access Point,文档的办法是在 3B 上测试过的,在 4B 上自己测试成功。

在编辑 hostapd.conf 的时候需要修改国家代码为中国(CN),默认是 GB,country_code=CN,热点名称(ssid)和密码(wpa_passphrase)修改的时候不需要加上引号。

然后使用了这个办法之后是只有 AP 模式了,无法使用原来正常连接 wifi 的功能了,怎么还原我还没发现,瞎逆向捣鼓了一下发现行不通。但是网线接口还是可以使用的,当然 USB 共享网络也行。

rasap

rasap,最简可以一行代码搞定。唯一的问题是下载需要科学一般的网速,第二次我整了将近三天重装了好几次。比官方那个办法的好处是有网页可以进行设置,缺点是要下载很多其它组件。

# 更新 os
sudo apt-get update
sudo apt-get full-upgrade
sudo reboot
# 设置 wifi 地区。Localisation Options - WLAN Country - CN China (中国)
sudo raspi-config
# 安装,将会从 gitub 下载安装脚本,此处应该打上科学四个字,脚本下载到本地再允许速度也不会上涨,因为脚本也会从 github 上下载不少的东西,这个办法极其考验科学的网速
curl -sL https://install.raspap.com | bash

回答问题不懂的就一直 Y 回车就行。装完之后需要重启。之后树莓派就自带热点光环(AP 模式)

  树莓派 IP 地址: 10.3.141.1
  管理员用户名: admin
  管理员密码: secret
  DHCP 子网 IP 段: 10.3.141.50 — 10.3.141.255
  WiFi 热点名称(SSID): raspi-webgui
  WiFi 密码: ChangeMe

重启完之后在 pi 上打开浏览器访问 10.3.141.1:80 就能进入管理界面,初始账号密码的初始值在网页中有写(admin, secret)。

进去修改下 wifi 的名称和密码,重启 wifi 即可,实测就是改了好几次才连上。

create_ap

按照其文档进行安装即可,安装完实测如下,大致意思就是此路不通。
文档中的 README.md 表明其已经不再维护了,可以看看其 fork 出的两个分支,gui 界面那个也有 cli 版本

创建办法提示我不能 wifi 和 热点模式共用,然而我在图形界面右键断开我的 wifi,这娃就会自己去连接没有密码的校园 wifi。。。按照 How to connect and disconnect to a network manually in terminal? 2011 给出的删除连接的办法,捣鼓了许久没有成功(nmcli 需要下载 sudo apt install networkd-manager)

$ git clone https://github.com/oblique/create_ap      # github,下载慢的话用下一个
$ git clone https://gitee.com/mirrors_oblique/create_ap.git # gitee 镜像
$ cd create_ap
$ sudo make install # 安装
$ sudo create_ap wlan0 wlan0 test 12345678
WARN: brmfmac driver does not work properly with virtual interfaces and
      it can cause kernel panic. For this reason we disallow virtual
      interfaces for your adapter.
      For more info: https://github.com/oblique/create_ap/issues/203
WARN: Your adapter does not fully support AP virtual interface, enabling --no-virt
ERROR: You can not share your connection from the same interface if you are using --no-virt option.

$ sudo create_ap --no-virt wlan0 eth0 pi raspberry
WARN: brmfmac driver does not work properly with virtual interfaces and
      it can cause kernel panic. For this reason we disallow virtual
      interfaces for your adapter.
      For more info: https://github.com/oblique/create_ap/issues/203
ERROR: hostapd not found.

卸载办法也比较简单,当初安装是在对应目录下 make install,卸载就是在当初那个目录里 make uninstall

相关指令

  • rfkill list
  • rfkill unblock all # 解除所有设备的软硬锁
  • ifconfig -a
  • sudo ifconfig wlan0 up # off->down,on->up
  • sudo iwconfig wlan0 mode ad-hoc # 没看到参数的ap模式
  • iwlist scan # 扫描
  • iwlist wlan0 scan # 扫描 wifi
  • iwconfig wlan0 essid NAME key PASSWORD # 连接wifi.替换 名称Name 密码 Password
  • wpa_supplicant

参考

  • 1
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我理解了你的问题。为了回答你的问题,我将分为两部分进行解答。 首先,关于AP模式和STA模式的共存问题。一般来说,一个Wi-Fi芯片只能在AP模式或STA模式中运行,不能同时在两种模式下运行。但是,有些芯片支持同时在AP模式和STA模式下运行,这种功能被称为“SoftAP”或“APSTA”模式。如果你的芯片支持这种功能,你就可以同时在AP模式和STA模式下运行。 其次,关于如何配置树莓派WiFi热点AP模式)。以下是配置树莓派WiFi热点的步骤: 1. 首先,你需要安装hostapd和dnsmasq软件。你可以使用以下命令进行安装: ``` sudo apt-get install hostapd dnsmasq ``` 2. 接下来,你需要编辑hostapd的配置文件。使用以下命令打配置文件: ``` sudo nano /etc/hostapd/hostapd.conf ``` 然后,将以下内容添加到配置文件中: ``` interface=wlan0 driver=nl80211 ssid=MyPiHotspot hw_mode=g channel=7 macaddr_acl=0 auth_algs=1 ignore_broadcast_ssid=0 wpa=2 wpa_passphrase=MyPiPassword wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP ``` 上述配置文件中,`interface`指定了使用的无线网卡接口,`ssid`指定了热点的名称,`wpa_passphrase`指定了热点的密码。 3. 接下来,你需要编辑dnsmasq的配置文件。使用以下命令打配置文件: ``` sudo nano /etc/dnsmasq.conf ``` 然后,将以下内容添加到配置文件中: ``` interface=wlan0 dhcp-range=192.168.4.2,192.168.4.20,255.255.255.0,24h ``` 上述配置文件中,`interface`指定了使用的无线网卡接口,`dhcp-range`指定了分配给连接到热点的设备的IP地址范围。 4. 保存并退出配置文件后,你需要启动hostapd和dnsmasq服务。使用以下命令启动服务: ``` sudo service hostapd start sudo service dnsmasq start ``` 如果你希望这两个服务在系统启动时自动启动,可以使用以下命令启用它们: ``` sudo systemctl enable hostapd sudo systemctl enable dnsmasq ``` 5. 最后,你需要将树莓派的无线网卡接口wlan0配置为静态IP地址。使用以下命令编辑网络配置文件: ``` sudo nano /etc/network/interfaces ``` 然后,将以下内容添加到配置文件中: ``` allow-hotplug wlan0 iface wlan0 inet static address 192.168.4.1 netmask 255.255.255.0 network 192.168.4.0 broadcast 192.168.4.255 ``` 6. 保存并退出配置文件后,重启树莓派以使所有更改生效。使用以下命令重启树莓派: ``` sudo reboot ``` 这就是配置树莓派WiFi热点AP模式)的步骤。希望能对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值