2025 年 3 月

3 月已完成内容

两款支持 WiFi 4 和 5 的驱动现已可用

适用于 Intel WiFi 设备的 iwlwifi 驱动

拥有 Intel WiFi 设备(AX200 及更新型号)的用户现在能对 FreeBSD 的开发分支中当代 WiFi 功能开箱即用。

这些改进包括:通过硬件加速实现加密功能,以提高安全性并减少 CPU 使用率;支持 HT(WiFi 4)和 VHT(WiFi 5)连接标准,明显提升无线速度。这些增强功能目前已在 main 和 stable/14 分支中提供。待测试成功后,将成为即将发布的 FreeBSD 14.3 的标准功能。

如果升级后出现问题,用户可以通过系统调优参数轻松禁用这些功能,直到问题解决。

注意

将在 4 月从基本系统(src.git)中移除 Intel WiFi 固件。修改之后,用户须通过软件包系统安装固件。

注意

自 3 月底起,一组更新后的测试说明已发布:https://lists.freebsd.org/archives/freebsd-wireless/2025-April/003131.html

GitHub 议题: https://github.com/FreeBSDFoundation/proj-laptop/issues/36 https://github.com/FreeBSDFoundation/proj-laptop/issues/33

适用于 Intel WiFi 设备的 iwx 驱动

iwx 驱动源自 OpenBSD,由 Future Crew LLC 移植至 FreeBSD,并慷慨地发布了源代码。

iwx 支持多款较新的 Intel WiFi 网卡,预计可兼容 legacy、HT 和 VHT 速率。目前移植仍存在部分问题,但现阶段希望能有更多测试反馈。

注意

为避免破坏现有 WiFi 配置,iwx 的探测优先级低于 iwlwifi。可以通过 devmatch 阻止 iwlwifi 以使用 iwx。

GitHub 议题: https://github.com/FreeBSDFoundation/proj-laptop/issues/5

pkgbasify 工具更加健壮

pkgbasify 工具旨在帮助笔记本用户将现有的 FreeBSD 系统迁移至 pkgbase 管理。本月发布了相关更新,以提升在迁移至 pkgbase 管理 FreeBSD 基础系统过程中的可靠性与用户安全性。

尽管转换过程本质上较为复杂,此次更新显著降低了风险:在达到不可逆的关键点(即 pkgbasify 开始覆盖基本系统文件)之前,如果出现错误将不会对系统造成更改。此外,更新还将诸如获取所需软件包等容易出错的步骤提前执行,以防止后续阶段失败。

为进一步提升出错时的恢复能力,pkgbasify 还会尝试使用 bectl 创建启动环境,方便用户回滚。这些增强使得转换过程更加安全、可靠。

GitHub 议题: https://github.com/FreeBSDFoundation/proj-laptop/issues/65


本月正在审查的工作

使用 S0ix 和 s2idle 低功耗状态实现休眠

此功能自上月起仍在审查中。

开发了一款新的电源管理驱动(acpi_spmc),用于识别设备的电源需求,帮助笔记本通过 S0ix suspend hook 进入更深层的休眠状态,从而启用如 s2idle 这类更节能的睡眠模式。支持最低功耗状态 D3cold 已添加,并修复了设备在电源模式之间切换的相关问题。

测试已启动,但仍需进行更全面的端到端测试与调试。

GitHub 议题: https://github.com/FreeBSDFoundation/proj-laptop/issues/32

修复阻碍 Linux WiFi 驱动运行的问题

此功能自上月起仍在审查中,但审查已有一定进展,详见 GitHub 议题。

为更好地支持 Linux WiFi 驱动,本项目持续完善 FreeBSD 中的 Linux 内核编程接口(LinuxKPI)翻译层。该接口层为许多 Linux 内核接口提供 API 兼容实现,从而简化将 Linux 驱动源代码适配到 FreeBSD 的过程。当前阻碍在于内存分配的处理方式不同,导致如 rtw8x(Realtek)等无线驱动在请求超过内存页大小的连续内存时失败。

3 月底相关问题的修复已提交审查:

GitHub 议题: https://github.com/FreeBSDFoundation/proj-laptop/issues/60

移植 Linux 6.7 图形驱动

此功能自上月起仍在审查中,但已有进展,详见 GitHub 议题。

