Linux 下无线网卡开热点与联网性能实测:热点模式、并发能力与速度发挥

Linux 桌面环境下使用无线网卡并非总是顺利,尤其是在开启热点、同时连接 Wi-Fi(STA + AP 模式)或追求高速上网时,常常面临驱动兼容性、频段限制与性能瓶颈的问题。 本文将围绕以下问题展开: 识别热点能力:看 iw list 使用以下命令判断网卡支持哪些工作模式: iw list | grep -A 10 “Supported interface modes” 若输出包含 * AP,说明该驱动支持开启热点;若包含 * managed + * AP 的组合,还支持 STA + AP 并发。 STA + AP 模式:理论支持与实践难题 尽管理论上 Linux 的 mac80211 框架支持 STA + AP 模式,但驱动实现层未必具备完整能力。实际可支持 STA+AP 并发的 USB 网卡极少,主流内核支持主要集中在 …

某型号苹果一体机在 Arch Linux 上配置无线网卡的全过程记录

近期某型号苹果一体机,在 Arch Linux 系统上配置无线网卡时遇到了一些曲折,最终通过移除黑名单并使用内核自带驱动成功解决,整理如下,供后续参考。 背景与硬件信息 该机型配备的无线网卡为 Broadcom BCM43602(802.11ac),PCI 总线识别信息如下: 03:00.0 Network controller: Broadcom Inc. and subsidiaries BCM43602 802.11ac Wireless LAN SoC (rev 01) Subsystem: Apple Inc. Device 016f Kernel modules: brcmfmac, wl 在 Arch Linux 系统中,这款无线网卡通常有两种驱动方案: 遇到的问题 系统早期曾通过 /etc/modprobe.d/blacklist-broadcom.conf 文件写入以下内容,对 Broadcom 系列驱动进行了黑名单设置: blacklist brcmfmacblacklist bcmablacklist b43blacklist b43legacyblacklist brcmsmacblacklist ssb 此举会导致内核自带的 …

Linux 系统中多蓝牙控制器的管理与默认控制器切换

在 Linux(基于 BlueZ 的系统)中,如果同时存在多个蓝牙控制器(例如主板内置蓝牙与 USB 蓝牙适配器),系统通常会根据内核枚举顺序自动指定默认控制器。这种自动分配并不总是符合用户期望,例如希望使用信号更稳定、性能更好的 USB 蓝牙适配器,而非内置蓝牙模块。 控制器的显示与默认情况 通过 bluetoothctl list 命令,可以查看当前系统检测到的蓝牙控制器。例如输出如下: Controller XX:XX:XX:XX:XX:XX Hostname #2 [default]Controller YY:YY:YY:YY:YY:YY Hostname 其中 [default] 表示系统当前使用的默认蓝牙控制器。如果有多个控制器,编号自动按检测顺序排列,内置控制器通常会优先编号并被设为默认。 修改 /etc/bluetooth/main.conf 在 /etc/bluetooth/main.conf 配置文件中,有如下可选参数: #ControllerMode = dual#DefaultAdapter = XX:XX:XX:XX:XX:XX 其中 DefaultAdapter 理论上用于指定默认控制器的 MAC 地址。然而,在大多数 Linux 桌面发行版中,这个参数实际上并不会生效。内核与 BlueZ 会根据硬件探测顺序优先指定第一个控制器,而忽略 DefaultAdapter 配置。 手动切换默认控制器 若希望使用指定的控制器,可以通过 bluetoothctl 工具手动切换: select XX:XX:XX:XX:XX:XX …

Linux 蓝牙多控制器切换与手写板自动断开调试笔记

在 Linux 系统上,如果同时存在内置蓝牙控制器和 USB 蓝牙控制器,蓝牙设备管理会变得复杂,尤其在涉及自动断开设备、切换控制器等需求时,常会遇到意想不到的情况。此文记录一次针对蓝牙手写板的调试过程,作为参考。 背景 需要使用脚本自动断开蓝牙设备(例如手写板),脚本中使用 bluetoothctl info 命令配合 expect 自动化交互流程。然而,在接入 USB 蓝牙控制器后,系统默认仍然使用内置控制器,导致脚本无法正常识别目标设备。 初步现象 执行 bluetoothctl info 时,输出的设备信息中,Device 行并不包含 (random) 或 (public) 标记。例如: Device AA:BB:CC:DD:EE:FF Generic Pen TabletName: Generic Pen TabletConnected: yes 脚本中原本使用的正则表达式如下: regexp {Device ([A-F0-9:]+) \(random\)} $output match mac 由于缺少括号标记,这条正则无法成功提取 MAC 地址。 修改正则 修订后的正则表达式改为不依赖括号标记,仅提取 MAC 地址: regexp {Device …