前言
本人打算用树莓派做服务器,不用图形界面,所以刷机系统选择2020-02-13-raspbian-buster-lite.zip
我的使用场景是网线连接内网并固定IP,用于SSH登录,WLAN用于连接外网。
因为树莓派自带的wifi坏了,搞了个USB无线网卡插上。我使用的是RTL8188EUS,使用sudo raspi-config,配置wifi最开始提示:
Could not communicate with wpa_supplicant
There was an error running option N2 Wi-fi
配网方式一
网上找了半天,这个老兄的方法实测可行:
使用 https://blog.youkuaiyun.com/dxuehui/article/details/51161338提供的第一种方法,问题得以解决。
具体他提供的有些多,我总结如下:
使用如下命令获得wifi设置:
wpa_passphrase SSID名称 密码
会显示如下:
network={
ssid="SSID名称"
#psk="密码"
psk=4b7084a26fea96aaf67518820cc1151fb8f47c5fc0674cd6e877a2ecd70b596e
}
将得到的东东复制到/etc/wpa_supplicant/wpa_supplicant.conf中去,
最后所得文件全部内容:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=CN
network={
ssid="COMFASRT_123"
psk=f8860625d1faca6882881f04584b14f4ef8f98ec908b6f98ba1817761e3af711
}
然后修改/etc/network/interfaces文件:在文件末尾增加以下内容:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.1.10
netmask 255.255.255.0
allow-hotplug wlan0
auto wlan0
iface wlan0 inet dhcp
pre-up wpa_supplicant -B w -D wext -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf
post-down killall -q wpa_supplicant
注意,eth0不要设置网关,它不需要网关,因为是内网。设置了反而会影响访问公网。在配置过程中也遇到很多坑,各种各样的方法配置都试过了。要么保存不了静态IP,要么开机eth0被禁用(有这么个说法,树莓派有一个网卡连接成功,其他就不会连接了?)。现在按照这个配置是可以双网卡都启用的。
最后执行
sudo service networking restart
或者直接重启树莓派就好了。
配网方式二
直接上大名鼎鼎的NetworkManager
强烈推荐小白用此方法
第〇步:
刷机,新建ssh文件,路由器查看树莓派ip,ssh连接树莓派。
第一步:
针对板子自带wifi损坏的情况:
因为我的wifi坏了,还会提示
rfkill: cannot open /dev/rfkill: Permission denied
rfkill: cannot read /dev/rfkill: Bad file descriptor
哎,太难了。
去/boot/config.txt里面关掉吧
最后面追加一句
dtoverlay=pi3-disable-wifi
就可以了。
我看了下/boot/overlays/README文档有提到,dtoverlay=disable-wifi也是可以的。反正我的派是3b,我用pi3-disable-wifi能行,我就没有再去试了。改完重启就没有这个提示了。
针对正常板子的情况:
正常的板子,每次开机后,都有这个进程
root 390 1 0 10:41 ? 00:00:00 wpa_supplicant -s -B -c/etc/wpa_supplicant/wpa_supplicant.conf -iwlan0 -Dnl80211,wext
这个进程如果开着的话,后面的networkmanager将无法正常使用WiFi。不信可以试试。但是这个进程从何而来,又该如何关闭?
经过本人不懈的查找,在这里找到了答案。
dhcpcd使用hook管理了wpa_supplicant,导致每次启动时都有一个这样的进程。具体在/lib/dhcpcd/dhcpcd-hooks/10-wpa_supplicant中,有一个start。就是它开启了这个进程。
那么如何关闭呢?
通过编辑/etc/dhcpcd.conf文件,在最后追加
nohook wpa_supplicant
即可。再次重启,是不是没有这个进程了。
第二步:
安装NetworkManager
sudo apt-get install network-manager
第三步:
启动NetworkManager
systemctl enable NetworkManager
systemctl start NetworkManager
第四步:
sudo nmtui(每次敲入这个命令,心里都要默念“尼玛腿”,我个人理解是network manager text user interface的缩写,同样的nmcli是network manager cmd line interface)
第五步:以太网
只需要编辑一个连接并激活就好了。
第六步:WiFi
wifi不用建立连接,直接到active那里选择并输入密码就好了。简直简单到哭。
第七步:
根据情况,重启看看,是不是有IP了
第八步:
再看看,NetWorkManager管理的网卡
sudo nmcli device
第九步:
关闭干扰networkmanager的服务
sudo systemctl disable dhcpcd.service
sudo systemctl disable networking.service
可以下载chkconfig来确认
sudo apt-get install chkconfig
sudo chkconfig -list