Wi-Fi
Alpine Linux 同时支持无线守护进程,即 wpa_supplicant 和 iwd。本页介绍如何使用 wpa_supplicant 设置使用 WPA 加密的无线网络连接,并提供配置无线接口/驱动程序的故障排除步骤。
先决条件
可用的无线驱动程序。在大多数情况下,安装 linux-firmware 应该可以为您获取所需的驱动程序。安装此软件包可能会在无盘或数据盘模式下产生错误。如果发生此类错误,请切换到系统磁盘模式。
要列出您可用的网络接口
ip link
或
ip a
请参阅 故障排除 部分,查看您是否看不到任何无线接口(例如,wlan0)。您可能需要加载和/或安装驱动程序/固件。如果您使用的是 Broadcom 芯片组,请参阅 Broadcom Wi-Fi 部分。
启动所需的接口
# ip link set wlan0 up
wpa_supplicant
网络 setup-scripts 可以使用 wpa_supplicant
快速配置您的 wifi,wpa_supplicant
可以与 NetworkManager(标准的 Linux 网络配置工具套件)一起使用。如果以上方法不能满足您的要求,请按照本页概述的步骤进行手动配置。
要开始使用,请安装 wpa_supplicant 软件包
# apk add wpa_supplicant
使用此命令将您的 Wi-Fi 网络添加到 wpa_supplicant
# wpa_passphrase 'ExampleWifiSSID' 'ExampleWifiPassword' > /etc/wpa_supplicant/wpa_supplicant.conf
(未广播 SSID 的接入点需要在文件 /etc/wpa_supplicant/wpa_supplicant.conf 中添加额外的行 scan_ssid=1
)
在前台启动 wpa_supplicant 以检查无线连接是否成功。
# wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf
可选的安全预防措施
默认情况下,wpa_supplicant 会以明文形式存储您的 Wi-Fi 密码
/etc/wpa_supplicant/wpa_supplicant.conf 的内容
如果您不希望以明文形式存储密码,只需删除包含 #psk="<YourPasswordShouldBeHereInPlainText>"
的行即可。
如果一切顺利,请通过设置 -B 选项在后台以守护进程方式运行它。
# wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf
为接口配置 IP 地址。
# udhcpc -i wlan0
健全性检查:接口应具有 inet 地址。
$ ip addr show wlan0
在文件中为所需的接口(例如 wlan0
)添加条目,如下所示
/etc/network/interfaces 的内容

健全性检查:确保 /etc/wpa_supplicant/wpa_supplicant.conf 是您要连接的无线接入点的正确配置。
关闭接口。
# ip link set wlan0 down
手动重启(或启动)networking。
# rc-service networking --quiet restart &
服务配置
如果网络工作正常,请继续配置 wpa_supplicant 服务以在启动时自动启动
# rc-update add wpa_supplicant boot
同时确保 networking 设置为在启动时自动启动
# rc-update add networking boot
使用标准的 start、stop 和 restart 选项管理 wpa_supplicant 服务。例如:要启动 wpa_supplicant 服务
# rc-service wpa_supplicant start
通过 wpa_cli 动作启动 udhcpc
使用上述配置,udhcpc 将仅在启动时运行一次。如果 Wifi 在那时不可用,或者网络在启动后发生更改,则需要通知 udhcpc。您可以使用 wpa_cli 动作文件自动通知 udhcpc 网络更改,例如默认安装在 /etc/wpa_supplicant/wpa_cli.sh 的文件。
要手动启动带有动作文件的 wpa_cli 守护进程,请使用 `-a` 选项
# wpa_cli -a /etc/wpa_supplicant/wpa_cli.sh
要自动执行此操作,请使用 wpa_supplicant-openrc 中包含的 `wpa_cli` 服务
/etc/conf.d/wpa_cli 的内容
添加服务以在启动时启动
# rc-update add wpa_cli boot
故障排除
检查 dmesg
运行 dmesg 并检查与无线接口相关的错误。通常,dmesg 提供与网络和所有其他硬件相关的最大信息。
# dmesg
检查网卡
$ cat /proc/net/dev
列出检测到的网络接口。如果预期的接口不可用,请使用 lspci 或 lsusb 检查您拥有的网络硬件芯片
$ lspci -nn
$ lsusb
如果上面显示的默认输出缺乏足够的信息,请参阅 硬件管理。
检查网卡使用的驱动程序并 modprobe 它。检查网卡是否处于 master 模式。在 b43 兼容性页面 上检查您需要的驱动程序
Broadcom Wi-Fi 芯片组用户
Broadcom 芯片组在较旧的计算机中非常流行。b43 驱动程序包含在 linux-lts 或 linux-edge 内核软件包中。但是,您可能需要手动编译此芯片组的固件,因为它未包含在某些网卡的 linux-firmware 中。
要使用 lspci 检查您拥有的 Broadcom 芯片
$ lspci -nn -d 14e4
B43
下载固件切割器。
$ apk add b43-fwcutter
现在我们拥有下载专有驱动程序并从中提取固件所需的一切
# export FIRMWARE_INSTALL_DIR="/lib/firmware" $ wget http://www.lwfinger.com/b43-firmware/broadcom-wl-5.100.138.tar.bz2 $ tar xjf broadcom-wl-5.100.138.tar.bz2 $ b43-fwcutter -w "$FIRMWARE_INSTALL_DIR" broadcom-wl-5.100.138/linux/wl_apsta.o
更多信息可以在 这里 找到。
现在您需要使用 modprobe,以便设备显示出来
# modprobe b43
现在继续执行正常说明。
wl
自动化
您可以使用来自 broadcom-wl 的 APKBUILD。它使用 akms (Alpine Kernel Module Support) 来自动构建和更新新内核版本的驱动程序。
说明可以在仓库中找到。
手动
首先安装我们需要构建驱动程序的软件^
apk add git alpine-sdk linux-headers linux-lts-dev
然后安装驱动程序构建仓库(这是存档的,但它是旧版,因此无关紧要)
git clone https://github.com/antoineco/broadcom-wl cd broadcom-wl
然后按照 git 仓库中列出的构建说明进行操作
make doas make install doas depmod -A doas modprobe wl
重启后,您将拥有一个可用的 wl 驱动程序。现在继续执行正常说明。
Rfkill
错误消息 ioctl 0x8914 failed: No error information
是 busybox ip
表示您的无线电被 rfkilled 的方式,这意味着无线网卡被内核阻止。可以使用 rfkill 更改此设置。显示您的 Wi-Fi 的当前状态
~$ rfkill list 0: phy0: wlan Soft blocked: no Hard blocked: no
如果网卡被硬件阻止,请使用硬件按钮或开关取消阻止。如果网卡未被硬件阻止但被软件阻止,请使用以下命令
# rfkill unblock wifi
参见
- Alpine Linux 中的网络
- iwd - wpa_supplicant 的替代方案
- NetworkManager - 网络的前端
- PostmarketOS Wiki
- Archwiki
- Gentoo Wiki