『树莓派』WiFi信号中继
首先要先感谢树莓派实验室创客群-G的大佬:【管理员】辣鸡管理
话说我家的WiFi信号有些差劲,就想用树莓派中继一下,弄了一晚上之后成功,特此记录。
我的配置:
树莓派其实可以用其他版本,zerow的话就需要MicroUSB转USB的线
之所以要用USB网卡是因为中继需要两张无线网卡:一张连接网络,一张开AP。
如果你想用网线开热点的话,就不要理这个,把下面的“连接到网络的网卡”改成eth0即可
请事先调试好你的树莓派确保能正常上网和连接,如有异议请点击这里入门
好的我们开始!
Step1:插上USB网卡
插上后要检查一下有没有被识别,一般都能够别识别的
键入命令以查看网络情况:
1 | ifconfig |
之后应该有两张无线网卡:wlan0和wlan1,如图:
如果没有找到两张网卡,就是没有被识别,可以自行百度树莓派识别USB网卡
Step2:安装create_ap
create_ap是GitHub上一个开源项目,专门用于开热点
1 | #把这个项目Git下来并安装 |
这个东西的语法自己用-h去问,大概是这样的:
1 |
|
完成了之后继续
Step3:切断和重连
因为两张无线网卡都连接到了WiFi(或者说是都在使用中),所以create_ap调用时就会报错,所以我们要先切断一张网卡的连接(这里我弄了有3、4个小时才搞清楚)
首先,你的那张USB网卡可能没有开AP的功能,而树莓派的板载网卡是有的,所以辨别要切断哪一个网卡的连接
用命令尝试一下:
1 | sudo create_ap wlan0 wlan1 |
其中有一个会报如下错误(除非你两张都支持):
1 | ERROR: Your adapter does not support AP (master) mode |
那么,就可以知道哪一张是能开AP的了,下面用wpa切断这张网卡的WiFi连接(要用于开AP,必须空闲状态),此时要先记住另一个网卡的ip,如果你是用无线网络连接的话,可能就被一同切断,这时就要通过另一网卡连接。
1 | wpa_cli -i wlan0 disable_network 0 |
再ifconfig一下,你会发现有一张网卡没有ip地址,此时它被闲置了:
OK,此时再用create_ap创建AP(注意你选择的网卡):
1 | sudo create_ap wlan0 wlan1 你的WiFi名 你的WiFi密码 |
如果无误一般不会报错,但我在用2019年树莓派新版系统Raspbian Buster时会报错(弄了我2个小时,不知道这个bug现在修复了没有)。
此时,另一种方法可以避免这个bug(如果你已经报错,先重启):
1 | #直接键入 |
之后它会提示你输入SSID(网络名)和密码而并不会报错,真是巧妙
好了,万事大吉了
当然还有一个画龙点睛之笔
画龙点睛:开机自启
关于开机自启,有很多方法,但我偏爱下面的这一个
先写一个开WiFi的脚本,再添加到rc.local里
1 | #创建脚本: |
Ctrl+X,然后按Y确认保存
之后加权限
1 | chmod 777 auto_ap.sh |
再打开rc.local文件,并加入代码
1 | #打开rc.local |
sudo reboot
Okay