2023 年 12 月提交的 drm-kmod 中添加 Linux 6.7 图形驱动支持的 PR 正等待相关补丁被接受。在 26 个提交补丁中,已有 24 个被接受。此外,还有一个 相关硬件支持的 PR 仍在开放状态。

GitHub 议题: https://github.com/FreeBSDFoundation/proj-laptop/issues/47

移植 Linux 6.8 图形驱动

3 月新提交审查的 Linux 6.8 图形驱动移植工作现已提交至 drm-kmod:

https://github.com/freebsd/drm-kmod/pull/344

GitHub 议题: https://github.com/FreeBSDFoundation/proj-laptop/issues/49

进展更新

电源管理

支持基于 LinuxKPI 的 WiFi 的挂起与恢复

正在进行开发,以确保受 LinuxKPI 控制的无线网卡在系统挂起与恢复时同步进入相应状态。

3 月开发了一款通用框架,可成功将挂起请求传递至 LinuxKPI 管理层,仅需对驱动做轻微修改。

目前开发受阻于 LinuxKPI PCI 代码中的一个问题,需先解决后才能继续推进。

完成后将使笔记本在系统挂起时可使无线网卡进入低功耗状态,在恢复时无缝恢复功能,从而节省电力、延长电池寿命。

GitHub 议题: https://github.com/FreeBSDFoundation/proj-laptop/issues/58

兼容性与系统需求

异构核心下的性能提升

目前有两项正在进行的工作致力于改进 CPU 任务管理:

奈飞正在测试调度器相关变更,并提供了 Web 延迟和 CPU 使用率图表。开发重心已转移至扩展 late 工作负载模拟器,以模拟更复杂的场景,并收集真实 Web 工作负载的指标以构建仿真测试。

性能优化方面,原计划使用 cpuset 的方法不够灵活,且干扰管理员控制,因此现在改为在进程所属的 cpuset 内部实施核心选择策略。

该功能完成后,将能根据任务需求将进程调度到高性能核心或高能效核心,实现性能与能耗的平衡,提升整体响应速度与效率。

GitHub 议题: https://github.com/FreeBSDFoundation/proj-laptop/issues/54 https://github.com/FreeBSDFoundation/proj-laptop/issues/22

改进音频路由支持

当前正在重新设计音频设备的支持方式,以更灵活地适配各种罕见情况。

正在进行的工作改进了耳机与扬声器的运行方式。目前 /dev/dsp 是指向 /dev/dsp${hw.snd.default_unit} 的符号链接,但此方式存在局限,应用程序无法将其作为真正的通用默认设备使用,许多用户需依赖 virtual_oss 来提供音频路由功能。

此次更新引入了一款新的虚拟音频设备 /dev/vdsp,负责派发至当前设置的默认设备。系统将 dsp_clone() 改为克隆 /dev/vdsp,而非具体设备。应用程序打开 /dev/dsp 时无需再关心设备是否可用或默认设备是否更改,sound(4) 子系统将自动完成所有必要路由。

此更改实质上将热插拔能力集成到 sound(4) 中,无需额外音频服务器软件如 virtual_oss 即可实现类似功能。新实现确保了热插拔和热拔插都能顺利工作,使音频设备在 FreeBSD 上运行更可靠、更直观。

GitHub 议题: https://github.com/FreeBSDFoundation/proj-laptop/issues/17

总结

基金会再次衷心感谢所有参与本项目的人员。

特别感谢以下成员:

  • 我们的开发者:

    • Aymeric Wibo

    • Bjoern Zeeb

    • Christos Margiolis

    • Isaac Freund

    • Jean-Sebastien Pedron

    • Li-Wen Hsu

    • Mitchell Horne

    • Olivier Certner

    • Tom Jones

  • 项目团队:

    • Deb Goodkin

    • Ed Maste

    • Joe Mingrone

    • Alice Sowerby

  • 笔记本与台式机工作组:

    • Chris Moerz

    • 所有参会人员

  • FreeBSD 项目

  • Quantum Leap Research

  • Netflix —— 他们对我们的调度器补丁集进行了测试

  • Dell —— 他们捐赠了 UVC 内核驱动程序

  • Future Crew —— 他们提供了 iwx WiFi 驱动的源代码

请参阅 README 了解更多有关 FreeBSD 基金会笔记本项目的信息。

最后更新于