14.2 无线网络(Wi-Fi)配置

本章详细阐述 FreeBSD 操作系统中无线网络(Wi-Fi)的配置方法,包括无线网卡驱动加载、无线接口创建、无线网络扫描与连接、不同厂商网卡的特殊配置等内容。无线网络配置是移动计算环境和便携式设备的核心功能之一。

附录:更新系统版本后无法使用无线网络

固件与系统更新的兼容性问题

在 FreeBSD 中,固件(Firmware)是硬件设备正常工作所需的底层软件。固件与内核版本之间存在紧密的耦合关系,系统版本更新后可能导致固件不兼容是常见现象。

固件重新获取方法

如果在更新系统版本后无法使用无线网络,请使用命令 fwget 重新获取固件。

如果没有网络连接,可以手动通过 USB 网络共享获得网络连接,再到 https://mirrors.ustc.edu.cn/freebsd-pkg/FreeBSD%3A14%3Aamd64/kmods_latest_3/All/arrow-up-right 等位置下载所需固件。

安装命令示例:

# pkg add /home/ykla/wifi-firmware-iwlwifi-kmod-20241017.1403000_2.pkg

一般无线网卡驱动方式(基于 COMFAST CF-912AC 1200M 802.11AC)

示例网卡选择说明

本节以 COMFAST CF-912AC 1200M 802.11AC 无线网卡为例,介绍一般无线网卡的驱动配置方法。该网卡采用 Realtek 芯片组,在 FreeBSD 中具有较好的兼容性。

硬件识别方法

首先需要确认系统是否能够识别无线网卡。运行以下命令,该命令会显示系统中可用的无线网络接口设备列表:

输出示例如下:

如果输出中冒号 : 后没有内容,则说明无线网卡未被识别。此时可能需要更换无线网卡。

虚拟无线接口机制

在 FreeBSD 中,需要创建一个虚拟的无线接口 wlan0,并将其绑定到物理无线网卡上才能使用。这种设计实现了物理设备与逻辑配置的分离。

  • 创建一个新的无线接口 wlan0,并绑定到物理设备 rtwn0

rtwn0 为上一步输出中的网卡名称,本例中为 rtwn0,请替换为你自己的网卡名称,直接照抄无效。(除非你也使用 COMFAST CF-912AC 1200M 802.11AC)。

  • 观察 ifconfig 输出(已省略以太网卡和 lo0):

应该出现一个 wlan0 接口才对。

扫描 WiFi

在连接到无线网络之前,需要先扫描周围可用的无线网络。启用 wlan0 接口并扫描周围的无线网络:

SSID 的定义与作用

服务集标识符(Service Set Identifier,SSID)是无线网络的名称标识,用于区分不同的无线网络。

  • wlan0 接口连接到 SSID 为 test_5G 的无线网络(如果没有密码的话):

① test_5G 是示例 WiFi 名称(SSID)

  • 如果扫描不到 WiFi 网络,可能需要修改无线区域设置或路由器信道:

  • 重启网络服务以接入 WiFi:

WPA 安全机制概述

对于加密的无线网络,需要使用 Wi-Fi 保护访问(Wi-Fi Protected Access,WPA)配置文件进行连接。WPA 是目前主流的无线网络安全协议,提供了数据加密与身份认证功能。

  • 创建 /etc/wpa_supplicant.conf

以上:

  • ssid 指定要连接的无线网络 SSID(WiFi 名称),此处示例为 test_5G

  • psk 指定无线网络的密码,此处示例为 freebsdcn


  • /etc/rc.conf 里面加入或修改相关条目如下:

  • 重启系统以使配置生效:

  • 使用 ifconfig 查看连接情况,可以看到已经连接成功(IP 为 192.168.31.178):

英特尔无线网卡驱动概况

