一个很棘手的问题
写这篇博文是因为我曾经碰到一个棘手的问题,我想很多使用树莓派的人应该也碰到类似问题,问题描述如下:
我们做一个用树莓派控制打印机的项目,我们的树莓派需要连接我们指定的5G路由器,但是我的树莓派里面连过好多个wifi热点,此时,当我们的树莓派开机的时候,它会从第一个扫描,并且以它系统历使记录里面的密码登陆,如果登陆成功,就不会去连我们想要的wifi热点,怎么解决这个问题?
如何编辑wpa_supplicant.conf
其实在树莓派中,连接wifi时通过wpa_supplicant.conf这个文件来控制的,或者应该这样说,在linux系统中时通过wpa_supplicant.conf来控制各个wifi的ssid名称和密码的,所有wifi名称和密码时保存在这里的,下面就是我树莓派上的wpa_supplicant.conf文件
pi@xiajiashan:~$ sudo cat /etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=CN
network={
ssid="4GPRINTER"
psk="12345678"
key_mgmt=WPA-PSK
}
network={
ssid="CKKJ"
psk="a1234567"
key_mgmt=WPA-PSK
}
network={
ssid="xiajiashan"
psk="12345678"
key_mgmt=WPA-PSK
}
network={
ssid="CMCC-Kqzn"
psk="88888888"
key_mgmt=WPA-PSK
}
network={
ssid="4G UFI_A6D"
psk="1234567890"
key_mgmt=WPA-PSK
}
network={
ssid="zjzj"
psk="123456789"
key_mgmt=WPA-PSK
}
pi@xiajiashan:~$
为了解决这个问题——让树莓派去连我指定的wifi,怎么办呢?
我们只需要把我们不希望树莓派去连接的wifi热点的密码改一下,改动的目的就是为了让它连接的时候因为密码不对而去找另一个wifi热点,直到找到我们指定的打印机的那个热点4GPRINTER,有人会说,哎,你这个热点不是第一个吗,树莓派应该第一个找的就是它啊,哈哈,其实树莓派在界面上显示的时候,那个顺序不是按照我们这个文件来显示的。
如何让树莓派开机自动执行wpa_supplicant.conf配置脚本
好接下来,怎么让它执行这个文件呢?
我们只需要在rc.local下面加一条命令就行了
wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf
就像这样:
pi@xiajiashan:~$ cat /etc/rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf
exit 0
pi@xiajiashan:~$
好了,本文到此结束,希望能帮到您!