Raspberry Pi的wlan1接口在关机后如何工作?

How to get Raspberry Pi‘s wlan1 interface work after poweroff?

我在 Raspberry Pi 3B+ 中插入了一个额外的 wifi 连接器。将我的 Raspberry Pi 断电或使用 sudo poweroff 保存关机后,我看不到附加连接器的接口。但是在 sudo reboot 之后,在终端中键入 sudo iwconfig 后可以看到 wifi 连接器。

我的 /etc/network/interfaces 包含:

source-directory /etc/network/interfaces.d
auto lo 
iface lo inet loopback
iface eth0 inet dhcp
auto wlan0
allow-hotplug wlan0
iface wlan0 inet manual
    post-up iw dev $IFACE set power_save off
auto wlan1
allow-hotplug wlan1
iface wlan1 inet manual
    post-up iw dev $IFACE set power_save off
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp

我的 /etc/modules 包含:

i2c-dev
bcm2835_wdt
# r8712u # this driver makes problems 
r92su

我的 Raspberry Pi 3 b+ 中的内部 WiFi 适配器是 broadcom,我的外部 WiFi 适配器是 Realtek RTL8191SU。

我已经尝试关闭 wlan 适配器的省电模式:

post-up iw dev wlan1 set power_save off

编辑:

Networking.service:

systemctl status networking.service

Returns: 无法初始化控制界面 'DIR=/var/run/wpa_supplicant GROUP=netdev'。您可能已经有另一个 wpa_supplicant 进程 运行 或者该文件是由 wpa_supplicant 的不干净终止留下的,在这种情况下,您需要先手动删除该文件。

编辑 2: 我的 WLAN 在

之后连接
sudo killall wpa_supplicant
sudo poweroff

关闭流并启动 Raspberry Pi 它运行良好,但如果我这样做并移除 USB 鼠标和键盘,它将无法连接到 wifi。看起来 Pi 的 USB 连接器存在启动问题。

编辑 3:

USB 连接和当前分发的系统似乎存在错误。 每次我移除 usb 鼠标和键盘时,wlan usb 适配器都不再激活。

编辑 4:

这也可能是 rtl8191su 和 r8712u 的驱动程序问题。 我在 raspberry pi 论坛上的 post: https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=230193&p=1410456&hilit=wlan1#p1410456

编辑 5: 我已经试过了 https://www.raspberrypi.org/forums/viewtopic.php?t=191844 ,但是在我这样做之后,我的系统将无法正确启动并且 broadcom 内部 wlan 适配器将无法正常工作。在此之后我得到了 wlan0 和 wlan1,但它们都是连接到同一个 wlan 的相同网络适配器(奇怪)。 所以问题到现在都没有解决!

如何在关闭流并启动Raspberry Pi后让Raspberry Pi的wlan1接口工作?

我调查了这个问题,发现了一个修复方法:

1.In 终端类型 sudo nano /etc/network/interfaces

2.Edit 您的接口配置文件,确保文本如下所示...

auto lo
auto wlan0

iface lo inet loopback
iface eth0 inet dhcp

allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp

4.Save 您的工作,方法是按 Ctrl X 并确认保存。关闭和打开 pi

5.When 你的 Pi 已经重新启动,再次打开 GUI。现在双击 WiFi 配置图标以显示 wpa_gui 属性框。如果一切顺利,您现在应该会在“适配器”部分看到 wlan0。从这里您应该扫描您的 SSID 并设置连接。

希望对您有所帮助。

首先通过黑名单抑制模块的加载,稍后按特定顺序加载它们:

在终端输入:

$ sudo vi /etc/modprobe.d/wlan-blacklist.conf

这将创建一个新文件。确保以“.conf”结尾。在此处插入您的模块:

blacklist r8712u
blacklist 8192cu

保存并关闭文件。现在 运行 这个:

$ sudo depmod -ae
$ sudo update-initramfs -u
$ sudo vi /etc/modules

在文件末尾,您按照模块应出现的顺序添加模块(即 wlan0 在 wlan1 之前,等等):

# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
# Parameters can be specified after the module name.

snd-bcm2835
8192cu
r8712u

然后尝试将其关闭再打开

我得到了这个问题的解决方案:

在内部芯片适配器之后,首先为您的 usb wlan 适配器加载模块(驱动程序)。在这个例子中,我得到了带有 sudo apt-get install firmware-realtek 的 RTL8191SU 以及 r8712u 驱动程序。

sudo nano /etc/modprobe.d/wlan-blacklist.conf

像这样编辑 wlan-blacklist.conf:

blacklist r8712u

之后运行:

sudo depmod -ae
sudo update-initramfs -u
sudo nano /etc/modules

像这样编辑模块:

i2c-dev
brcmfmac
r8712u

现在在 Raspberry Pi 3b+:

的内部 wlan 芯片之后稍后加载 r8712u 模块
sudo nano /etc/crontab

向 crontab 添加行:

@reboot root (sleep 20; modprobe r8712u) &

现在有一个正确的接口文件:

sudo nano /etc/network/interfaces

wlan1 是 realtek wlan 适配器,wlan0 是内部 broadcom wlan 芯片:

auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
auto wlan0
allow-hotplug wlan0
iface wlan0 inet manual
post-up iw dev wlan0 set power_save off
auto wlan1
allow-hotplug wlan1
iface wlan1 inet dhcp
post-up iw dev wlan1 set power_save off
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet manual

非常重要,默认界面是手动的!

sudo reboot 

sudo poweroff

这两个命令都会让wifi配置正确。即使我关闭 raspberry pi 然后再次启动。

享受你的第二个 wlan 适配器!