英特尔(Intel)网卡是目前使用较为广泛的无线网卡之一。iwlwifi 驱动 适用于arrow-up-right 备份arrow-up-right AC 8265、AC 9260、AC 9560、AX200、AX201、AX210、AX 211 以及旧的 iwm 驱动所包含的网卡,见 英特尔 ® 无线适配器的 Linux* 支持arrow-up-right 备份arrow-up-right


  • 将以下部分写入 /etc/rc.conf

  • 创建 /etc/wpa_supplicant.conf

  • 启动 WiFi 测试:

故障排除与未竟事宜请参考:wiki/WiFi/Iwlwifiarrow-up-right 备份arrow-up-right

博通(Broadcom)网卡驱动

博通(Broadcom)是另一家常用的无线网卡厂商。FreeBSD 内置的 Broadcom(博通)网卡驱动主要有两种:bwibwn,其中 bwi 支持较旧型号,bwn 支持较新型号。两者的支持范围部分重叠,但 bwn 对硬件的兼容性更好。

那么,应该使用哪种驱动呢?请参考 FreeBSD Broadcom Wi-Fi Improvementsarrow-up-right。可能打不开,可以用互联网档案馆的 存档arrow-up-right 备份arrow-up-right 查看。

示例:BCM4301、BCM4303、BCM4306 rev 2

经阅读参考文献研判,只能使用 bwi 驱动。

  • 首先,在 /boot/loader.conf 文件中添加下行,设置系统在启动时加载 bwi 驱动(用于 Broadcom 无线设备):

  • 然后使用 ports 安装 Broadcom 无线设备的固件(未提供二进制包,下同):

可以先通过 USB 或以太网共享网络来安装,也可以提前将所需依赖下载到指定目录。

  • /etc/rc.conf 文件中添加下行,将物理无线设备 bwi0 绑定到 wlan0 接口:

重启系统即可。

示例:配置 bwn 驱动

  • 安装 Broadcom 无线设备的固件:

  • 编辑 /boot/loader.conf 文件添加下行,设置系统在启动时加载 bwn 驱动(用于 Broadcom 无线设备):

  • 配置 /etc/rc.conf 文件添加下行,将物理无线设备 bwn0 绑定到 wlan0 接口:

附录:特殊型号需要编译内核

对于一些特殊型号的博通无线网卡,可能需要重新编译内核才能获得完整支持。

一些在 FreeBSD Broadcom Wi-Fi Improvementsarrow-up-right(若无法访问,可参考互联网档案馆的 存档arrow-up-right 备份arrow-up-right)中列出的型号带有 $ 注释:The optional bwn(4) PHY driver is derived from b43 GPL code, and must be explicitly enabled.,表示需要使用基于通用公共许可证(GNU General Public License,GPL)协议的代码。由于 FreeBSD 基本系统及内核去除了 GNU 组件,因此需要重新编译内核以支持该选项。

然后在 /boot/loader.conf 文件中添加以下配置:

完成后重启系统,使用 ifconfig 检查是否存在 wlan0 接口,然后按照前文教程进行配置。

参考文献

故障排除概述

在配置无线网络的过程中,可能会遇到一些常见问题,以下是相关的故障排除方法。

如果连不上或者搜不到特定信道

无线网络的区域码设置会影响可用的信道列表。尝试将 WiFi 区域码选 NONE,然后选 China。

  • /etc/rc.conf 中写入:

创建 wlan0 接口时设置无线国家码为 CN,使用无特定无线频段限制。

然后重启系统。

断开 WiFi

禁用 wlan0 接口:

WPA 验证

配置 wlan0 接口使用 WPA,并设置静态 IP 地址和子网掩码:

设置静态 IP

为 wlan0 接口配置静态 IPv4 地址和子网掩码:

开启无线热点

  • 先确认你的网卡是否支持 hostap,列出 wlan0 接口支持的无线功能和能力:

可以看到该网卡支持 hostap 功能。

  • 销毁 wlan0 接口并释放其占用的资源:

  • 再创建:

附录:图形化网络配置工具

图形化网络管理工具,类似于 Linux 的 Plasma NetworkManager 或 NetworkManager:

  • 使用 pkg 安装:

  • 或者使用 Ports 安装:

最后更新于