proj-laptop

FreeBSD Foundation Laptop Update - June 2026

NOTE: For more details on any item, please visit the GitHub links provided, these contain more detail and links to relevant materials such as code commits.

Correction

Last month it was erroneously stated that the Perfetto port was in review, however, it was one of the related drivers that was in review and the port itself had not been submitted at the time.

BSDCan videos

There were some talks at BSDCan and the colocated FreeBSD DevSummit that relate to the Laptop Project - The abstracts and timestamped video links are provided here for your convenience.

Heterogeneous Scheduling on FreeBSD - Minsoo Choo

With the advent of chips with heterogeneous cores, operating system engineers have created new or extended scheduling algorithms for those chips. Heterogeneous chips are now everywhere, from ARM-based smartphones to Intel’s new laptop, and the user’s demand for a revised scheduler for HMP (Heterogeneous Multi Processing) has increased in FreeBSD communities. This lecture goes over previous efforts to partially address these needs and ongoing works to integrate core performance information into scheduling policy using hmp framework and to bridge machine-dependent interface and FreeBSD’s ULE scheduler. I will also address how HMP scheduling is done on other operating systems and lessons from those implementations.

Heterogeneous Scheduling on FreeBSD - video

Supporting hibernate (S4) on FreeBSD - Olivier Certner

In this talk, we describe our current work in progress on supporting hibernate on FreeBSD. First, we outline the different high-level steps that are necessary. Then, we delve into how we actually implement them, including ACPI interfacing and programming, how we take a snapshot of kernel memory, save the image to disk and restore it on boot. Finally, we report on this development’s status and, depending on progress, may call for testing it.

Supporting hibernate (S4) on FreeBSD - video

Kernel Scheduler - Olivier Certner

Kernel Scheduler - video Kernel Scheduler - slides

Foundation update (includes Laptop Project)

Foundation update - video Foundation update - slides

Newly added in June

GPIO interrupts for low-latency touchpad use

This issue has been captured to cover some work done at the Halifax Hackathon which addresses the need to improve touchpad performance for some I2C laptop touchpads. Work is started.

GitHub issue #119

In Review

Power

S0i3 Modern Standby

Work continues on addressing critical bugs/blockers to functioning suspend and resume on the reference platform (AMD Framework Laptop). The main focus in June has been advancing D-state management (how FreeBSD manages the power states of its hardware device components) so that we can more reliably control suspend and resume processes. We are now at the point of being able to see what states the NVMe drive is in (this was a component that was failing to resume from an S0ix state).

GitHub issue #32

USB4 HCM for power management

NOTE: This is a dependency for the S0ix state work. The USB4/Thunderbolt port can be placed into a low power state and this is in review. This removes it as a blocker for putting the reference laptop into S0i3.

GitHub issue #61

Debugging tools for low power states

There are two reviews still open as per last month’s report. The Foundation has no further planned development on this after this change lands.

GitHub issue #38

Graphics

Port of the Linux 6.13 Graphics Drivers

Development work on porting the Linux DRM 6.13 graphics driver is complete and has been submitted for review. This is the first step towards reaching 6.18 which is the latest long term support version.

GitHub issue #41

Hardware

Make Airplane Button work

A driver has been added to provide support for HID wireless radio control buttons which are most often found as an airplane mode or RFKILL toggle on laptop keyboards.

GitHub issue #116

In Progress

Power

8 hour working time

This was previously reported on with the title “Power consumption management tooling” but has now been expanded to cover additional sub-issues which relate to the ability to actively use a FreeBSD laptop for 8 hours.

Power consumption management tooling

The work on porting Perfetto to FreeBSD is complete, some testing is required and it will be put into review once that testing is complete.

GitHub issue #6

High performance from laptops with heterogeneous cores

Work continues on preparing the FreeBSD Scheduler to be able to manage AMD64/Intel hybrid CPUs so that performance and efficiency can be balanced where different CPU core types are present in the laptop. This month we performed a detailed analysis of the FreeBSD scheduler (ULE) and submitted some bug fixes on it. Besides heterogeneous cores, the main other goal is to fix some long-standing ULE shortcomings. We have just started reviewing a submitted driver for the Intel Feedback Interface, allowing the CPU to hint at which cores to use for performance or efficiency depending on realtime conditions, as well as a framework (currently called HMP) to provide information to the scheduler about the suitability of different cores to receive a workload at any given moment.

GitHub issue #22

AMD processors’ Collaborative Processor Performance Control (CPPC) support

We picked this up again in the Halifax Hackathon. We are creating new controls to allow users to finely control the performance and efficiency of Intel CPUs, as we already did for AMD CPUs. Once these are created, we are going to change the userspace daemon powerd(8) to apply its policies on top of them instead of the old CPU frequency controls. We have discussed creating the option to choose from a few preset profiles, while retaining the option to use a fully custom setup.

GitHub issue #108

Hibernate (S4)

Some changes to the kernel/loader interface, and bug fixes. A new test image has been generated accordingly. Loader development continues thanks to these new elements.

GitHub issue #29

Wi-Fi

Add Wi-Fi 6 support (802.11ax)

We have three drivers now for Wi-Fi 6 (iwlwifi, rtw89, multiple mt76 chipsets). Work is still needed to get more 802.11 bits implemented into FreeBSD’s net80211 wireless stack to drive LinuxKPI which is a necessary layer in the solution.

GitHub issue #34

Native net80211 updates as needed to support newer 802.11 standards

Work was started in February to discover which ports were using net80211 ioctl interface (a key component for native Wi-Fi support which, if updated to use newer Wi-Fi standards, could cause bugs/regressions in functionality for the ports that use it). These ports need to be updated to use lib80211 instead which should hopefully give us more flexibility to change things under the hood without breaking the user space applications all the time. We are now at a point where we are ready to start working with Ports maintainers to move across to using lib80211.

GitHub issue #79

Support for MediaTek Wi-Fi cards

Good progress on this in June - it now works on the development machine. Once some related patches are reviewed, the work can be submitted for review and testing among the wider community.

GitHub issue #66

Support for Realtek Wi-Fi cards

Some progress has been had due to shared dependencies with the MediaTek work. Otherwise, there are some known issues/regressions that need to be fixed for Realtek, these will be addressed after MediaTek.

GitHub issue #99

Graphics

Port of the Linux 6.14 Graphics Drivers

Development work on porting the Linux DRM 6.14 graphics driver is code complete and waiting behind 6.13 to go into review. This moves us towards reaching 6.18 which is the latest long term support version.

GitHub issue #101

Audio

A number of improvements to audio have been made in June.

Work continues on audio/virtual_oss(8). virtual_oss gives FreeBSD users a more flexible audio experience by allowing multiple applications to share the same sound device while providing software mixing, audio routing, and recording capabilities. It creates virtual Open Sound System (OSS)-compatible audio devices that let users play audio from several applications at once, capture system audio, and route or mix individual audio streams without requiring changes to existing applications.

In addition, some user-reported bugs have been addressed and some community-provided patches have been reviewed.

GitHub issue #118

Acknowledgements

The FreeBSD Foundation would like to extend its thanks to everyone who has contributed to this project, both this month and previously.

Thanks go out to:

Please refer to the README for more information about the FreeBSD Foundation’s Laptop Project.