> For the complete documentation index, see [llms.txt](https://book.bsdcn.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://book.bsdcn.org/status/2026/2026-q2.md).

# FreeBSD 2026 年第二季度状态报告

* 原文：[FreeBSD Status Report Second Quarter 2026](https://www.freebsd.org/status/report-2026-04-2026-06/)
* 版本：2026 年 7 月 27 日
* 最后作者：Lorenzo Salvadore

## 引言

这是 2026 年的第二份状态报告，共计 41 项条目。

感谢所有提交报告的人！无论你是首次提交者、谷歌编程之夏的学生、某个 FreeBSD 团队的成员还是其他类型的作者，你的报告都有价值。它有助于让社区了解正在发生的事情、正在取得的进展、可能需要帮助的地方等。

无论你是何种 FreeBSD 贡献者，请考虑在下季度也写一份关于你自己贡献的报告！

我还要感谢 [Vladlen Popolitov](mailto:vladlen@FreeBSD.org) 实现了一项长期期望的功能：用于跟踪状态报告的 [RSS 订阅源](https://www.freebsd.org/status/feed.xml)。

祝阅读愉快！

Lorenzo Salvadore

状态团队

此致

## FreeBSD 团队报告

来自各官方及半官方团队的报告，见 [管理页面](https://www.freebsd.org/administration/)。

### FreeBSD 基金会

**链接**：

[FreeBSD 基金会](https://freebsdfoundation.org/)

[技术路线图](https://freebsdfoundation.org/blog/technology-roadmap/)

[捐赠](https://freebsdfoundation.org/donate/)

[基金会合作伙伴](https://freebsdfoundation.org/our-donors/freebsd-foundation-partnership-program/)

[FreeBSD 期刊](https://freebsdfoundation.org/journal/)

[基金会事件](https://freebsdfoundation.org/our-work/events/)

**联系方式**：Deb Goodkin <<deb@FreeBSDFoundation.org>>

FreeBSD 基金会是一家 501(c)(3) 非营利组织，致力于通过技术与非技术支持推进 FreeBSD 的发展。基金会完全由捐赠资助，支持软件开发、基础设施、安全和协作工作；组织活动和开发者峰会；提供教育资源；并在法律事务中代表 FreeBSD 项目。

#### 操作系统改进

在 2026 年第二季度，FreeBSD 基金会赞助了 638 次 `src`、120 次 `ports` 和 31 次 `doc` 提交。

请参阅以下描述了大部分赞助开发工作的报告条目：

* [改进音频栈](https://www.freebsd.org/status/report-2026-04-2026-06/#_audio_stack_improvements)
* [协同处理器性能控制（CPPC）](https://www.freebsd.org/status/report-2026-04-2026-06/#_collaborative_processor_performance_control_cppc)
* [Dockerbox](https://www.freebsd.org/status/report-2026-04-2026-06/#_dockerbox)
* [DRM 驱动程序](https://www.freebsd.org/status/report-2026-04-2026-06/#_drm_drivers)
* [Framework 笔记本电脑支持](https://www.freebsd.org/status/report-2026-04-2026-06/#_framework_laptop_support)
* [FreeBSD、CRA、EuroBSDCon 和安全团队](https://www.freebsd.org/status/report-2026-04-2026-06/#_freebsd_cra_eurobsdcon_and_security_team)
* [Microsoft HyperV 和 Azure 上的 FreeBSD](https://www.freebsd.org/status/report-2026-04-2026-06/#_freebsd_on_microsoft_hyperv_and_azure)
* [FreeBSD 软件物料清单（SBOM）](https://www.freebsd.org/status/report-2026-04-2026-06/#_freebsd_software_bill_of_materials_sbom)
* [bhyve 的完整 CPUID 控制](https://www.freebsd.org/status/report-2026-04-2026-06/#_full_cpuid_control_for_bhyve)
* [202606 黑客马拉松——加拿大新斯科舍省哈利法克斯](https://www.freebsd.org/status/report-2026-04-2026-06/#_hackathon_202606halifax_nova_scotia_canada)
* [休眠（即挂起到磁盘）](https://www.freebsd.org/status/report-2026-04-2026-06/#_hibernate_aka_suspend_to_disk)
* [改进 bhyve 虚拟机监控器的 libvirt 支持](https://www.freebsd.org/status/report-2026-04-2026-06/#_improve_libvirt_support_for_bhyve_hypervisor)
* [改进 FreeBSD 上的 OpenJDK](https://www.freebsd.org/status/report-2026-04-2026-06/#_improve_openjdk_on_freebsd)
* [LinuxKPI 802.11 和原生无线动态](https://www.freebsd.org/status/report-2026-04-2026-06/#_linuxkpi_802_11_and_native_wireless_update)
* [NTSYNC(9)](https://www.freebsd.org/status/report-2026-04-2026-06/#_ntsync9)
* [进程描述符 API 完成 2](https://www.freebsd.org/status/report-2026-04-2026-06/#_process_descriptor_api_completion_2)
* [FreeBSD Port 树莓派启动盘制作工具](https://www.freebsd.org/status/report-2026-04-2026-06/#_raspberry_pi_imager_freebsd_port)
* [FreeBSD 上的 ROCm 支持](https://www.freebsd.org/status/report-2026-04-2026-06/#_rocm_support_on_freebsd)
* [调度器](https://www.freebsd.org/status/report-2026-04-2026-06/#_scheduler)
* [改进挂起/恢复](https://www.freebsd.org/status/report-2026-04-2026-06/#_suspendresume_improvements)
* [Sylve——FreeBSD 统一系统管理平台](https://www.freebsd.org/status/report-2026-04-2026-06/#_sylvea_unified_system_management_platform_for_freebsd)

其他亮点：

* 基金会正在支持两个项目：笔记本电脑支持与可用性项目（与 [Quantum Leap Research](https://www.ql-research.com/) 合作），以及[网络弹性法案（CRA）就绪项目](https://www.freebsd.org/status/report-2026-04-2026-06/#_cyber_resilience_act_cra_readiness_project)。
* 有关笔记本电脑支持与可用性项目的背景信息，请参阅 [2025Q1 季度状态报告](https://www.freebsd.org/status/report-2025-01-2025-03/#_freebsd_foundation)。
* FreeBSD 正参与 [谷歌编程之夏 2026](https://summerofcode.withgoogle.com/)。有关每个项目的信息，请参阅 [FreeBSD 编程之夏 2026 项目 Wiki 页面](https://wiki.freebsd.org/SummerOfCode2026Projects)。

#### 宣传

在 2026 年第二季度，我们的宣传工作侧重于扩展教育视频内容，触达了比以往更多的观众，将社区聚集在一起参加富有成效的供应商峰会，并回顾了有助于维持和增长 FreeBSD 关注度的工作。以下是基金会在 2026 年第二季度为 FreeBSD 宣传的几种方式：

* 代表 FreeBSD 参加 [开源峰会北美站](https://osselcna2026.sched.com/event/2JQsf/what-running-freebsd-on-a-modern-laptop-taught-me-deb-goodkin-the-freebsd-foundation?iframe=no\&w=\&sidebar=yes\&bg=no)，FreeBSD 基金会执行董事 Deb Goodkin 发表了演讲“在现代笔记本电脑上运行 FreeBSD 教会了我什么”。
* [2026 年 6 月 FreeBSD 开发者峰会](https://wiki.freebsd.org/DevSummit/202606) 于 2026 年 6 月 17-18 日在渥太华举行。完整回顾请关注我们的 [YouTube 页面](https://www.youtube.com/@FreeBSDMeetings/streams)。
* 以白银级赞助商身份赞助 [BSDCan 2026](https://www.bsdcan.org/2026/index.html) 并参加会议，与 FreeBSD 社区联系并支持该活动。
* 公布了我们获接受的 [谷歌编程之夏 2026](https://summerofcode.withgoogle.com/programs/2026/organizations/the-freebsd-project) FreeBSD 项目和贡献者。
* 通过参与 GitHub Maintainer Month 继续开展外联和政策参与，Anne Dickison 参加了一场关于年龄验证提案及其对开源维护者影响的[小组讨论](https://www.linkedin.com/events/7455656610233876480/)。
* 加入了开源安全基金会（[OpenSSF](https://www.linuxfoundation.org/press/openssf-notes-quarter-of-growth-with-new-members-added-ai-security-resources-and-growing-community)），协作加强跨生态系统的开源安全。
* 发布了以下博客和视频，以帮助告知和教育社区：
  * [测试征集：介绍笔记本电脑集成测试项目](https://freebsdfoundation.org/blog/call-for-testing-introducing-the-laptop-integration-testing-project/)
  * [AsiaBSDCon 2026 旅行报告——Minsoo Choo](https://freebsdfoundation.org/blog/asiabsdcon-2026-trip-report-minsoo-choo/)
  * [AsiaBSDCon 2026 旅行报告——Saikeo](https://freebsdfoundation.org/blog/asiabsdcon-2026-trip-report-saikeo/)
  * [清理 FreeBSD 中的关键基础设施](https://freebsdfoundation.org/blog/cleaning-up-critical-infrastructure-in-freebsd/)
  * [FreeBSD 开箱即用的权限提升](https://www.youtube.com/watch?v=dA-TNsVG9IY\&t=7s)
  * [CRA 项目常见问题/指南](https://freebsdfoundation.org/project/cyber-resilience-act-readiness/)
  * [2026 年 4 月法兰克福地区 FreeBSD 黑客马拉松回顾——Sven Ruediger](https://freebsdfoundation.org/blog/recap-of-the-april-2026-frankfurt-area-freebsd-hackathon-sven-ruediger/)
  * [FreeBSD 图形 Port 升级到 Linux 6.12](https://freebsdfoundation.org/blog/freebsd-graphics-port-upgraded-to-linux-6-12/)
  * [EuroBSDCon 2026 旅行资助申请现已开放](https://freebsdfoundation.org/blog/eurobsdcon-2026-travel-grant-application-now-open/)
* 发布了 [2026 年 4 月](https://freebsdfoundation.org/news-and-events/newsletter/april-newsletter/) 和 [2026 年 5 月](https://freebsdfoundation.org/news-and-events/newsletter/may-newsletter/) FreeBSD 基金会通讯。
* 发布了 FreeBSD 期刊 [一月/二月/三月](https://freebsdfoundation.org/our-work/journal/browser-based-edition/laptop-desktop/) 刊，并附有 HTML 版本的文章。

#### 改进持续集成与工作流

基金会支持一名全职工作人员，专门负责改进项目的持续集成系统和测试基础设施。

#### 法律与 FreeBSD 知识产权

基金会持有 FreeBSD 商标，保护商标是我们的责任。我们还为核心团队提供法律支持，以调查出现的问题。

访问 [https://freebsdfoundation.org](https://freebsdfoundation.org/) 了解更多关于我们如何支持 FreeBSD 以及如何帮助你的信息！

### FreeBSD 发行工程团队

**链接**：

[FreeBSD 15.1-RELEASE 公告](https://www.freebsd.org/releases/15.1R/announce/)

[FreeBSD 14.5-RELEASE 日程](https://www.freebsd.org/releases/14.5R/schedule/)

[FreeBSD 发行版](https://download.freebsd.org/releases/ISO-IMAGES/)

[FreeBSD 开发快照](https://download.freebsd.org/snapshots/ISO-IMAGES/)

**联系方式**：FreeBSD 发行工程团队 <<re@FreeBSD.org>>

FreeBSD 发行工程团队负责制定和发布 FreeBSD 官方项目发行版的发行日程，宣布代码冻结并维护相应分支等工作。

该团队管理了 15.1-RELEASE，最终在 6 月完成了正式 RELEASE 构建和公告。即将到来的 14.5-RELEASE 的规划已经开始，预计将于 9 月发布。

发行工程团队继续为 **main**、**stable/15** 和 **stable/14** 分支提供每周开发快照构建；同时也为 **stable/13** 分支提供，直至其于 4 月底到达生命周期终点。

### 集群管理团队

**链接**：

[集群管理团队成员](https://www.freebsd.org/administration/#t-clusteradm)

**联系方式**：

集群管理团队 <<clusteradm@FreeBSD.org>>

Philip Paeps <<philip@FreeBSD.org>>

FreeBSD 集群管理团队成员负责管理项目依赖的机器，以同步其分布式工作和通信。

本季度，团队完成了以下工作：

* FreeBSD.org 用户账户的常规支持。
* 所有物理主机和镜像的常规磁盘和部件支持（或更换）。
* 集群软件刷新。
* 协调社区镜像。
* 对 wiki-admin@ 团队的额外支持。
* 频繁干预以阻止机器人造成的拒绝服务。

#### 集群刷新

刷新 FreeBSD.org 集群机器上运行的软件的工作仍在继续。我们已开始在 stable/15 上运行生产工作负载。作为此项工作的一部分，一些工作负载被迁移到不同的机器上。此项工作在本季度末仍在进行中。

集群管理团队以大约每六到八周的周期刷新生产软件包构建器（约 35 台物理机器）。这些机器运行着 FreeBSD current 快照。

其他机器根据需要升级，根据其暴露程度跟进安全修复。

截至撰写本文时，集群中有 142 台物理机器。其中 42 台运行着 current，21 台运行着 stable/15，73 台运行着 stable/14。

剩余的 stable/13 安装大部分将升级到 stable/15。

```sh
 12.x: Regular   0, Jails   7
 13.x: Regular   6, Jails  31
 14.x: Regular  73, Jails 254
 15.x: Regular  21, Jails   4
 16.x: Regular  42, Jails   6
Total: Regular 142, Jails 302
Total installations: 444
Running -RELEASE|{-p*}: 0
Total geographic sites: 13
```

#### FreeBSD 官方镜像

当前位置为澳大利亚、巴西、日本（两个完整镜像站点）、马来西亚、南非、瑞典、台湾和美国——加利福尼亚、芝加哥、新泽西和华盛顿。

我们在台湾的镜像站点经历了长时间的宕机。

我们在日本的一个镜像站点将在 2026Q3 进行彻底的硬件更新。

硬件和网络连接由以下机构慷慨提供：

* [BroadBand Tower, Inc](https://www.bbtower.co.jp/en/corporate/) 的云和 SDN 实验室
* [台湾阳明交通大学资讯工程系](https://www.cs.nycu.edu.tw/)
* [澳大利亚互联网协会](https://internet.asn.au/)
* [Internet Systems Consortium](https://www.isc.org/)
* [INX-ZA](https://www.inx.net.za/)
* [KDDI Web Communications Inc](https://www.kddi-webcommunications.co.jp/english/)
* [马来西亚研究与教育网络](https://www.mohe.gov.my/en/services/research/myren)
* [MetaPeer](https://www.metapeer.com/)
* [New York Internet](https://www.nyi.net/)
* [NIC.br](https://nic.br/)
* [Sonic](https://sonic.net/)
* [Teleservice Skåne AB](https://www.teleservice.net/)
* [Your.Org](https://your.org/)

始终欢迎新的官方镜像。我们注意到在全球互联网交换点托管单个镜像的好处，正如我们在澳大利亚、巴西和南非的现有镜像所证明的那样。如果你隶属于或知道愿意赞助单个镜像服务器的组织，请联系我们。我们对欧洲的地点特别感兴趣。

完整镜像站点规格请参阅 [通用镜像布局](https://wiki.freebsd.org/Teams/clusteradm/generic-mirror-layout)，单个镜像站点请参阅 [tiny-mirror](https://wiki.freebsd.org/Teams/clusteradm/tiny-mirror)。

#### 支持维基管理团队

在本季度的大部分时间里，由于维基管理职位空缺，集群管理团队承担了维基管理的角色。最近，新的维基管理团队已就任。集群管理团队将继续帮助维基管理团队进行必要的后端 Wiki 基础设施升级。

#### 大语言模型爬取

FreeBSD 项目的基础设施持续受到爬虫的攻击，这些爬虫收集用于大语言模型（“AI”）的训练数据。训练这些模型的公司已将爬取操作从其自身易于识别的基础设施大量转移到僵尸网络（“住宅代理”），使其难以在网络边缘阻止而不造成显著的附带损害。本季度集群管理团队再次花费大量时间缓解这些分布式拒绝服务攻击。

**赞助者**：匿名个人和公司

**赞助者**：<https://github.com/sponsors/ppaeps>

### Bug 分拣团队

**链接**：

[FreeBSD Bugzilla](https://bugs.freebsd.org/)

[随时间变化的未解决问题总数](https://bugs.freebsd.org/bugzilla/page.cgi?id=showreport.html\&type=total_open_bugs_over_time)

**联系方式**：Bug 分拣团队 <<bugmeister@FreeBSD.org>>

本季度我们减少了问题报告的数量。

虽然我们确实继续收到了 src 树的补丁，但收到的大部分补丁是针对 ports 的。这可能是由于我们实施的自动通知程序定制。

对于 src 树，在过去 180 天中我们收到了 643 份新问题报告并关闭了 844 份。对于 ports，这两个数字分别为 3493 和 4375。

我们目前没有统计其中实际有多少产生了提交，尽管我们相信数量不可忽视。

在同一 180 天期间，Mark Linimon 和 Torsten Zuehlsdorff 继续分类较早的问题报告。Mark 的工作在 2025 年部分由 FreeBSD 基金会资助。这些结果可以从我们的[随时间变化的未解决问题总数](https://bugs.freebsd.org/bugzilla/page.cgi?id=showreport.html\&type=total_open_bugs_over_time)图表中最后两次下降中看到。

此外，今年我们似乎得到了各 FreeBSD 提交者更多的关注。如果你有兴趣提供帮助，请联系 [bugmeister](mailto:bugmeister@FreeBSD.org)。

当然，我们在分类 PR 方面仍然比引起对已有 PR 的关注做得更好。欢迎提供建议。

Mark Linimon 承担了一项长期项目，确保所有提交的补丁都能应用。然而，他不自称是 QA 人员，无法自行评估补丁的适用性。

总体结论是，随着用户教育，今年我们收到了质量更高的问题报告。特别是，带补丁的报告在到达后一两周内就会测试适用性，并在需要时进行修正。

然而，时间越往前追溯，PR 的问题就越大，尤其是 2019 年及更早的。我想这是意料之中的。Mark 继续在后台处理这些。当前计数为 2611。其中约 427 份（主要来自 2019 年及更早）仍需进一步工作。

修复了升级到 Bugzilla 5.2 的设置问题。在轻量级测试中未发现明显的回归。向 5.2.1 的错误修复版本即将推出。计划在其发布后，尽快进行切换到该代码库。最初计划地更早，但在 FreeBSD 15.0 发行工程进行期间似乎不可取，后来又因 15.1 而进一步推迟。

`patchQA.py` 仍处于测试阶段。补丁应用代码无法胜任其任务，必须替换。

`patchQA.py` 的另一个已知问题是，它不知道由 `installworld` 安装到 **/etc** 的文件的来源。有一些外部 shell 脚本正在测试中，可帮助自动修复数据。这可能比为该目的编写更多脆弱的 Python 代码更简单。

我们根据用户请求创建了许多新的 Bugzilla 账户。今年新账户请求数量有所增加。截至 2026 年目前我们达到 291 个，差不多每天 2 个。

距离我们开始要求通过电子邮件请求创建账户而非允许自动请求已有一年。通过这样做，垃圾信息泛滥减少到几乎为零。

我们正在监控的另一个问题是来自爬虫的大量 http 请求。目前这些请求的数量远远超过实际 FreeBSD 用户的请求。这些是用户抱怨的突然变慢的原因。由于我们都不是专业系统管理员，我们欢迎有处理此类问题专业经验的人提供帮助。

感谢 Alexander Ziaee 和许多其他帮助我们达到当前状态的人。

另请参阅：<https://wiki.freebsd.org/Bugzilla/SearchQueries>

### 维基管理团队

**链接**：

[维基管理团队成员](https://www.freebsd.org/administration/#t-wiki)

Mark Linimon 退出了维基管理角色，两名提交者接任了维基管理角色。

短期内，团队将处理账户请求等事务。

中期内，计划是帮助构建 Wiki 页面的结构。

长期来看，想法是从 MoinMoin Wiki 迁移到其他 Wiki 软件。

## 项目

跨越多个类别的项目，从内核和用户空间到 Ports 或外部项目。

### FreeBSD、CRA、EuroBSDCon 和安全团队

**链接**：

[Alpha-Omega——Linux 基金会项目](https://alpha-omega.dev)

[FreeBSD 基金会](https://freebsdfoundation.org)

[FreeBSD 安全信息](https://www.freebsd.org/security/)

[EuroBSDCon 2026](https://2026.eurobsdcon.org)

**联系方式**：Pierre Pronchery <<pierre@freebsdfoundation.org>>

本季度标志着我开始参与 Alpha-Omega 关于 AI 的新倡议。LLM 辅助披露安全漏洞的新浪潮令人难以忽视，Alpha-Omega 现正在帮助面临此挑战的知名开源生态系统。这包括 FreeBSD，鉴于当前情况，我自愿加入并已被接受进入 FreeBSD 安全团队。我在那里的目标，除了在力所能及的范围内帮助处理收到的报告外，是了解现有流程并提出改进建议以促进和扩展运营。这始于 [RTIR](https://requesttracker.com/rtir/) 的新实例，以及 [Forgejo](https://forgejo.org) 的实验性实例，用于 CI/CD 和可能利用 LLM 与安全团队工作流的集成。

为促进对欧盟[网络弹性法案](https://en.wikipedia.org/wiki/Cyber_Resilience_Act)（CRA）的合规，[pkgconf](http://pkgconf.org) 在 FreeBSD 基本系统中导入版本 2.9.93。这现在包括 [spdxtool(1)](https://man.freebsd.org/cgi/man.cgi?query=spdxtool\&sektion=1\&format=html)，支持生成符合 [SPDX 3.0.1 规范](https://spdx.github.io/spdx-spec/v3.0.1/) 的[软件物料清单](https://en.wikipedia.org/wiki/Software_supply_chain)（SBOM）。我与 Tuukka Pasanen 一起在 [D56474](https://reviews.freebsd.org/D56474) 中提供了一个待审查的框架，但遗憾的是在导入前仍需完善。

首先，它应该更新以反映 spdxtool 的可用性（补丁已可用）。更重要的是，在适配 FreeBSD 构建系统的同时，找到要生成的 SBOM 文件数量的正确粒度并不容易。这解释了某些情况下仍然缺少元数据；我们正在努力使其从一开始就尽可能一致。最后，我提前为即将到来的发行版中添加的 1000 多个文件道歉；希望这可以通过切换到 pkgbase 来缓解，我们认为它将完美适配。SBOM 文件预计将自动在安装的相应软件包中提供，使后续 SBOM 工具能够准确了解已安装系统的状态。

在此背景下，我很高兴地宣布 Alice Sowerby、Peter Hansteen 和我将联手在即将于 2026 年 9 月在布鲁塞尔举行的 EuroBSDCon 会议上举办一场关于基于 BSD 的系统 CRA 合规的研讨会。欢迎你加入我们，获取有关我们生态系统中 CRA 合规的实用信息！

**赞助者**：Alpha-Omega、FreeBSD 基金会

### 网络弹性法案（CRA）就绪项目

**链接**：

[网络弹性法案就绪](https://github.com/FreeBSDFoundation/all-projects/tree/main/Cyber%20Resilience%20Act%20Readiness)

基金会正在运行一个贯穿 2026 年的项目，积极为 FreeBSD 基金会、项目和社区应对欧盟网络弹性法案做准备。有六个主要关注领域：安全与漏洞处理、SBOM 工具链、公开文档、社区立法参与、公开项目仓库和沟通。

在第二季度，项目在其关键目标上取得了显著进展。

安全工作侧重于通过与下游供应商讨论报告流程、软件物料清单（SBOM）使用和合规工作的潜在资金，来改进漏洞处理和供应链就绪状态。

基金会还通过参与开放监管合规和 OpenSSF 活动、以准成员身份加入 OpenSSF、参加开源峰会北美站以及与 Zephyr 等项目合作分享 CRA 就绪策略，加强了与更广泛开源生态系统的协作。

SBOM 工具链工作取得显著进展，现在接近完整的端到端功能。我们计划在剩余工作完成后发布一篇技术博客。

基金会还为 FreeBSD 社区创建了 CRA 指导草案，我们计划将其与基金会网站的专用部分一起发布，提供永久合规信息。

透明度仍然是优先事项，基金会在上述仓库中发布了月度公开更新和会议记录。EuroBSDCon 将有一整天的 CRA 和 SBOM 教程，我们邀请你参加！

### FreeBSD 软件物料清单（SBOM）

**链接**：

[FreeBSD Lua Tools for SBOM](https://github.com/illuusio/freebsd-src/tree/freebsd-lua-tools-sbom/share/sbom)

[FreeBSD pkg-config WIP SBOM files which are base for Pierre Pronchery's work](https://github.com/illuusio/freebsd-src/tree/sbom-pkgconfig-meld/share/sbom)

[Generate SBOM files as part of the build review](https://reviews.freebsd.org/D56474)

开放的上游 SPDX 许可证标识 PR：

[ATF PR#128](https://github.com/freebsd/atf/pull/128)

[bmake NetBSD GNATS#60308](https://gnats.netbsd.org/60308)

[LDNS ISSUE#305](https://github.com/NLnetLabs/ldns/issues/305)

[Less PR#792](https://github.com/gwsw/less/pull/792)

[Libarchive PR#3129](https://github.com/libarchive/libarchive/pull/3129)

[LibCBOR ISSUE#430](https://github.com/PJK/libcbor/issues/430)

[libedit NetBSD GNATS#60309](https://gnats.netbsd.org/60309)

[Libevent ISSUE#1864](https://github.com/libevent/libevent/issues/1864)

[LibPCAP PR#1689](https://github.com/the-tcpdump-group/libpcap/pull/1689)

[LibUCL PR#386](https://github.com/vstakhov/libucl/pull/386)

[TCSH Mantis#777](https://bugs.astron.com/view.php?id=777)

**联系方式**：Tuukka Pasanen <<tuukka.pasanen@ilmi.fi>>

FreeBSD 软件物料清单（SBOM）工作在 2026 年第二季度继续进行。本季度的重点是审查和更新 pkg-config `.pc` 文件，以及向 FreeBSD 源代码中包含的第三方项目添加 SPDX-License-Identifier。这项工作将在第三季度继续。

如前所述，本季度大部分工作用于完善 pkg-config `.pc`，因为这些文件在生成 SPDX 2.2 和 SPDX Lite 3.0.1 兼容的 SBOM 文件时需要。今年 Pierre Pronchery 一直在向 FreeBSD 源代码添加其他关键部分，如 pkgconf。目前，他在工具方面最大的努力是审查构建中的 SBOM 生成部分，其中包含 `.pc` 作为审查的一部分。当审查完成且源代码添加到 FreeBSD 后，就可以在构建过程中创建 SBOM。

除了 `.pc` 的工作外，还完善了 FreeBSD Lua Tools for SBOM，这些工具用于创建当前的一组 `.pc` 文件，可用于未来的更新。这些脚本仍然有些原始且使用复杂，但现在的状态比以前好得多，并且有使用文档。

向第三方仓库添加 SPDX-License-Identifier 也是一个进行中的工作，将按照项目维护者的偏好顺序进行。为什么要向第三方项目添加许可证标识？这个问题没有简单的答案，但最接近的解释是，机器可读的许可证标识有助于在未来维护 SBOM 信息。

如果你想帮助这项工作：

* 在 Phabricator 上审查 `.pc` 文件，作为“Generate SBOM files as part of the build”审查的一部分。
* 协助审查 pkgconf 3.0 到 FreeBSD 源代码的导入。

**赞助者**：FreeBSD 基金会

### bhyve 的完整 CPUID 控制

**联系方式**：Hans Rosenfeld <<rosenfeld@grumpf.hope-2000.org>>

#### 项目概述

此项目正在将现有的概念验证集成到 FreeBSD 中，并添加以下可用性功能：

* 一种用户友好的配置方法，用于按需覆盖单个位、部分甚至整个 CPUID 函数，同时保留其余主机 CPUID 信息或预定义的 CPUID 配置
* 一种用户友好的配置方法，用于配置 bhyve 报告的虚拟机监控器签名
* 一组基于常见 x86 架构级别的预定义 CPUID 配置，可能还包括一些真实 CPU 型号的 CPUID 数据，以及一种用户友好的配置方法来为配置虚拟机进行选择

#### 上季度的变更

**扩展 bhyve 配置语法**

现有的 bhyve 配置文件语法仅限于对配置节点的赋值，在内部解析为树结构的 nvlist 集合。

为了使用预定义配置文件片段进行更灵活的配置，bhyve 配置文件语法新增了两项新功能：

* 可以使用 `+=` 运算符向配置节点追加内容。如果已将值分配给同一配置节点，则新值将追加到旧值之后，以逗号分隔。
* 可以使用 `include` 指令包含另一个配置文件。支持绝对和相对路径，但相对路径理解为相对于包含 include 指令的配置文件所在路径。

**更灵活的 CPUID 配置**

CPUID 配置机制扩展以支持符号功能名称，其中每个名称对应 CPUID 函数寄存器中的特定位。这对于可以随意关闭或开启的单个指令集扩展或其他可选功能特别有用。

因此，不再需要配置 `cpuid.0x00000001+=edx|=0x00040000`，你现在只需写 `cpuid.enable+=psn`。还有一个用于符号功能的相应选项 `cpuid.disable`。

当然，CPUID 寄存器上的位操作仍然受支持，因为并非所有 CPUID 功能都能以单个功能位表示。

**使用 x86 架构级别**

x86 架构级别现在实现为一组预定义配置文件片段，每个更高级别在较低级别之上构建。

为了说明这一点，以下是 **x86-64-v3.cfg** 现在的样子：

```ini
include x86-64-v2.cfg
cpuid.enable+=fma,movbe,osxsave,avx,f16c
cpuid.enable+=bmi1,avx2,bmi2
cpuid.enable+=abm
```

CPU 或架构模型可以通过在 bhyve 配置文件中从 **/usr/share/bhyve/cpu** 包含相应的配置文件来选择，也可以在命令行上作为 vCPU 配置的一部分指定：`bhyve [...] -c 16,model=x86-64-v1 [...]`

**CPUID 约束**

为了防止意外为客户 CPU 启用主机 CPU 不支持的 CPUID 功能，CPUID 配置解析器扩展了 CPUID 约束列表，在设置或修改特定 CPUID 寄存器值时会参考这些约束。

对于 CPUID 函数中的任何寄存器，约束可以指定位哪些是不可变的，哪些只能清除。

约束在应用 CPUID 配置后检查。

#### 下季度计划

* 实现 CPUID 约束的覆盖，以忽略任何约束或在违反约束时发出警告而非使虚拟机设置失败。
* 提供更多基于真实 CPU 的预定义 CPU 配置。
* 类似于设置 x86 架构级别，将实现一种机制来覆盖虚拟机监控器标识，而无需手动更改 CPUID 位。
* 审查整个代码集，接受后提交到 FreeBSD。

**赞助者**：FreeBSD 基金会

### Sylve——FreeBSD 统一系统管理平台

**链接**：

[网站](https://sylve.io)

[GitHub](https://github.com/AlchemillaHQ/Sylve)

[CI](https://sylve-ci.alchemilla.io)

[Discord](https://discord.gg/bJB826JvXK)

**联系方式**：Hayzam Sherif <<hayzam@alchemilla.io>>

Sylve 是一款面向 FreeBSD 的现代化统一系统管理平台。它提供集成的 Web 界面，用于管理虚拟机（通过 bhyve）、Jail、其周围的网络以及 ZFS 存储。

后端使用 Go 实现，前端使用 Svelte 构建。该项目强调最小的系统占用。默认情况下，它不需要基本系统之外的任何软件包。

可选的运行时依赖项，仅在使用其各自功能时才需要，包括：

* [devel/libvirt](https://cgit.freebsd.org/ports/tree/devel/libvirt/) 用于虚拟化
* [devel/qemu-tools](https://cgit.freebsd.org/ports/tree/devel/qemu/) 用于磁盘镜像管理
* [net/samba419](https://cgit.freebsd.org/ports/tree/net/samba419/) 用于 SMB 文件共享
* [sysutils/swtpm](https://cgit.freebsd.org/ports/tree/sysutils/swtpm/) 用于 TPM 仿真支持
* [dns/dnsmasq](https://cgit.freebsd.org/ports/tree/dns/dnsmasq/) 用于 DHCP 和 DNS 服务

该 Port 为方便用户引入了这些依赖项，但 Sylve 本身不需要任何依赖项即可运行。

#### 第二季度进度亮点

**数据中心/集群**

* 实现了让用户拥有高可用虚拟机和 Jail 的方式，在 ZFS 复制的帮助下自动故障转移到集群中的次要/三级等节点（尚不支持实时迁移）。
* 可以在没有 Quorum 或 HA 的集群中轻松迁移虚拟机/Jail，UI 中有一个简单的“迁移”按钮。
* 备份和恢复工作流得到显著改进，增强了错误处理和更好的用户反馈，包括对加密数据集的支持。

**网络**

* 添加了从 Web UI 添加网络路由的支持。
* 现在实现了基于 PF 的防火墙，全面支持流量和 NAT 规则，包括在规则中使用对象来表示 IP 列表、FQDN 等。
* 添加了直观的 WireGuard 配置 UI，允许用户轻松设置和管理 WireGuard 隧道。

**存储**

* [smart(8)](https://man.freebsd.org/cgi/man.cgi?query=smart\&sektion=8\&format=html) 作为依赖项引入，作为 smartmontools 的替代方案
* ZFS 存储池管理现在支持创建特殊 VDEV。
* Samba 现在使用内置的 mDNS 服务器而非 avahi
* 添加了初始 iSCSI 支持，允许用户直接从 Web UI 创建和管理 iSCSI 目标和发起程序。

**虚拟机和 Jail**

* UI 响应速度和性能得到改进，特别是对于具有许多虚拟机/Jail 的大型集群。
* 添加了对 Jail 直接进行 VLAN 标记的支持，而不需要用户为每个 VLAN 创建单独的网桥。
* 许多手动命令行标志现在转换为虚拟机的 libvirt XML 语法，使管理更容易并与基于 libvirt 的工具更好兼容。
* 大幅改进了虚拟机和 Jail 的自动启动/停止流程。

**通用**

* 通知系统经过重新设计，添加了对 discord webhooks、ntfy.sh 和基于 SMTP 的传输的支持，现在还支持同时使用多种传输方式，并允许用户配置他们想要接收通知的事件。

#### 路线图更新

* 上一季度路线图中的所有项目（NFS 共享除外）均已完成，我们正在开发第三季度的新功能集：
  * NFS 共享支持，用户可直接从 Web UI 创建和管理 NFS 共享。
  * 简化的 UI 模式，旨在让新用户更容易开始将 Sylve 作为 NAS 设备使用。
  * Podman 和 OCI 容器支持，用户可在虚拟机和（经典）Jail 旁运行容器。
  * iOS 和 Android 移动应用程序，用户可随时随地管理其集群。
  * 应用模板库，用户可一键部署流行应用程序（如 Nextcloud、Plex 等）。

**赞助者**：FreeBSD 基金会、Alchemilla Ventures（开发）、IPTechnics LLC（基础设施与测试）

### 202606 黑客马拉松——加拿大新斯科舍省哈利法克斯

**链接**：

[Hackathon/202606 Wiki 页面](https://wiki.freebsd.org/Hackathon/202606)

[FreeBSD 黑客马拉松 Wiki 页面](https://wiki.freebsd.org/Hackathon)

**联系方式**：Joe Mingrone <<jrm@FreeBSD.org>>

在 [渥太华的 BSDCan 2026](https://www.bsdcan.org/2026/) 之后，一些社区成员聚集在加拿大新斯科舍省哈利法克斯的达尔豪斯大学进行黑客马拉松。在三个仓库中，共有 93 次提交带有 `Event: Halifax Hackathon 202606` 标签。

其中大部分工作在单独的报告条目中描述，但此处提供高层次摘要。src 的大部分工作集中在 CPU 电源管理上。大部分合并到 [hwpstate\_intel(4)](https://man.freebsd.org/cgi/man.cgi?query=hwpstate_intel\&sektion=4\&format=html) 中，修复了若干 MSR 和未初始化变量错误，将能效性能偏好移至 8 位尺度，并用 IPI 替换了 `thread_lock()` 和 `sched_bind()`。还添加了新的 KPI `cpu_get_pcpuid()`，[hwpstate\_intel(4)](https://man.freebsd.org/cgi/man.cgi?query=hwpstate_intel\&sektion=4\&format=html) 和 `hwpstate_amd` 均采用了该 KPI。对 ACPI 代码的全面检查收紧了睡眠和唤醒事件处理程序的类型，从 `acpi_cpu`、[acpi\_hpet(4)](https://man.freebsd.org/cgi/man.cgi?query=acpi_hpet\&sektion=4\&format=html) 和 `acpi_timer` 中移除了未使用的禁用标志，并使内核在不支持 S4BIOS 时拒绝 S4。对于笔记本电脑支持，为某些 Framework 笔记本电脑上的飞行模式键提交了新的 `hrfkill` 驱动程序，向 [acpi\_ibm(4)](https://man.freebsd.org/cgi/man.cgi?query=acpi_ibm\&sektion=4\&format=html) 添加了麦克风静音键的 evdev 报告，并更改了 [iichid(4)](https://man.freebsd.org/cgi/man.cgi?query=iichid\&sektion=4\&format=html) 使其始终释放中断资源。其他 src 提交涉及 libusb、libdtrace、libcxxrt、[ifconfig(8)](https://man.freebsd.org/cgi/man.cgi?query=ifconfig\&sektion=8\&format=html)、`sched_ule` 和一些手册页。在 ports 中，默认 Python 切换到 3.12，添加了新的 [databases/py-oracledb](https://cgit.freebsd.org/ports/tree/databases/py-oracledb/) Port，[sysutils/consolekit2](https://cgit.freebsd.org/ports/tree/sysutils/consolekit2/) 的更改在 16-CURRENT 上启用了 S0ix 挂起。Emacs Port 有了多项更新和改进；R、Jenkins 和一些生物信息学 Port 也得到更新。文档工作添加了关于 ZFS 原生加密的手册章节，更新了 geli 加密交换分区的说明，并改进了 FDP Primer 中关于生成带上下文补丁的指导。

以下是 [doc](https://cgit.freebsd.org/doc/log/?qt=grep\&q=Event%3A.*Halifax+Hackathon+202606)、[ports](https://cgit.freebsd.org/ports/log/?qt=grep\&q=Event%3A.*Halifax+Hackathon+202606) 和 [src](https://cgit.freebsd.org/src/log/?qt=grep\&q=Event%3A.*Halifax+Hackathon+202606) 仓库中黑客马拉松的原始提交。

虽然大部分时间都花在编程上，但并非全是工作，正如[照片](https://p.obiw.ac/s/hfx)所示。参与者花了一些晚上和半天时间娱乐。

**赞助者**：FreeBSD 基金会（餐饮）

### Parthenope——当前状态和改进

**链接**：

[BSDCan 2026 演讲幻灯片](https://docs.google.com/presentation/d/1QBWZyg2fdSmfs7xdZ1Jxg6-5I1iawoGweXVVk7tVlHk)

**联系方式**：Alfonso Sabato Siciliano <<asiciliano@FreeBSD.org>>

Parthenope 是一款用 Lua 编写的模块化两步 FreeBSD 安装程序。

在本季度，该项目在 BSDCan 2026 上亮相，展示了其当前状态、近期改进和未来方向。演讲还介绍了几个用于未来讨论和开发的新想法、模型和概念验证实现，包括开箱即用体验、安装后配置工作流。

自上次状态报告和 EuroBSDCon 2025 演讲以来，安装程序的几个核心部分完全重构或重写，包括：

* 配置文件；
* 用于在步骤 1 和步骤 2 之间交换数据的通信文件；
* 安装程序子系统，包括国际化、多模式支持和相关基础设施；
* 步骤 1 和步骤 2 管理器；
* 组件框架，安装屏幕现在由步骤 1 管理器管理和调用；
* 多个安装程序组件和安装屏幕。

文本用户界面（TUI）前端现在接近功能完整，即将支持完整的 FreeBSD 安装。剩余的主要组件和屏幕是分区编辑器、ZFS 配置、引导配置和网络管理器。

虽然目前还无法使用 Parthenope 完全安装 FreeBSD，但开发正在快速向功能版本推进。后续步骤是：

* 完成剩余的 TUI 安装程序组件和屏幕。
* 实现命令行界面（CLI）前端以改进可访问性。
* 开发 Web 前端以通过 Web 浏览器进行安装。

Parthenope 最初是个人项目，但得益于社区的想法、反馈和功能请求，该项目持续发展，始终欢迎意见和建议。

### FreeBSD 中的原生 S.M.A.R.T. 数据检索

**链接**：

[S.M.A.R.T. on GitHub](https://github.com/ctuffli/smart)

**联系方式**：Chuck Tuffli <<chuck@freebsd.org>>

FreeBSD 将原生自监控、分析和报告技术（S.M.A.R.T.）实用程序 [smart(8)](https://man.freebsd.org/cgi/man.cgi?query=smart\&sektion=8\&format=html) 导入基本系统，提供轻量级的内置磁盘健康监控功能，无需第三方软件包。它受到 AsiaBSDCon 2016 上提出的 [diskctl(8)](https://man.freebsd.org/cgi/man.cgi?query=diskctl\&sektion=8\&format=html) 框架的启发，旨在创建许可宽松的 S.M.A.R.T. 实用程序，以解决现有工具中的许可和功能差距。

该实用程序提供统一接口，用于跨多种存储协议（包括 ATA、NVMe 和 SCSI）检索 S.M.A.R.T. 数据。它侧重于与监控工具的便捷集成，通过 [libxo(3)](https://man.freebsd.org/cgi/man.cgi?query=libxo\&sektion=3\&format=html) 提供多种输出格式（制表符分隔字段、JSON、XML），用户可以查询特定的健康属性。

## 用户空间

影响基本系统及其程序的变更。

### 进程描述符 API 完成 2

**联系方式**：Konstantin Belousov <<kib@FreeBSD.org>>

**链接**：

[sys: add pdopenpid(2)](https://reviews.freebsd.org/D57124)

[pddupfd(2)](https://reviews.freebsd.org/D57163)

在添加了系统调用 [pdwait(2)](https://man.freebsd.org/cgi/man.cgi?query=pdwait\&sektion=2\&format=html) 和 [pdrfork(2)](https://man.freebsd.org/cgi/man.cgi?query=pdrfork\&sektion=2\&format=html) 之后，我研究了应用程序程序员请求的其他缺失功能。需求最大的功能似乎是获取现有进程的进程描述符。

目前只有一个文件描述符可以引用内核中的内部 struct procdesc，这部分解释了为什么通过 pid 打开进程的接口尚未完成。此项工作使 procdesc 可以被多个文件指向。控制 procdesc 行为的属性（例如 daemon——关闭文件不终止进程）从 procdesc 移到了文件。

此更改允许扩展 procdesc 内部接口以实现系统调用 [pdopenid(2)](https://man.freebsd.org/cgi/man.cgi?query=pdopenid\&sektion=2\&format=html)。

Linux pidfd 描述符实现的一项功能是系统调用 `pidfd_getfd()`，它将指定的文件描述符从目标进程复制到调用者。FreeBSD 的实现名为 [pddupfd(2)](https://man.freebsd.org/cgi/man.cgi?query=pddupfd\&sektion=2\&format=html)，在有了 `fget_remote(9)` 辅助函数之后，实现就相对简单了。

在开发检查允许操作所需权限的算法时出现了一个问题。内核检查 `p_candebug()` 的结果以查看是否应允许直接访问远程进程的编程资源。但 `p_candebug()` 的结果仅在持有目标进程锁时有效。此外，如果目标进程通过 [execve(2)](https://man.freebsd.org/cgi/man.cgi?query=execve\&sektion=2\&format=html) 更改执行程序，`p_candebug()` 会拒绝操作，因为如果映像是 set-uid 或 set-gid 的，可能会更改进程的权限。总体而言，使用 `p_candebug()` 的简单检查不够充分，因为我们无法在 `fget_remote()` 期间持有进程锁。

为此，开发了一种机制，为目标进程中的 exec 与调用者之间提供互斥，称为 execblock。还添加了引用进程当前 vmspace 的辅助函数，以避免在操作仅需要一致的目标地址空间时（如读取进程字符串或复制进程内存）使用 execblock。识别了系统中受此竞态影响的现有位置，并根据需要应用了 execblock 或 vmspace 引用接口。

然后，借助 `fget_remote()` 和 execblock 实现了 [pddupfd(2)](https://man.freebsd.org/cgi/man.cgi?query=pddupfd\&sektion=2\&format=html)。

**赞助者**：FreeBSD 基金会

### 调度器

**链接**：

[DevSummit Wiki 页面](https://wiki.freebsd.org/DevSummit/202606)

[幻灯片](https://wiki.freebsd.org/DevSummit/202606?action=AttachFile\&do=view\&target=Scheduler.pdf)

**联系方式**：Olivier Certner <<olce@FreeBSD.org>>

调度器领域正沿多个方向推进工作。

我们正在解决 ULE 调度器中长期存在的不足，例如在特定情况下非交互线程的不公平性以及 nice 值效果很弱。在 ULE 当前设计下似乎难以完全解决第一个问题，因此我们同时也在草拟一个新的设计，其额外目标是：

1. 更稳定、更可预测的行为。
2. 可分别控制延迟和 CPU 分配。
3. 启用新功能，如在混合 CPU 上调度、功耗感知调度、分层调度等，同时保持公平性。

我们还详细审查了 4BSD 和 ULE 调度器，并修复了一些错误，例如：

* 不同 nice 值的 CPU 密集型线程的优先级混淆（4BSD）
* 消耗 CPU 时优先级降低太慢，由于某些过时的 SMP 扩展性设计（4BSD）
* 修复 `preempt_thresh` 参数定义中的 off-by-one 错误（ULE）
* 修复在某些边界情况下过早选择最低优先级线程的问题（ULE）
* 修复本地运行队列内存随 `MAXCPU` 线性增长的问题（4BSD；由 Minsoo Choo 完成）

在 BSDCan 2026 的开发者峰会上就这些问题发表了演讲（见顶部链接）。

在混合调度方面，Koine Yuusuke 创建了若干代码审查，包含支持 Intel 硬件反馈接口（HFI）和线程导向器（ITD）的代码，Minsoo Choo 提出了一个用于容量和分数的通用基础设施。我们将审查并指导这些提交。

**赞助者**：FreeBSD 基金会

## 内核

内核子系统/功能、驱动程序支持、文件系统等方面的动态。

### 改进挂起/恢复

**链接**：

[博客](https://obiw.ac/s0ix/)

[BSDCan 上关于 s2idle/S0ix 的演讲](https://youtu.be/RCjPc4X2Edc)

[工作分支](https://github.com/obiwac/freebsd-s0ix/pull/15)

**联系方式**：obiwac <<obiwac@FreeBSD.org>>

正在将挂起到空闲和 S0ix 睡眠支持添加到 FreeBSD。

这将使现代 Intel 和 AMD 笔记本电脑（其中一些不支持 ACPI S3 睡眠）进入低功耗状态，进而延长电池寿命。

总体而言，状态与上一季度相同——工作仍在进行中，以缩小 NVMe 恢复问题范围并修复 D 状态问题。

通用电源管理接口提交完成，[zzz(8)](https://man.freebsd.org/cgi/man.cgi?query=zzz\&sektion=8\&format=html) 重写完成以使用它。现在你应该使用 `kern.power.supported_stype` sysctl 列出支持的通用睡眠类型，并将 sysctl `kern.power.suspend` 设置为你希望 [zzz(8)](https://man.freebsd.org/cgi/man.cgi?query=zzz\&sektion=8\&format=html) 使用的睡眠类型。

对 acpi\_spmc 驱动程序做了一些小修复和改进。

通用 USB4 NHI 支持也提交完成。进入 S0i3 所需的 USB4 支持仅剩挂起例程本身待提交。手册页 [thunderbolt(4)](https://man.freebsd.org/cgi/man.cgi?query=thunderbolt\&sektion=4\&format=html) 更新完成，更清楚地说明这仅用于支持进入 S0i3。

为 [amdsmu(4)](https://man.freebsd.org/cgi/man.cgi?query=amdsmu\&sektion=4\&format=html) 编写了手册页，以更好地解释如何诊断进入 S0i3 的问题。

**赞助者**：FreeBSD 基金会

### 休眠（即挂起到磁盘）

**链接**：

[保存系统映像的原型代码](https://github.com/OlCe2/freebsd-src/tree/oc-hibernate)

[EFI 加载器](https://github.com/OlCe2/freebsd-src/tree/for_kib-hiber)

**联系方式**：

Olivier Certner <<olce@FreeBSD.org>>

Konstantin Belousov <<kib@FreeBSD.org>>

此项工作旨在让 FreeBSD 支持休眠（挂起到磁盘），无需 BIOS/固件协助即可保存当前机器状态，适用于 `amd64` UEFI 引导的机器。另请参阅[上一份报告](https://www.freebsd.org/status/report-2026-01-2026-03/#_hibernate_aka_suspend_to_disk)。

在近两个月的暂停后，我们修复了映像保存原型中的一些错误，将其 rebase 到最近的代码上，并修改了内核和恢复 EFI 加载器之间的接口，双方都需要做一些修改。这导致了 ACPI 通用挂起/恢复代码中的一些更改和顺带的修复。EFI 加载器（阶段 1）的工作正在进行中。内核恢复部分（阶段 2）的草稿设计完成。

进一步讨论了如何在保持一致性的同时保存系统映像，因为转储操作本身会修改内核内存。目标是确定哪些组件可能干扰转储，以及如何防止这种干扰。特别是，底层 DMA 和 IOMMU 代码在某些情况下可能执行内存分配，目前尚不清楚这是否会在转储期间发生。一旦确定，我们将尽可能消除这些情况，否则将致力于开发类似快照的机制。除此之外，实时快照机制可能是有益的，因为它允许使用任何内核设施来执行转储而不受限制，特别是免除了每个磁盘驱动程序各自实现转储例程的需要。

我们在 6 月的 BSDCan 上展示了此项工作的当前状态、相关挑战和类似快照机制的可能实现，并将在 9 月的 EuroBSDCon 上再次展示。

**赞助者**：FreeBSD 基金会

### 协同处理器性能控制（CPPC）

**联系方式**：

Olivier Certner <<olce@FreeBSD.org>>

Sheng-Yi Hung <<aokblast@FreeBSD.org>>

协同处理器性能控制（CPPC）是 ACPI 引入的一项标准，能让操作系统借助抽象性能尺度管理 CPU 的性能和效率水平，该尺度通常与单纯的频率水平不相关且粒度更细。

在 6 月底的哈利法克斯黑客马拉松上再次启动后，工作正在进行中。

正在进行的工作包括：

* 为 Intel 驱动程序（[hwpstate\_intel(4)](https://man.freebsd.org/cgi/man.cgi?query=hwpstate_intel\&sektion=4\&format=html)）添加新的最低、最高和期望性能开关。
* 让 [powerd(8)](https://man.freebsd.org/cgi/man.cgi?query=powerd\&sektion=8\&format=html) 了解这些开关，并围绕它们提供基本策略。
* 为所有 CPU 一次性设置 EPP（效率/性能偏好）的开关，可能还有类似的最低、最高和期望性能值开关。
* 根据 ACPI `_CPC` 表的存在有条件地启用 AMD 驱动程序（[hwpstate\_amd(4)](https://man.freebsd.org/cgi/man.cgi?query=hwpstate_amd\&sektion=4\&format=html)）的 CPPC 功能。开关将允许用户绕过此检查，也可能绕过 CPUID 对 CPPC 功能的报告检查。
* 带有预定义值（如“平衡”、“性能”等）的全局配置开关，它设置所有其他粒度更细的开关。显式设置细粒度开关会将配置切换为“自定义”。

6 月底提交了一些初步的清理和修复。

**赞助者**：FreeBSD 基金会

### 改进音频栈

**联系方式**：Christos Margiolis <<christos@FreeBSD.org>>

我自 2024Q1 起一直在从事音频栈的工作。以下是之前的状态报告列表：

[2024Q1](https://www.freebsd.org/status/report-2024-01-2024-03/#_audio_stack_improvements)

[2024Q2](https://www.freebsd.org/status/report-2024-04-2024-06/#_audio_stack_improvements)

[2024Q3](https://www.freebsd.org/status/report-2024-07-2024-09/#_audio_stack_improvements)

[2024Q4](https://www.freebsd.org/status/report-2024-10-2024-12/#_audio_stack_improvements)

[2025Q1](https://www.freebsd.org/status/report-2025-01-2025-03/#_audio_stack_improvements)

[2025Q2](https://www.freebsd.org/status/report-2025-04-2025-06/#_audio_stack_improvements)

[2025Q3](https://www.freebsd.org/status/report-2025-07-2025-09/#_audio_stack_improvements)

[2025Q4](https://www.freebsd.org/status/report-2025-10-2025-12/#_audio_stack_improvements)

[2026Q1](https://www.freebsd.org/status/report-2026-01-2026-03/#_audio_stack_improvements)

自[上次报告](https://www.freebsd.org/status/report-2026-01-2026-03/#_audio_stack_improvements)以来的重要工作：

* [sound(4)](https://man.freebsd.org/cgi/man.cgi?query=sound\&sektion=4\&format=html)、设备驱动程序和 [virtual\_oss(8)](https://man.freebsd.org/cgi/man.cgi?query=virtual_oss\&sektion=8\&format=html) 的清理、修复和改进。
* [sound(4)](https://man.freebsd.org/cgi/man.cgi?query=sound\&sektion=4\&format=html) 安全修复（[SA](https://www.freebsd.org/security/advisories/FreeBSD-SA-26:27.sound.asc)）。
* [virtual\_oss(8)](https://man.freebsd.org/cgi/man.cgi?query=virtual_oss\&sektion=8\&format=html) 安全修复（[提交](https://cgit.freebsd.org/src/commit/?id=453de99b386d40754a038cc4b804f4c7a3b04624)）。
* 引入 audio 组（GID 43）并在所有声音设备节点中使用它（[提交](https://cgit.freebsd.org/src/commit/?id=a6aa95eba6ee2dd199d6cb8063dbaccd8a6f7512)）。
* 支持 Roland UA-33 USB 音频接口。
* 安装程序中的 [virtual\_oss(8)](https://man.freebsd.org/cgi/man.cgi?query=virtual_oss\&sektion=8\&format=html) 服务选项。
* 感谢 Goran Mekić <meka@tilda.center> 对 [sound(4)](https://man.freebsd.org/cgi/man.cgi?query=sound\&sektion=4\&format=html) 的 [kqueue(2)](https://man.freebsd.org/cgi/man.cgi?query=kqueue\&sektion=2\&format=html) 改进。
* 更好的热插拔（[提交](https://cgit.freebsd.org/src/commit/?id=9fb56421425fa35e56ce294284c08b09852052a5)）。
* 为 [sndctl(8)](https://man.freebsd.org/cgi/man.cgi?query=sndctl\&sektion=8\&format=html) 和 [mixer(8)](https://man.freebsd.org/cgi/man.cgi?query=mixer\&sektion=8\&format=html) 添加 EQ 控制。

你也可以在 FreeBSD 基金会的[状态更新仓库](https://github.com/FreeBSDFoundation/status-updates/tree/main/Christos_Margiolis)上关注开发过程，我在那里发布每周报告。

**赞助者**：FreeBSD 基金会

### LinuxKPI 802.11 和原生无线动态

**链接**：

[支持 MediaTek 无线网卡](https://github.com/FreeBSDFoundation/proj-laptop/issues/66)

[支持 Realtek 无线网卡](https://github.com/FreeBSDFoundation/proj-laptop/issues/99)

[基于 LinuxKPI 的 WiFi 和挂起/恢复](https://github.com/FreeBSDFoundation/proj-laptop/issues/58)

[无线问题报告](https://bugs.freebsd.org/bugzilla/showdependencytree.cgi?id=277512\&hide_resolved=1)

**联系方式**：

Bjoern A. Zeeb <<bz@FreeBSD.org>>

FreeBSD 无线邮件列表 <<wireless@FreeBSD.org>>

本报告侧重于在 FreeBSD 上使用宽松许可的 Linux 无线驱动程序（大部分未修改）的工作，以及为支持更新标准而准备原生 net80211 协议栈。

#### 15.1-RELEASE

由于现实生活原因，我原本希望纳入 15.1-RELEASE 的一些更改最终未能实现（见下文）。最后我只更新了随附驱动程序的手册页。我们还更新了固件 Port，因为 src.git main 中的更改阻止了它们构建。同时 [fwget(8)](https://man.freebsd.org/cgi/man.cgi?query=fwget\&sektion=8\&format=html) 也更新了更多 PCI ID。最后，我帮助确保已经准备得非常出色的发行说明中添加了一些关于已知问题的额外说明。

#### 更新驱动程序

所有基于 LinuxKPI 的无线驱动程序更新至 main 和 stable/15 中的 Linux v7.0。这最初不在计划中，但事实证明改动很少，所以可以在一个工作日内完成。更新包括

* 已发布的驱动程序 Intel [iwlwifi(4)](https://man.freebsd.org/cgi/man.cgi?query=iwlwifi\&sektion=4\&format=html) mvm/mld、Realtek [rtw88(4)](https://man.freebsd.org/cgi/man.cgi?query=rtw88\&sektion=4\&format=html) 和 [rtw89(4)](https://man.freebsd.org/cgi/man.cgi?query=rtw89\&sektion=4\&format=html)，
* MediaTek mt76 驱动程序（正在进行中），
* 三种 Qualcomm Atheros 驱动程序 ath10k、ath11k 和 ath12k（待办），
* 以及 Broadcom brcmfmac，它可以编译和加载固件但缺少 cfg80211 兼容垫片和一些 netdev 工作。

#### 基于 LinuxKPI 的 802.11 挂起和恢复

随着 drm-kmod 6.12 使我的一台笔记本电脑挂起和恢复，我终于能够调试 LinuxKPI 802.11 挂起和恢复的最后细节，我很高兴地宣布 [iwlwifi(4)](https://man.freebsd.org/cgi/man.cgi?query=iwlwifi\&sektion=4\&format=html) 的自动挂起和恢复在 main 和 stable/15 中实现。到目前为止，反馈非常积极。遗憾的是，我错过了 15.1-RELEASE 的截止日期，所以请使用 stable 或等待 12 月。

#### LinuxKPI 802.11 调整

作为 Realtek 和 MediaTek 的基础工作，改进了各种 LinuxKPI 802.11 实现细节：

* 重构 chandef/chanctx：这些是关于我们在哪个信道上操作的定义。重构 chandef 仿真以及上下文如何更新；为多个 chanctx 做准备等。
* TX 硬件加密：mt7921 能正常使用软件加密，但一旦启用硬件加密卸载，我们只会收到一些数据包但不再 TX 任何正确的帧。事实证明，根据密钥类型，驱动程序会使用不同的路径访问密钥，而我们以相同方式设置两个密钥，实质上用第二个覆盖第一个。修复了在 set key 调用中传递的参数以避免此问题。这也可能有助于 rtw8x，我们之前在那里看到过与 MC 数据包相关的偶发问题，但验证仍在进行中。
* 速率：开始填写和更新大部分 LinuxKPI 802.11 速率字段（除了一个只有 mt7615 需要的）。此项工作的一部分最初是去年年底为 rtw8x 做的，其中很多是为 MediaTek 补充的。
* 修复了兼容性排序问题：事实证明，我们实现的某些事件顺序并不完全匹配某些驱动程序的期望。当我们从 net80211 到 LinuxKPI 802.11 到驱动程序进行设置和同步各种速率相关部分时，一次更新来得太晚，使 mt7921 只有基本速率。简单地将代码移到不同的顺序调用就解决了问题，使我们获得 11n 和 11ac 吞吐量。

#### LinuxKPI 更改

除了 LinuxKPI 中的 802.11 部分外，还有通用 LinuxKPI 基础设施需要调整。

* PAGE\_IS\_LKPI\_PAGE：该项目旨在将早期的快捷方式（Linux struct page 与原生 vm\_page 1:1 映射）转换为具有 vm\_page 支持的正确 Linux struct page。这主要是某些 MediaTek mt76 驱动程序需要的，但 drm-kmod 也可以在此落地后最终撤销一些 FreeBSD 特定的变通方法。
* LinuxKPI PCI detach（清理）函数：MediaTek 驱动程序在卸载或关闭时会导致内核崩溃。事实证明，各种 LinuxKPI PCI 清理例程并不完全正确，正如某注释此前已暗示的那样。我们修复了此问题并清理了部分文件。截至撰写本文时，审查仍在进行中，但我们希望至少将关键部分尽快提交。
* LinuxKPI IDR 代码由某些 MediaTek mt76 驱动程序使用，但也与 drm-kmod 和一些半原生驱动程序共享。遗憾的是，该框架有已知问题（如一些历史所示），并且不再匹配当前期望。由于影响较大，重写有些棘手，但我们希望在 26Q3 初准备好。
* 改进和添加了一些 [lindebugfs(4)](https://man.freebsd.org/cgi/man.cgi?query=lindebugfs\&sektion=4\&format=html) 代码，以便能够将 debugfs 用于 mt7921 调试。

#### Realtek rtw8x 支持

更新到 Linux v7.0 后，我们之前在某些芯片组上无法关联的问题增加了。[rtw88(4)](https://man.freebsd.org/cgi/man.cgi?query=rtw88\&sektion=4\&format=html) 和 [rtw89(4)](https://man.freebsd.org/cgi/man.cgi?query=rtw89\&sektion=4\&format=html) 现在都显示各种问题。还发现了另一个问题，即至少一个芯片组的 [rtw88(4)](https://man.freebsd.org/cgi/man.cgi?query=rtw88\&sektion=4\&format=html) 驱动程序会停顿 6 秒，实质上让认证超时。目前尚不清楚在什么情况下不会发生这种情况，因为在 Linux 下似乎明显没有这种问题。遗憾的是，未能及时为 15.1-RELEASE 调试此问题。我们希望在第三季度初研究此问题，以评估是否能在 15.0 到达 EOL 之前发布 EN 并修复回归。

#### MediaTek mt76 支持

支持多个 MediaTek mt76 驱动程序的工作正在进行中，主要是 mt7921 和 mt7925。在几项 LinuxKPI 和 LinuxKPI 802.11 改进之后，我可以说 mt7921 在初步版本中以可接受的吞吐量传递数据包。mt7925 同样如此，但至少悬而未决的 LinuxKPI IDR 工作导致了不稳定。mt7915 同样需要 IDR，但也似乎不支持硬件扫描分载，这意味着我们必须彻底修复软件扫描，这同样会帮助 rtw8x——在硬件扫描不可用时它们有奇怪的软件扫描回退。在这些落地并在 main 中完全启用之后，将进一步测试其他芯片组。

除了 LinuxKPI 工作外，我们调试了一个由驱动程序触发的 panic。事实证明，驱动程序在 detach（关闭）期间会重新调度一些工作，然后释放底层内存。这留下了一个已调度的 callout，如果我们尝试遍历 callout 列表，就会导致 panic。

#### LinuxKPI USB 支持

在第一季度我们报告了此问题的阻碍。我很高兴地宣布，解决了一半的阻碍，即我原本想添加的编译器选项现在已从 main 和 stable/15 的源代码树中完全移除。LLVM 现在有一个更新的选项，它只是有问题的原始选项允许内容的子集，在一两年后新的 LLVM 发布版和 GCC 随附时迁移到它会很好。现在剩下的工作是为它重新引入一个最小化的解决方案，而不是将其分散到整个内核或大量单独文件中。有希望在 26Q3 期间的某个时候解决。

#### 原生 net80211 更新（技术债务）

* 去年的一些工作发现了我们向用户空间呈现 RSSI 的方式存在的问题。由于可能的双重回绕，值可能不正确。此问题的驱动程序和 net80211 部分修复完成。用户空间 API 尚未修复，以避免造成破坏（包括对主要 Web 浏览器的破坏）。
* 6 月最后一周恢复了讨论，以使用 lib80211 修复 Port，这将帮助我们在各种问题上向前推进，而不会不断破坏用户空间。

#### 最后说明

尽管再次有更多人在 FreeBSD 上使用无线，但问题最近变得安静了。我不确定这是否是好兆头。

我们感谢收到的所有反馈和问题报告，如果它们来自 bugzilla，我们也会尝试将它们分类到特定组（见链接）。有些可能看起来被遗漏了，但我们通常尽量不让这种情况发生。有时计划了针对你问题领域的更大工作，因此可能不会立即获得帮助，有时其他事情可能在队列前面。如果问题得到正确记录，以后回头处理就会更容易。如果你有（基于 LinuxKPI 的）无线问题，请尝试使用官方渠道：检查开放的 PR、向无线邮件列表发送说明、如果需要给我发私人邮件（例如，如果你有包含可能隐私信息的核心转储），或者如果问题尚未知晓（或似乎被遗漏，因为那样它就属于公开跟踪），则打开新的 PR。

**赞助者**：FreeBSD 基金会

### DRM 驱动程序

**链接**：

[更新到 Linux 6.13 DRM 驱动程序](https://github.com/freebsd/drm-kmod/pull/469)

**联系方式**：Jean-Sébastien Pédron <<dumbbell@FreeBSD.org>>

DRM 驱动程序是**用于集成和独立 GPU 的内核驱动程序**。它们在 Linux 内核中维护，我们将其移植到 FreeBSD。截至本报告，我们仅采用 AMD 和 Intel DRM 驱动程序（NVIDIA FreeBSD 驱动程序是专有的，由 NVIDIA 自己提供）。

我们一次移植一个 Linux 版本。这使我们能够更频繁地发布更新，并使移植和调试更容易，因为与跳过多个版本的大跳跃相比，我们的差异更小。

本季度，我们完成了**从 Linux 6.12 LTS 移植 DRM 驱动程序，及时赶在 FreeBSD 15.1-RELEASE 发布之前**。因为这是 LTS 版本，我们将跟踪 Linux 6.12.x 补丁的更改。目前，我们在 6.12.81，正在继续升级到最新补丁。这些驱动程序可从 Ports 树和软件包获取。

作为 6.12 驱动程序工作的一部分，修复了已支持 GPU 的若干错误或回归。一些较新的 GPU 也开始工作。

我们在 i915 和 amdgpu 驱动程序中仍有若干不稳定性需要修复。

我们还继续从后续 Linux 版本移植 DRM 驱动程序：

* **Linux 6.13 的更新正在审查和测试中**。
* Linux 6.14 的更新也准备就绪，将在 6.13 更新后审查。

此工作由 FreeBSD 基金会作为笔记本电脑和桌面项目的一部分慷慨赞助。

**赞助者**：FreeBSD 基金会

### GENEVE 隧道

**链接**：

[添加 Geneve 支持（RFC8926）](https://reviews.freebsd.org/D54172)

**联系方式**：Pouria Mousavizadeh Tehrani <<pouria@FreeBSD.org>>

自上次报告以来，我提交了驱动程序 [geneve(4)](https://man.freebsd.org/cgi/man.cgi?query=geneve\&sektion=4\&format=html)，它现在可在 CURRENT 上使用。

### 一系列 IPv6 改进

**联系方式**：Pouria Mousavizadeh Tehrani <<pouria@FreeBSD.org>>

在过去 6 个月中，我致力于刷新我们的 IPv6 协议栈并在我们的协议栈中实现待处理的 RFC，它们现在可在 CURRENT 上使用。

到目前为止，我添加了对以下内容的支持：

* RFC 9131 和 RFC 9898 第 3.9 节：支持无偿邻居发现（GRAND）。
* RFC 8781（第 5 节）：能够拥有多个 PREF64 选项。
* RFC 4861（第 7.2.6 - 7.2.8 节）：支持任播和代理地址的延迟邻居通告。
* RFC 4191：支持路由器通告中的路由信息选项。
* 移除了对 DRAFT\_IETF\_6MAN\_IPV6ONLY\_FLAG 的支持，以用 RFC 8925 替换它。

正在进行的工作：

* RFC 8925：DHCPv4 的 IPv6-Only 首选选项 [（D56637）](https://reviews.freebsd.org/D56637)
* RFC 4429：添加对 Optimistic DAD 的支持。[（D55229）](https://reviews.freebsd.org/D55229)

我要特别感谢 [Gleb Smirnoff](mailto:glebius@FreeBSD.org) 在这些工作中给予的不懈指导和帮助。

### 支持路由度量

**联系方式**：Pouria Mousavizadeh Tehrani <<pouria@FreeBSD.org>>

我自 2026Q1 起一直在从事度量实现。路由度量是路由器用来做出路由决策的配置值。路由器度量帮助路由协议栈在到目的地的多个可行路由中选择最佳路由。路由将朝着度量最低的网关方向进行。我们的路由协议栈中的度量支持实现完成，在 CURRENT 中可用。度量支持需要大量更新内核和用户空间。

以下是添加的一些亮点：

* 通过 rmx\_metric 在 rtsock 中支持度量。
* RTA\_PRIORITY 在 netlink 中支持度量。
* 删除了度量的高 8 位权重预留。
* [route(8)](https://man.freebsd.org/cgi/man.cgi?query=route\&sektion=8\&format=html) 现在显示度量值。
* [netstat(1)](https://man.freebsd.org/cgi/man.cgi?query=netstat\&sektion=1\&format=html) 在使用 -w 时现在显示每条路由的度量值。

你还可以使用 [net/bird](https://cgit.freebsd.org/ports/tree/net/bird/) Port 为你的路由协议利用度量。

### FreeBSD 的原生 MPLS 支持

**链接**：

[编程之夏项目 Wiki](https://wiki.freebsd.org/SummerOfCode2026Projects/NativeMPLSSupportForFreeBSD)

[FreeBSD 源代码 Fork](https://codeberg.org/Subhash_Murmu/freebsd-src)

**联系方式**：Subhash Murmu <<subhashmurmujsr2511@gmail.com>>

此项目作为谷歌编程之夏 2026 的一部分，在 Bruce Simpson 和 Alexander Chernikov 的指导下，向 FreeBSD 内核添加原生多协议标签交换（MPLS）支持。MPLS 在生产网络中广泛部署用于标签交换转发，但 FreeBSD 基本系统中没有 MPLS 数据平面，因此支持 MPLS 的路由守护程序没有内核转发路径可供编程。工作自底向上构建，从线路级封装到控制平面，并与现有 FreeBSD 网络协议栈集成，而非旁置。

阶段 1 至 3 完成，并作为五次提交的分层历史推送到 Codeberg fork 的 `mpls` 分支。阶段 1 添加了 EtherType 0x8847 的链路层封装和 [netisr(9)](https://man.freebsd.org/cgi/man.cgi?query=netisr\&sektion=9\&format=html) 分发。阶段 2 将 OpenBSD 的 [ldpd(8)](https://man.freebsd.org/cgi/man.cgi?query=ldpd\&sektion=8\&format=html) 移植到 FreeBSD，现在可以构建和运行。阶段 3 添加了转发引擎和每个 VNET 的标签信息库，在 [epair(4)](https://man.freebsd.org/cgi/man.cgi?query=epair\&sektion=4\&format=html) 上的 VNET Jail 之间通过 tcpdump 验证了端到端 LSP 传输。

该系列尚未提交到 Phabricator。ldpd 的内核路由编程工作仍在继续。

**赞助者**：谷歌编程之夏 2026

### 蓝牙 HID 驱动程序

**链接**：

[FreeBSD wiki 项目页面](https://wiki.freebsd.org/SummerOfCode2026Projects/BluetoothSupportForHIDDevices)

[项目 GitHub 仓库](https://github.com/majintosh/freebsd-bthid)

**联系方式**：Majed Alkhaleefah <<majed@FreeBSD.org>>

作为编程之夏 2026 的一部分，我一直在开发两个驱动程序，以为蓝牙设备启用 HID 驱动程序支持。

该项目的主要目标是通过两个新驱动程序 `bthidbus` 和 `bthid` 将连接的蓝牙 HID 设备注册为 Newbus 设备。`bthidbus` 充当管理 `bthid` 子设备创建和附加的父总线。`bthid` 充当传输层，生成 `hidbus` 设备并在剥离头后将所有接收到的数据包路由到它。这里的短期目标是启用对无线 HID 连接的支持。长期目标是开始奠定基础，使其他人能够为只能通过蓝牙连接的设备编写驱动程序。

已完成的工作：

* `bthidbus` 可以通过套接字成功打开与蓝牙设备的连接。
* `bthid` 可以接收和管理通过 ivars 从 `bthidbus` 传递下来的套接字。
* `bthid` 可以将报告描述符发送到 `hidbus`，后者成功生成正确的 HID 设备和驱动程序。（例如，通过蓝牙连接的游戏手柄生成 `hgame` 设备和 `evdev` 节点。）
* `hidbus` 和 `evdev` 成功接收蓝牙设备的输入。

当前问题和计划更改：

* 实际的报告描述符、蓝牙地址等必须硬编码到 `bthidbus` 中。我最初考虑将查询/监听逻辑添加到 `bthidbus` 让它充当伪服务器，但我担心这会导致臃肿和范围蔓延。我将采用的方法是依赖 `bthidd` 守护程序的现有查询逻辑，并让它通过 `ioctl` 将新连接信息发送到 `bthidbus`。这将移除 `bthidbus` 当前作为连接发起者的角色，而是仅管理已打开的连接。
* 通过 `evtest` 监控时存在显著的输入延迟。我有两个不同的工作假设。第一个是问题在于 `bthid` 以及它如何通过 taskqueue 管理中断。第二个是问题在于网络协议栈，因为蓝牙数据包在 `bthid` 接收之前通过多个不同的 Netgraph 节点管道传输。这也可能是 `evtest` 的问题；我仍需调查此事。

到目前为止，所有测试都是使用 Nintendo Switch Pro Controller 完成的。

### NTSYNC(9)

**联系方式**：Konstantin Belousov <<kib@FreeBSD.org>>

最近有一系列文章在炒作 Linux 驱动程序 ntsync，它实现了 Wine 的辅助程序以加速 Windows NT 同步原语。它提供了实现 Win32 领域中信号量、互斥锁和事件的基础。驱动程序将每个 NT 对象表示为文件描述符，其定义的 ioctl 集直接映射到 Win32 操作。

如 Linux 7.0-rc3 文档 Documentation/userspace-api/ntsync.rst 所规定，该项目实现了提供兼容 ntsync 接口的驱动程序。原生 FreeBSD 接口和 Linux ABI 兼容层均编写完成。

为了测试驱动程序，移植了 Linux 内核测试工具的最低版本。当发现 Linux 文档和测试之间存在差异时，FreeBSD 驱动程序遵循测试编码的接口细节。

驱动程序及其手册页 [ntsync(4)](https://man.freebsd.org/cgi/man.cgi?query=ntsync\&sektion=4\&format=html) 均从头编写，未参考 Linux 源代码。

**赞助者**：FreeBSD 基金会

## 架构

更新平台特定功能并引入对新硬件平台的支持。

### FreeBSD Port 树莓派启动盘制作工具

**链接**：

[树莓派启动盘制作工具上游](https://github.com/raspberrypi/rpi-imager)

[FreeBSD Port 拉取请求](https://github.com/raspberrypi/rpi-imager/pull/1655)

[PR 296480 - FreeBSD Ports 开放审查](https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=296480)

**联系方式**：

Jim Chen <<jim.chen.1827@gmail.com>>

Nimish Jain <<njain15@protonmail.com>>

树莓派启动盘制作工具是由树莓派基金会开发的一款便捷的图形工具，用户可以轻松配置并将操作系统映像刷写到树莓派 Zero 和树莓派 1-5 系列单板计算机的存储卡上。

我们将此应用程序移植到 FreeBSD 的目标是继续降低入门门槛。我们希望不熟悉命令行的用户能够轻松地将操作系统刷写到他们的树莓派上。

目前，上游项目仅支持 Linux、MacOS 和 Windows。我们创建了一个使用原生 I/O、磁盘和网络 API 并链接预打包 FreeBSD 库的 FreeBSD Port。

该项目的主要阻碍目前是上游的不确定性。维护者请求 FreeBSD 开发者参与，以帮助长期维护 FreeBSD 特定代码。如果你是提交者或对 FreeBSD 上的树莓派工具有兴趣的贡献者，请告知我们或加入 GitHub 拉取请求的讨论！

如果此工作获得上游接受，FreeBSD Ports 仓库的 Makefile 准备好作为 PR 296480（<https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=296480>）审查。

如果你感兴趣，请克隆 Ports 树并应用上述 PR 中的补丁来尝试本地发布版本，如果有任何问题请告诉我们！

**赞助者**：FreeBSD 基金会

### 增强 FreeBSD 上的 Arduino 和 ESP32 开发生态系统

**联系方式**：Deepan Sai <<skdeepan.sai@gmail.com>>

#### 项目概述

我正在将 Arduino CLI 软件包添加到 FreeBSD Ports 中。Arduino CLI 是一款帮助用户使用 Arduino 开发板的命令行工具。通过将其添加到 FreeBSD，我希望让开发者更容易使用。

#### 工作的重要性

很多人在嵌入式系统和自动化中使用 Arduino CLI。将其作为 Port 放在 FreeBSD 上可以轻松安装和更新软件。这有助于使 FreeBSD 与硬件和嵌入式开发者使用的工具保持一致。

#### 本期进展

这次我致力于让新 Port 准备好接受审查。我编写了 Makefile 并确保软件包正确构建。我发现一个问题，一个测试因为缺少 FreeBSD 的设置而失败。我修复了此问题。测试现在可以工作了。

我完成了新 Port 的所有检查，如确保文件在正确的位置以及测试正确运行。我还修复了人们在审查我的工作时发现的一些问题。该 Port 现在更接近准备好添加至 FreeBSD Ports。

**赞助者**：谷歌编程之夏

### FreeBSD BananaPi-R64/R2-PRO 驱动程序开发

**链接**：

[Wiki](https://wiki.freebsd.org/arm/Bananapi)

**联系方式**：Martin Filla <<freebsd@sysctl.cz>>

欢迎贡献者。如果你有兴趣帮助此项目、测试当前实现或贡献代码，请联系我。

#### R64 简介

Banana Pi R64 是一款基于 MediaTek MT7622 的开发板（ARM Cortex-A53，双核约 1.35 GHz），具有 4 个千兆 LAN、1 个千兆 WAN、Wi-Fi（4×4n）、蓝牙 5.0 和多种外设接口（UART、SPI、I²C、GPIO、SATA、mini-PCIe、eMMC 等）。

#### R64 FreeBSD 支持现状

目前实现：

* **UART 驱动程序**
* **时钟管理（clocks）**
* **Pinctrl**
* **存储控制器（eMMC/SD/MMC）驱动程序**
* **以太网交换机 mt7531 驱动程序**
* **以太网 mt7622 驱动程序**
* **XHCI 驱动程序**
* **看门狗驱动程序**
* **RTC 驱动程序**
* **RNG 驱动程序**
* **Pciecfg 驱动程序**
* **SysIRQ 驱动程序**
* **USB3**
* **T-PHY**

#### R64 开发路线图

实现缺失的驱动程序：

* SATA / AHCI
* Wi-Fi（可能是 MediaTek MT7615）
* GPIO 子系统
* I²C
* SPI
* PWM
* PCIE

#### R2-PRO 简介

Banana Pi BPI-R2 Pro 是下一代智能路由器开发板。它由 Rockchip RK 3568 处理器驱动。板载 2GB LPDDR4 内存和 16GB eMMC 存储，支持 2 个 USB 3.0 接口、5 个千兆网络端口。M.2 key-E 和 mini PCIe 接口、2 个 mipi DSI 接口（其中一个可通过软件更改为 LVDS）、1 个 CSI 摄像头接口、1 个 HDMI 输出。

#### R2-PRO FreeBSD 支持现状

目前实现：

* **UART 驱动程序**
* **时钟管理（clocks）**
* **Pinctrl**
* **GPIO**
* **存储控制器（eMMC/SD/MMC）驱动程序**
* **XHCI 驱动程序**
* **看门狗驱动程序**
* **PCIE 驱动程序**

#### R2-PRO 开发路线图

实现缺失的驱动程序：

* HDMI
* MIPI
* USB3
* SATA

### Framework 笔记本电脑支持

**链接**：

[FreeBSD Wiki 上的 Framework 笔记本电脑页面](https://wiki.freebsd.org/Laptops/Framework_Laptop/)

[在 Framework 系统上安装和使用 FreeBSD 的指南](https://github.com/FrameworkComputer/freebsd-on-framework)

[Framework 系统管理工具](https://github.com/FrameworkComputer/framework-system)

[跟踪票据：Framework 笔记本电脑：功能支持、错误和改进](https://bugs.freebsd.org/262152)

**联系方式**：

Daniel Schaefer <<dhs@frame.work>>

许立文 <<lwhsu@FreeBSD.org>>

Sheng-Yi Hong <<aokblast@FreeBSD.org>>

Framework Computer Inc. 继续以多种方式支持 FreeBSD 项目。这包括向 FreeBSD 基金会提供工程样品和开发硬件、帮助进行硬件测试，以及与 FreeBSD 开发者合作改进兼容性。

基金会继续改进整体笔记本电脑支持。Framework 笔记本电脑是[笔记本电脑支持与可用性项目](https://github.com/FreeBSDFoundation/proj-laptop/)的[目标平台](https://github.com/FreeBSDFoundation/proj-laptop/blob/main/supported/laptops.md)之一。

在 2026Q2 期间，Daniel 将 [sysutils/framework-system](https://cgit.freebsd.org/ports/tree/sysutils/framework-system/) Port 更新到[版本 0.6.2](https://cgit.freebsd.org/ports/commit/?id=44c4f4f51c57114020a677eab11f41cd498b5275)，后来又更新到[版本 0.6.4](https://cgit.freebsd.org/ports/commit/?id=10313ba3d036d8d981a68dd7c87416ed568e4201)。此软件包为 FreeBSD 用户提供 Framework 特定的系统和固件管理工具。

Framework 还在本季度于其台北办公室举办了一次小型黑客马拉松。FreeBSD 开发者测试了新发布的硬件，包括基于 Intel Panther Lake 的 Framework Laptop 13 Pro 和 10GbE 适配器。

Li-Wen 正在开发 10GbE 适配器的 FreeBSD 支持，该适配器使用 Realtek RTL8159 控制器。

通过在 Framework 硬件上的开发和测试，包括 Framework 在台北黑客马拉松期间提供的预发布系统，Intel Panther Lake 系统的支持也取得了进展。Daniel 添加了 [Panther Lake I2C 和 SMBus 控制器的 PCI ID](https://cgit.freebsd.org/src/commit/?id=39e297bf54a57a17d8b44c20e502d6f2c6db08f6)，Sheng-Yi 将工作提交到 FreeBSD。一项[后续更正](https://cgit.freebsd.org/src/commit/?id=4ccbceefeb0f2898e2e4bb951862125d0bc5ce34)移除了一个被错误识别为 SPI 总线控制器的 SPI 闪存控制器的 ID。

6 月，Li-Wen 还开始测试和调试来自 [graphics/drm-612-kmod](https://cgit.freebsd.org/ports/tree/graphics/drm-612-kmod/) Port 的基于 Linux 6.12 的 DRM 驱动程序，该 Port 在本季度[添加](https://cgit.freebsd.org/ports/commit/?id=9c021c6bac866056943a39062b09d39a177c3021)。他调查了 Framework 系统上的显示相关问题，并怀疑其中一些可能与[笔记本电脑支持与可用性项目](https://github.com/FreeBSDFoundation/proj-laptop/issues/27)中跟踪的外部显示热插拔问题相同或相关。调查在本季度末仍在进行中，并持续到第三季度。

Intel 和 AMD 系统的电源和性能管理继续改进。Framework 系统是用于此项工作的开发和测试平台之一。一些系统由 Framework 提供，而 FreeBSD 开发者也在自己的 Framework 硬件上进行开发和测试。

Sheng-Yi [在混合核心 CPU 上禁用了 Intel HWP 包控制模式](https://cgit.freebsd.org/src/commit/?id=7b26353a59d66dc1bc611fd042a49b9e3bd13699)。没有此更改，来自能效核心的请求可能会将所有核心限制在其性能水平，导致显著的性能损失。

本季度完成的其他 HWP 和 CPPC 改进包括：

* [公开可用的 AMD 传统 P 状态节点](https://cgit.freebsd.org/src/commit/?id=095cbb1bb7f7b4f742b0a500aa2c61a8c97d4b41)。
* [缓存 AMD CPUID 信息](https://cgit.freebsd.org/src/commit/?id=e48e9794589993da039a2f4d1c66f8fdd6421155)。
* [为 Intel 每 CPU HWP 更新使用 IPI](https://cgit.freebsd.org/src/commit/?id=29b8220b179bf0ce93c0034ec5d9f46db9092353)。
* [使用完整的 8 位 Intel 能效性能偏好尺度](https://cgit.freebsd.org/src/commit/?id=8452afeb5682052b2533363ee3351d6d0e183e60)。

Framework Laptop 12 的挂起和恢复支持工作也取得了进展。Devin Teske 开发并测试了[一项提议的 ACPI 修复](https://reviews.freebsd.org/D57712)，针对可能导致系统在恢复后立即再次挂起的唤醒问题。Daniel 调查了笔记本电脑的 ACPI 和嵌入式控制器固件行为，Warner Losh 和 Olivier Certner 提供了技术审查并帮助改进实现。

**赞助者**：FreeBSD 基金会（资助许立文和 Sheng-Yi 的工作）

**赞助者**：Framework Computer Inc.（资助 Daniel 的工作，以及为项目提供的硬件和场地）

### FreeBSD 上的 ROCm 支持

**链接**：

[带有部分 amdkfd 支持的 drm-kmod fork](https://github.com/Yohello1/drm-kmod-rocm/tree/super-special)

[带有 FreeBSD 修复的 rocm-systems fork](https://github.com/Yohello1/rocm-systems)

**联系方式**：Sourojeet Adhikari <<siri@racha.ca>>

ROCm 是 AMD 用于其 GPU 的计算平台。目前，FreeBSD 完全不支持 ROCm，无论是在工具链层面还是驱动程序层面。我正在努力改变这一点并将所需更改回溯上游。

据我所知，在 FreeBSD 上有几种方法可以在 GPU 上运行计算负载（如 AI/ML、图形等）；据我所知，这些方法是 Vulkan 和 OpenGL。Vulkan 和 OpenGL 都非常适合计算工作负载，即图形和有时机器学习负载。但有时有些任务不太适合 Vulkan 和 OpenGL，而是在 ROCm/CUDA 中完成，因为 ROCm 和 CUDA 给开发者更多关于任务完成方式的控制。因此我正在尝试将 ROCm 支持引入 FreeBSD，以便我们可以在 FreeBSD 上运行 ROCm 代码/程序。要让 ROCm 工作需要几件事。首先是 AMD 的 LLVM fork，我修补了它、让其能工作并上游化了补丁。接下来是 ROCm 运行时，已修补，我目前正将补丁上游化。最后是 amdkfd 驱动程序，我正在修补，并将一些 LinuxKPI 相关的补丁上游回 FreeBSD 内核。

最近，我向 AMD 的 LLVM fork 上游了更改，以在 FreeBSD 上编译其 fork，这样你就可以构建其 ROCm 工具链。除此之外，我一直在将一系列补丁纳入 LinuxKPI，以缓慢引入 amdkfd 支持。

**赞助者**：FreeBSD 基金会

## 云

更新云特定功能并引入对新云平台的支持。

### EC2 上的 FreeBSD

**联系方式**：Colin Percival <<cperciva@FreeBSD.org>>

FreeBSD 在 amd64（Intel 和 AMD）和 arm64（Graviton）EC2 实例上均可用。

导致 [ena(4)](https://man.freebsd.org/cgi/man.cgi?query=ena\&sektion=4\&format=html) 驱动程序在接收巨型帧时丢包的问题修复完成。该修复出现在 15.1-RELEASE（6 月）中，将出现在 14.5-RELEASE（9 月）中。此修复将某些 EC2 实例上的单 TCP 流网络性能从 110 Mbps 提高到 9.5 Gbps，并显著改善了多 TCP 流吞吐量。

导致 [ena(4)](https://man.freebsd.org/cgi/man.cgi?query=ena\&sektion=4\&format=html) 驱动程序在 NUMA 系统上在错误 CPU 上启动 taskqueue 的问题确认完成。该修复应出现在 14.5-RELEASE（9 月）中，在 c8gn.48xlarge 实例上产生 2 倍的多 TCP 流吞吐量增长。

**赞助者**：亚马逊

**赞助者**：<https://www.patreon.com/cperciva>

### Microsoft HyperV 和 Azure 上的 FreeBSD

**链接**：

[FreeBSD wiki 上的 Microsoft Azure 文章](https://wiki.freebsd.org/MicrosoftAzure)

[FreeBSD wiki 上的 Microsoft HyperV 文章](https://wiki.freebsd.org/HyperV)

**联系方式**：

Microsoft FreeBSD Integration Services Team <<bsdic@microsoft.com>>

[freebsd-cloud 邮件列表](https://lists.freebsd.org/subscription/freebsd-cloud)

The FreeBSD Azure Release Engineering Team <<releng-azure@FreeBSD.org>>

Wei Hu <<whu@FreeBSD.org>>，<<weh@microsoft.com>>

许立文 <<lwhsu@FreeBSD.org>>

正在将 15.1-RELEASE 映像发布到 Azure Marketplace。预计将在第三季度初公开可用。

许立文正在调查支持 Azure Trusted Launch 所需的技术细节。

Wei 和许立文与其他 Microsoft 工程师一起正在调查一个阻止 mana(4) 在基于 AMD 的 Azure VM 上正常工作的问题。mana(4) 设备出现在最新的 v7 代 Azure VM 上。

进行中的任务：

* 自动化映像发布流程并将其合并到 **src/release/**。
* 使发布到 Azure Marketplace 的流程更顺畅。
* 在 [Azure VM utilities](https://github.com/Azure/azure-vm-utils/) 中支持 FreeBSD。

开放任务：

* 在 [Microsoft Learn](https://learn.microsoft.com) 更新 FreeBSD 相关文档。
* 将 [sysutils/azure-agent](https://cgit.freebsd.org/ports/tree/sysutils/azure-agent/) 更新到最新版本。
* 回溯上游 [Azure agent 的本地修改](https://github.com/Azure/WALinuxAgent/pull/1892)。
* 移植 [Linux Virtual Machine Extensions for Azure](https://github.com/Azure/azure-linux-extensions)。
* 在 [Azure Pipelines](https://azure.microsoft.com/products/devops/pipelines/) 中添加 FreeBSD 支持。
  * <https://github.com/microsoft/azure-pipelines-agent/pull/3266>
  * 构建并发布快照构建到 [Azure community gallery](https://learn.microsoft.com/azure/virtual-machines/share-gallery-community)。

**赞助者**：微软（资助微软内部人员，并为其他人员提供资源）

**赞助者**：FreeBSD 基金会（资助其余工作）

## 文档

文档树、手册页或新的外部书籍/文档中的显著变更。

### FreeBSD 俄语文档项目

**链接**：

[FreeBSD 官方俄语网站](https://www.freebsd.org/ru/)

[FAQ](https://docs.freebsd.org/ru/books/faq/)

[FreeBSD 俄语文档项目站点](https://github.com/freebsd-doc-ru/freebsd-doc/discussions)

**联系方式**：

Andrey Zakhvatov <<andy@FreeBSD.org>>

Vladlen Popolitov <<vladlen@FreeBSD.org>>

FreeBSD 俄语文档项目的当前目标是为 FreeBSD 文档最重要的部分（FAQ、手册、网站内容）提供最新的俄语翻译。为俄语用户提供高质量官方技术材料至关重要，有助于提高该操作系统在全球的采用率。我们希望这一倡议能在俄语 FreeBSD 社区获得支持，并带来新的翻译材料。

上季度：

* Weblate 中所有文本翻译完成。
* [www.FreeBSD.org/ru](https://www.freebsd.org/ru) 的俄语部分彻底翻译完成，其页面现在完全可用俄语访问。
* 对于 FreeBSD 15.1 发行版，完整的发行文档集（发行说明、勘误表等）与英文原文同步及时翻译成俄语。
* FreeBSD 手册页的翻译项目启动，处于非常早期的阶段。可在 [GitHub](https://github.com/freebsd-doc-ru/freebsd-man-ru) 找到初步示例。

下季度计划：

* 继续进行中的 FreeBSD 手册页翻译项目。

如果你想提供帮助，请查看[官方翻译指南](https://docs.freebsd.org/ru/books/fdp-primer/translations/)。

我们将感谢你协助翻译以下材料：

* 网页
* 手册页

## Ports

影响 Ports 的变更，无论是涉及树的大部分的大规模变更，还是单个 Port 本身。

### Dockerbox

**链接**：

[freebsd-dockerbox GitHub](https://github.com/leafoliage/freebsd-dockerbox)

[dockerbox-broker GitHub](https://github.com/leafoliage/dockerbox-broker)

[freebsd-dockerbox-debian GitHub](https://github.com/leafoliage/freebsd-dockerbox-debian)

**联系方式**：Chun-Cheng Yeh <<leafoliage@FreeBSD.org>>

Dockerbox 是一款虚拟化的 Docker 守护程序。虽然 Docker 守护程序在 FreeBSD 上原生不可用，但 Dockerbox 在 Debian Bhyve 虚拟机内运行它以提供访问。Dockerbox 支持常见的 Docker 功能，如 Docker Compose、Port 发布和绑定挂载。该项目旨在促进 FreeBSD 上的非生产 Docker 使用。

#### 相关 Port 和仓库

* [freebsd-dockerbox](https://github.com/leafoliage/freebsd-dockerbox) 通过在 Linux Bhyve VM 内运行 `dockerd` 在 FreeBSD 上提供 Docker。此服务管理 Dockerbox 客户机的生命周期，以及其网络和存储设置。 *v0.2.5——移植完成。*
* [dockerbox-broker](https://github.com/leafoliage/dockerbox-broker) Dockerbox 的子服务，当容器请求端口发布时处理从主机到 Dockerbox 客户机的端口转发。 *尚未移植。*
* [freebsd-dockerbox-debian](https://github.com/leafoliage/freebsd-dockerbox-debian) 用于生成 Dockerbox 磁盘映像的代码库。 *尚未移植。*
* [docker-cli](https://www.freshports.org/sysutils/docker-cli/) Docker CLI 工具。 *v29.4.2——移植完成。*
* [docker-compose](https://www.freshports.org/sysutils/docker-compose/) 用于定义和运行多容器应用程序的 Docker CLI 插件。 *v5.1.3——移植完成。*
* [docker-buildx](https://www.freshports.org/sysutils/docker-buildx) 通过 BuildKit 提供扩展构建功能的 Docker CLI 插件。 *v0.34.1——移植完成。*

[sysutils/dockerbox](https://cgit.freebsd.org/ports/tree/sysutils/dockerbox/)、[sysutils/docker-cli](https://cgit.freebsd.org/ports/tree/sysutils/docker-cli/)、[sysutils/docker-compose](https://cgit.freebsd.org/ports/tree/sysutils/docker-compose/) 和 [sysutils/docker-buildx](https://cgit.freebsd.org/ports/tree/sysutils/docker-buildx/) 现在在 FreeBSD Ports 集合中可用，并可通过 `pkg` 安装。

**赞助者**：FreeBSD 基金会

### FreeBSD 上的 KDE

**链接**：

[KDE/FreeBSD 倡议](https://freebsd.kde.org/)

[FreeBSD——KDE 社区 Wiki](https://community.kde.org/FreeBSD)

**联系方式**：KDE on FreeBSD 邮件列表 <<kde@FreeBSD.org>>

KDE on FreeBSD 项目为 FreeBSD Ports 树打包 CMake、Qt 和 KDE 社区的软件。软件包括完整的桌面环境 KDE Plasma（支持 X11 和 Wayland），以及数百个可用于任何 FreeBSD 机器的应用程序。[KDE 团队](mailto:kde@FreeBSD.org) 是 [desktop@](mailto:desktop@FreeBSD.org) 的一部分，构建软件栈以使 FreeBSD 成为一个美观且可用的日常图形桌面工作站。

#### 基础设施

CMake 更新至 3.31.12。

Qt6 和 PySide6 更新至 6.11.1。PyQt6 更新至 6.11.0。

Qt5 和 PySide2 更新至 5.15.19 KDE 补丁集合。上游对 Qt5 的标准支持正式结束。这是 Qt5 的最后一次更新。

#### KDE 栈

KDE Frameworks、Plasma 和 Gear 的发布非常规律。[KDE 团队](mailto:kde@FreeBSD.org) 在上游发布后不久就会落地这些更新。

* KDE Frameworks Port 更新至 6.28.0。
* KDE Plasma 桌面更新至 6.6.6。
* KDE Gear 更新至 26.04.3。

#### 相关 Port

添加了若干新的 KDE Port。经典 KDE 音乐播放器 Amarok 恢复并更新至 3.3.3。

#### Qt5 Port 的落幕

Qt5 仍由约 350 个 Port 使用。虽然 Qt5 弃用，但目前还没有从 Ports 树中移除的确切日期。不过，基于非常旧的 Chromium 且有多个漏洞的 Qt5WebEngine Port 计划在 2026Q4 之前移除。KDE 团队鼓励维护者将其 Port 迁移到 Qt6、移除 Qt5 flavors 并移除被放弃的 Qt5 软件。

### FreeBSD 上的 GCC

**链接**：

[GCC 项目](https://gcc.gnu.org/)

[GCC 13 发布系列](https://gcc.gnu.org/gcc-13/)

[GCC 14 发布系列](https://gcc.gnu.org/gcc-14/)

[GCC 15 发布系列](https://gcc.gnu.org/gcc-15/)

[GCC 16 发布系列](https://gcc.gnu.org/gcc-16/)

[GCC 17 发布系列](https://gcc.gnu.org/gcc-17/)

**联系方式**：Lorenzo Salvadore <<salvadore@FreeBSD.org>>

创建了两个新 Port：[lang/gcc16](https://cgit.freebsd.org/ports/tree/lang/gcc16/) 和 [lang/gcc17-devel](https://cgit.freebsd.org/ports/tree/lang/gcc17-devel/)。

关于 arm64 构建失败的 [PR 294062](https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294062) 修复完成。更确切地说，在 2026Q2 [lang/gcc16-devel](https://cgit.freebsd.org/ports/tree/lang/gcc16-devel/) 和 [lang/gcc17-devel](https://cgit.freebsd.org/ports/tree/lang/gcc17-devel/) 修复完成，而 [lang/gcc16](https://cgit.freebsd.org/ports/tree/lang/gcc16/) 在第三季度初修复完成（撰写本报告时补丁仍需转发到 ports 季度分支）。遗憾的是，该解决方案仅限于 FreeBSD Ports 树，无法直接回溯上游。可在[上游 bugzilla](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=125182)中找到上游解决方案的讨论。感谢所有帮助的人，特别是 Mark Millard。

本季度我没有亲自参与使 GCC\_DEFAULT=15 的[流程](https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292692)，但相关 PR 中正在进行一些工作，因此也在向前推进。此外，计划对 [lang/gcc13](https://cgit.freebsd.org/ports/tree/lang/gcc13/)、[lang/gcc14](https://cgit.freebsd.org/ports/tree/lang/gcc14/) 和 [lang/gcc15](https://cgit.freebsd.org/ports/tree/lang/gcc15/) 进行小版本更新。

随着我继续处理 GCC Port，我意识到我能投入的时间和精力越来越少。这些 Port 很重要，我宁愿不让它们无人维护，至少在我能够处理它们之前，即使进展缓慢。但如果有人愿意接手，请站出来，我会很高兴转让维护权。

### 改进 FreeBSD 上的 OpenJDK

**链接**：

[项目描述](https://freebsdfoundation.org/project/improving-openjdk-on-freebsd/)

[项目仓库](https://github.com/freebsd/openjdk)

[上游 BSD 移植仓库](https://github.com/openjdk/bsd-port)

**联系方式**：

Harald Eilertsen <<haraldei@FreeBSD.org>>

FreeBSD Java 邮件列表 <<freebsd-java@lists.freebsd.org>>

本项目的目标是改进对 FreeBSD/amd64 和 FreeBSD/arm64 的 OpenJDK 支持。

Java 是许多高性能、关键企业系统的重要运行时环境。确保基于 Java 的应用程序在 FreeBSD 上正确高效运行对于确保 FreeBSD 继续成为企业和各种规模企业及组织的可行且有吸引力的平台非常重要。

本季度大部分时间用于让上游化流程正确启动。我们向 GitHub 上 OpenJDK 组织下的[单独仓库](https://github.com/openjdk/bsd-port)提交补丁，并确保每个 PR 至少由一名上游审查者审查。这样，当我们达到想要将我们的 Port 合并到上游主线的程度时，所有提交应该已经由项目中的某人审查过。

这是一个相当缓慢的过程，因为我们依赖上游审查者的时间。我们还发现，一些在我们的 Port 中经历了很长时间的更改却遭拒绝。然后我们必须重新处理它们，或者如果并非严格需要，就直接丢弃它们。我觉得这是有用的纠正，但有时会导致相当多的工作。

本季度达成了以下问题/里程碑：

* OpenJDK 25 Port 更新至[版本 25.0.3](https://reviews.freebsd.org/D56522)。
* 上游主线更改和错误修复：
  * [8382614: Consolidate implementation of current\_stack\_base\_and\_size on BSD](https://github.com/openjdk/jdk/pull/30853)
  * [8384085: Make os::Bsd::dlopen\_helper private, and drop unused arg](https://github.com/openjdk/jdk/pull/31069)
  * [8384088: osThread \_thread\_id should be an int on all BSD's](https://github.com/openjdk/jdk/pull/31070)
  * [8384946: os::Bsd::gettid misses the return value](https://github.com/openjdk/jdk/pull/31199)
  * [8386344: runtime/StackGuardPages/TestStackGuardPages build failure after JDK-8303612](https://github.com/openjdk/jdk/pull/31455)
* 回溯上游 BSD 移植：
  * [Fix conditional sections for BSD in hotspot/cpu](https://github.com/openjdk/bsd-port/pull/7)
  * [Port hotspot/os/posix for BSD](https://github.com/openjdk/bsd-port/pull/8)
  * 合并了主线接受的更改。
* 当前（树外）BSD 移植：
  * [Merge + Remove VFORK for BSD + rebase GHA workflow on OpenJDK26](https://github.com/battleblow/jdk/pull/49)
  * [Merge + Fix usage of FREE\_C\_HEAP\_ARRAY macro on BSD](https://github.com/battleblow/jdk/pull/53)
  * [Sync aarch64 cpuinfo impl for \*BSD with Linux](https://github.com/battleblow/jdk/pull/54)
  * [Remove duplicate include in global defs for zero](https://github.com/battleblow/jdk/pull/55)
  * [Remove ThreadWXEnable from BSD code](https://github.com/battleblow/jdk/pull/59)
  * 回移了上游 BSD 移植接受的主线更改。
* Ports：
  * [java/javavmwrapper: JAVA\_VERSION does not work with openjdk25](https://cgit.freebsd.org/ports/commit/?id=7878106082fd1f07814d754ef767c1f59168d1e9)

此外，这些任务仍在进行中或等待审查：

* 上游 BSD 移植：
  * [Port hotspot/os/bsd/os\_perf\_bsd.cpp to BSD](https://github.com/openjdk/bsd-port/pull/9)（等待重构，见 [WIP: Split os\_perf impl for macOS and BSD](https://github.com/battleblow/jdk/pull/61)）
  * [os::get\_process\_uid and os::rss for BSD](https://github.com/openjdk/bsd-port/pull/11)（仍在进行中）

其他说明：

* 开始准备 [OpenJDK 27 Port](https://github.com/snake66/jdk/tree/freebsd-jdk27)。
* 在 [Foss North 2026](https://foss-north.se/2026/speakers-and-talks.html#heilertsen) 上展示了该项目。

**赞助者**：FreeBSD 基金会

### 现代化 FreeBSD HPC Port：Slurm 26.05、UCX 1.20 回溯上游和 MPI 并行文件实用程序

**链接**：

[sysutils/slurm-wlm](https://cgit.freebsd.org/ports/tree/sysutils/slurm-wlm/)

[net/ucx](https://cgit.freebsd.org/ports/tree/net/ucx/)

[sysutils/mpifileutils](https://cgit.freebsd.org/ports/tree/sysutils/mpifileutils/)

[devel/libcircle](https://cgit.freebsd.org/ports/tree/devel/libcircle/)

[devel/lwgrp](https://cgit.freebsd.org/ports/tree/devel/lwgrp/)

[devel/dtcmp](https://cgit.freebsd.org/ports/tree/devel/dtcmp/)

[benchmarks/py-reframe-hpc](https://cgit.freebsd.org/ports/tree/benchmarks/py-reframe-hpc/)

[openucx/ucx#11354: UCS/TYPE portability fixes for non-glibc/Clang environments (merged)](https://github.com/openucx/ucx/pull/11354)

[openucx/ucx#11549: UCS/SYS portability fixes for non-Linux platforms (in review)](https://github.com/openucx/ucx/pull/11549)

[hpc/mpifileutils#664: Portability fixes for FreeBSD/non-Linux builds (in review)](https://github.com/hpc/mpifileutils/pull/664)

[Kavocado Monthly Status Reports – FreeBSD HPC notes](https://kavocado.net/reports/)

**联系方式**：Generic Rikka <<rikka.goering@outlook.de>>

本报告继续 FreeBSD HPC Ports 现代化倡议。前几个季度侧重于使 Slurm + PMIx + PRRTE + UCX 栈保持最新状态，并填补周围生态系统中的空白。本季度的工作集中在三个方面：保持核心调度器和通信库与快速移动的上游发布同步，将维护这些 Port 时积累的 FreeBSD 可移植性修复上游化以使本地补丁集不断缩小，以及为大型 HPC 文件系统上常用的 MPI 并行文件实用程序添加新 Port。

#### 已完成的工作

* 本季度两次更新 [sysutils/slurm-wlm](https://cgit.freebsd.org/ports/tree/sysutils/slurm-wlm/)，从 25.11.4 到 25.11.5，然后从 25.11.5 到 26.05.1，跟踪最新上游发布。
* 修复了 [net/ucx](https://cgit.freebsd.org/ports/tree/net/ucx/) 中若干 FreeBSD 特定的运行时问题：强化了异步线程状态处理，更正了 UCM 重定位处理，修复了 mm 信号套接字绑定，并解决了其他 FreeBSD 运行时可移植性问题。
* 将 [net/ucx](https://cgit.freebsd.org/ports/tree/net/ucx/) 从 1.20.0 更新到 1.20.1，并单独修复了 libucm 早期初始化 panic 以及验证更新时发现的若干 gtest 套件失败。
* 添加了 [sysutils/mpifileutils](https://cgit.freebsd.org/ports/tree/sysutils/mpifileutils/) 作为新 Port，及其依赖栈：[devel/libcircle](https://cgit.freebsd.org/ports/tree/devel/libcircle/)、[devel/lwgrp](https://cgit.freebsd.org/ports/tree/devel/lwgrp/) 和 [devel/dtcmp](https://cgit.freebsd.org/ports/tree/devel/dtcmp/)。这些提供了大型 HPC 文件系统上常用的 MPI 并行文件实用程序（复制、删除、校验和等）。
* 本季度两次更新 [benchmarks/py-reframe-hpc](https://cgit.freebsd.org/ports/tree/benchmarks/py-reframe-hpc/) 以跟踪回归测试框架的上游发布。
* 将“UCS/TYPE: Portability fixes for non-glibc/Clang environments”上游化到 UCX，审查和合并完成。
* 向 UCX 开放了“UCS/SYS: portability fixes for non-Linux platforms”，涵盖主机名缓冲区大小调整、通过 `getifaddrs()`/`AF_LINK` 获取 MAC 地址、共享内存错误报告、基于 `mmap`/`munmap` 的重新分配以及基于 `cpuset_getaffinity()` 的线程亲和性查询；目前正在处理审查反馈。
* 向 mpifileutils 开放了可移植性 PR，为 FreeBSD 和其他非 Linux 构建保护 Linux 专属 API；目前正在审查中。
* 与 SchedMD 合作开发了 Slurm 配置时 `H5PTopen` 探测，用于检测 HDF5 高级库，上游合并完成。

#### 进行中的工作

* 处理开放的 UCX 和 mpifileutils 可移植性拉取请求的审查者反馈，推动其上游合并并进一步减少 FreeBSD Port 的本地补丁集。
* 继续与 SchedMD 合作，将在 FreeBSD 上维护 [sysutils/slurm-wlm](https://cgit.freebsd.org/ports/tree/sysutils/slurm-wlm/) 时发现的其他可移植性修复上游化，包括 BSD 套接字处理改进。
* 评估 `proctrack/freebsd_reaper` Slurm 插件设计，这得益于最近落地的 FreeBSD 内核对在进程信息中公开 reaper 元数据的支持。
* 继续密切跟踪上游 Slurm、UCX 和 PMIx/PRRTE 发布，以最小的本地补丁使 FreeBSD Port 保持最新。

#### 后续计划

* 落地悬而未决的 UCX 和 mpifileutils 上游拉取请求，并继续识别更多可移植性问题以上游化而非本地修补。
* 一旦底层内核接口工作最终完成，原型化并提交 Slurm `proctrack/freebsd_reaper` 插件。
* 继续扩展 FreeBSD Ports 集合中可用的 HPC 软件生态系统，并在可能上游接受的地方减少跨栈的本地补丁集。
* 编写 FreeBSD 上 Slurm + OpenMPI + PMIx + PRRTE + UCX 部署的参考文档，以降低在 HPC 环境中试验 FreeBSD 的新站点的入门门槛。

### 改进 bhyve 虚拟机监控器的 libvirt 支持

**链接**：

[libvirt：bhyve 驱动程序](https://libvirt.org/drvbhyve.html)

**联系方式**：Roman Bogorodskiy <<novel@FreeBSD.org>>

#### 已完成的工作

* libvirt/bhyve 驱动程序：
  * 添加了 `virtio-console` 设备支持。
  * 添加了 QEMU 客户机代理支持。
  * 实现了若干基于 QEMU 客户机代理的功能，如优雅重启和关闭、管理客户机 OS 时间、SSH 密钥、用户密码等。
  * 添加了基于 [rctl(8)](https://man.freebsd.org/cgi/man.cgi?query=rctl\&sektion=8\&format=html) 的内存调优和块 I/O 调优。
* 正在扩展 libvirt CI，针对 FreeBSD-CURRENT 快照虚拟机镜像进行测试。

#### 下季度计划

* 添加引导顺序配置支持。
* 添加 TPM 设备支持。
* 完成挂起/恢复支持。
* 继续实现基于 QEMU 客户机代理的功能。
* 继续扩展 CI，用新测试覆盖新的基于客户机代理的功能。

**赞助者**：FreeBSD 基金会


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://book.bsdcn.org/status/2026/2026-q2.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
