• FreeBSD Status Report - Second Quarter 2025 (2/3)

    From Lorenzo Salvadore@21:1/5 to All on Sat Aug 30 12:00:08 2025
    [continued from previous message]

    This is especially useful for fetching ISO images or VM templates directly through the interface.

    Virtual Machines

    VM creation and deletion with Bhyve is now supported.

    Key features include:

    • CPU pinning.

    • Web-based VNC console access.

    • PCI passthrough for devices.

    • Basic CPU and RAM usage charts for each VM.

    A new runtime dependency on libvirtd has been added to support VM lifecycle operations.

    Planned for Q3

    • Polish and stabilize current functionality.

    • Ability to edit VMs.

    • Expand charting and add a basic notification system to detect hardware or
    service failures.

    • Implement UI and API support for managing Jails.

    • Extend networking features:

    □ More switch/bridge types.

    □ Firewall rule configuration.

    □ DHCP support via dns/dnsmasq or similar (for VMs).

    □ WireGuard VPN integration.

    Contributions, testing, and feedback are very welcome. If you are interested in contributing, consider helping with:

    • UI testing and accessibility feedback.

    • Bug reports and feature requests via GitHub.

    Sponsor: FreeBSD Foundation and Alchemilla (development and infrastructure support)

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

    Hackathon 202506 Kitchener-Waterloo, Canada

    Links:
    Hackathon/202506 Wiki Page URL: https://wiki.freebsd.org/Hackathon/202506 FreeBSD Hackathon Wiki Page URL: https://wiki.freebsd.org/Hackathon

    In the week following BSDCan 2025, a hackathon took place in the Kitchener-Waterloo area.

    Thanks to Ed Maste for hosting this event at the Communitech Hub in Kitchener.

    Pictures of the hackathon

    Pictures of the hackathon are collected here.

    National FreeBSD day landed sometime during the hackathon, so Charlie Li treated us to a great DJ set to celebrate, mixing entirely on FreeBSD at an arcade bar in Waterloo :)

    The work done during the hackathon

    WiFi Testbed (Li-Wen Hsu)

    • The hardware of a proof-of-concept wireless has been set up in Foundation’s
    Kitchener office.

    • The current setup is simple:

    • One baremetal machine has multiple wireless interface and,

    • One access point is also connected to the machine via a serial console and
    a private testing network

    • Currently we have following hardware to be passthru to bhyve VM provisioned
    with the image from Artifact server of FreeBSD CI

    • Intel AX210

    • Realtek RTL8812AU

    • The work continues on connecting it to FreeBSD CI cluster as a downstream
    job after standard tests finishes.

    Installer (Joseph Mingrone, Ed Maste, Aymeric Wibo)

    • Go through installer step-by-step and create the Improving the Installer
    wiki page with the notes we collected.

    • lualoader: Add distinct brand for installer (Make it obvious to users that
    the system is booting into the installer.) Patch:
    https://reviews.freebsd.org/D51001

    pkgbase (Ed Maste)

    • bsdinstall(8): Default to pkgbase if media contains base packages Patch:
    https://reviews.freebsd.org/D50467

    • release(7): Add set -e to abort upon failure Patch:
    https://reviews.freebsd.org/D50383

    Landing scheduler run queue patches (Olivier Certner)

    • Land all scheduler runqueue patches.

    □ D45387

    □ D45388

    □ D45389

    □ D45390

    □ D45391

    □ D45392

    □ D46566

    □ D46567

    □ D50880

    Capsicum (Ed Maste)

    • Improvements to the capsicum(4) manpage. Patches:
    https://reviews.freebsd.org/D50855, ce65ff203a4f

    • Capsicumize beep(1) to serve as an easy example of Capsicum. Patches:
    https://reviews.freebsd.org/D50709

    s2idle/S0ix/USB4 (Aymeric Wibo, Sheng-Yi Hung)

    • Fix some more USB4 driver panics.

    • Discuss how s2idle should work w.r.t. the scheduler with Olivier & Mark,
    and temporarily implement "idle" state for the scheduler (where it just
    always chooses the idle thread).

    • Extend amdgpio driver to service all GPIO interrupts (requirement for S0i3
    on AMD). We were also looking into how we can consume GPIO interrupts in
    device drivers on x86 for stuff like reducing the latency of the Framework
    trackpad with Sheng-Yi.

    • Implement some more S0i3 debugging features for AMD to help us debug why we
    would not be entering S0i3.

    Ports (Joseph Mingrone)

    • Mk/Scripts/qa.sh: Fix false positives in LIB_DEPENDS warnings Patch:
    https://reviews.freebsd.org/D50860

    • editors/emacs-devel: Update to 2025-06-17 snapshot Patch: 4170f6575380

    Miscellaneous (Ed Maste, Olivier Certner, Sheng-Yi Hung, Li-Wen Hsu)

    • Enable sccache support as an alternative to ccache when building (through
    WITH_CCACHE_BUILD environment variable). Commit: 10cb3979a9bd

    • Discussion on the CPPC implementation (Sheng-Yi, Olivier), see in
    particular D49587.

    • Other various fixes. Patches: D50876, 956100d60fa8, fc77abfd1e62, D50938,
    6d8cfd29d477, 4f33d073003c

    Sponsor: The FreeBSD Foundation

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

    Userland

    Changes affecting the base system and programs in it.

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

    ucred / group changes in FreeBSD 15.0

    Links:
    freebsd-arch@ discussion URL: https://lists.freebsd.org/archives/freebsd-hackers/2025-August/004825.html Primary kernel change URL: https://cgit.freebsd.org/src/commit/sys/sys/ucred.h?id=be1f7435ef218b1df35aebf3b90dd65ffd8bbe51
    Primary userspace change URL: https://cgit.freebsd.org/src/commit/sys/kern/kern_prot.c?id=9da2fe96ff2ea227e4d5f03ef92b55aabeabb7fc

    Contact: Kyle Evans <[email protected]>
    Contact: Olivier Certner <[email protected]>

    FreeBSD 15.0 will change how supplementary groups are handled in both userspace and the kernel in FreeBSD 15.0 in a way that warrants additional attention and feedback.

    For some background: FreeBSD has historically tracked the effective group-ID of a process in the ucred(9) cr_groups array as the first element, with the rest of the array describing its supplementary groups. The natural consequence of this decision is that the arrays used in setgroups(2) and getgroups(2) follow the same format, and setgroups(2) has the documented side effect of setting the effective group-ID. The vast majority of other platforms do not exhibit this behavior anymore, including NetBSD and OpenBSD. macOS appears to be the only exception found in testing.

    The problem is that the vast majority of software in the FreeBSD Ports Collection comes from other platforms, where setgroups(2) and setgroups(2) operate purely on the supplementary groups. This kind of a behavior difference is very subtle and would need to be audited more carefully to be sure that we have not introduced a potential security issue in ported software.

    In FreeBSD 15.0, the primary user-facing change is that setgroups(2), getgroups (2), and initgroups(3) behavior will change to match other platforms, and users are requested to be extra vigilant in areas that may be affected as we proceed through the release cycle. In general, the expectation is that this change may:

    • Fix some small number of bugs where we would have lost either our expected
    effective group membership or one of the supplementary groups we should
    have been in

    • (Less likely) Introduce some even smaller number of bugs where something
    expected setgroups(2) to change our effective group membership but now it
    is just a supplementary group and our effective group-ID is unchanged

    Software included in the base system is largely unaffected or improved by this change, with OpenSSH being a notable example of a strange bug caused by the historical implementation.

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

    MIT Kerberos Import into FreeBSD

    Contact: Cy Schubert <[email protected]>

    The FreeBSD Foundation was approached to import MIT KRB5 into FreeBSD with the intent to replace our aging Heimdal.

    The Enterprise Working Group made a request to the Foundation to replace Heimdal with MIT KRB5.

    This is the first report for this project.

    Tasks completed:

    • MIT KRB5 has been imported into FreeBSD 15-CURRENT.

    • The WITH_MITKRB5 option is disabled until a successful ports exp-run is
    complete.

    Additional remaining tasks:

    • Fix port build errors identified by a ports exp-run.

    • Produce a writeup of the new Kerberos.

    • Determine if migration of the Heimdal database to an MIT database is
    possible. (At the moment this appears unlikely due to the age of our
    ancient Heimdal and the lack of support for old crypto in newer Heimdal
    MIT).

    • Produce Heimdal Kerberos database to MIT database migration documentation
    (if possible).

    • (Optional) Develop and discuss the import and migration options at the next
    BSDCan.

    Sponsor: The FreeBSD Foundation

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

    SysctlTui

    Link:
    Project Repository URL: https://gitlab.com/alfix/sysctltui

    Contact: Alfonso Sabato Siciliano <[email protected]>

    SysctlTUI is an interactive text user interface (TUI) utility for exploring and managing sysctl(3) parameters. It presents the sysctl Management Information Base (MIB) as a hierarchical and navigable tree, enabling users to:

    • Browse metadata for each kernel parameter.

    • Retrieve and display current values.

    • Modify parameters interactively from within the interface.

    The UI consists of three panels: a tree view of the MIB hierarchy, a detail panel showing metadata, and a value editor. Pressing the F1 key opens a help dialog explaining:

    • When the MIB is built.

    • When values are retrieved or updated.

    • A link to an online guide for getting started with sysctl, including
    guidance on interpreting and using the displayed data.

    Although still in early development (currently at version 0.0.2), SysctlTUI already offers functionality comparable to tools like sysutils/nsysctl and deskutils/sysctlview. A manual page is included, with suggestions to make the output similar to sysctl(8) or nsysctl(8). The ToDo list outlining plans for enhancements like configuration file integration and subtree sorting by names.

    SysctlTUI is open source and available via the FreeBSD Ports Collection: sysutils/sysctltui. Note: TUIs are a known accessibility issue, as they are not usable with most screen readers. Users who access FreeBSD using a screen reader can use the sysutils/nsysctl package instead. It is a command line utility that provides the same information as SysctlTUI, since both tools use the same underlying kernel interface.

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

    Geomman Development

    Links:
    Geomman GSoC wiki URL: https://wiki.freebsd.org/SummerOfCode2025Projects/FullDiskAdministrationToolForFreeBSD
    geomman Gitlab repository URL: https://gitlab.com/brauliorivas/geomman bsddialog repository URL: https://gitlab.com/alfix/bsddialog
    sade URL: https://man.freebsd.org/cgi/man.cgi?query=sade&manpath=FreeBSD+14.3-RELEASE+and+Ports

    Contact: Braulio Rivas <[email protected]>

    Geomman is a new partition tool based on sade(8) that brings more functionality such as moving, copying, and pasting partitions. Geomman is part of Google Summer of Code 2025. Currently, it is available in a Gitlab repository. But at some future time, it is expected to become a tool in the base system.

    Geomman is a TUI designed to allow to growing, shrinking, moving, copying, and pasting partitions with filesystems other than UFS. For example, users may be able to create an exFAT partition, as well as to resize an ext4 filesystem. This would make partition management easier, because there are tools for each individual task (mainly depending on the filesystem), but none that concentrates all cases in a single tool.

    For the moment, geomman only allows copying and pasting partitions. However, for the next report the tool should be almost finished.

    Currently, I am working on a mechanism to move partitions using dd(1). Other approaches may be possible, so any help is very welcome.

    The next steps for geomman are:

    • Develop a way of moving partitions.

    • Handle duplicate UUIDs between partitions when using dd.

    • Add options to create, grow, and shrink more filesystem types.

    Sponsor: Google Summer of Code

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

    Kernel

    Updates to kernel subsystems/features, driver support, filesystems, and more.

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

    Audio Stack Improvements

    Contact: Christos Margiolis <[email protected]>

    I have been working on the audio stack since 2024Q1. Below is a list of the previous status reports:

    2024Q1 URL: https://www.freebsd.org/status/report-2024-01-2024-03/#_audio_stack_improvements
    2024Q2 URL: https://www.freebsd.org/status/report-2024-04-2024-06/#_audio_stack_improvements
    2024Q3 URL: https://www.freebsd.org/status/report-2024-07-2024-09/#_audio_stack_improvements
    2024Q4 URL: https://www.freebsd.org/status/report-2024-10-2024-12/#_audio_stack_improvements
    2025Q1 URL: https://www.freebsd.org/status/report-2025-01-2025-03/#_audio_stack_improvements

    Important work since last report:

    • More sound(4) cleanups, fixes and improvements.

    • Committed sndctl(8) (previously mentioned as audio(8)).

    • Committed AFMT_FLOAT support.

    • More out-of-the-box laptop support.

    • Gave up on the /dev/dsp as a router device patch in favor of D50070
    (includes relevant discussions).

    • Submitting series of patches to clean up the MIDI subsystem, and working on
    refactoring it into a generic layer, similar to PCM.

    • Gave BSDCan 2025 talk (slides).

    Future work includes:

    • Port virtual_oss to base.

    • More bug fixes, support, optimizations and general improvements, in all
    areas of the sound stack.

    You can also follow the development process in freebsd-multimedia@, where I post regular reports.

    Sponsor: The FreeBSD Foundation

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

    DRM drivers

    Links:
    Update to Linux 6.9 DRM drivers URL: https://github.com/freebsd/drm-kmod/pull/361

    Contact: Jean-Sébastien Pédron <[email protected]>

    DRM drivers are kernel drivers for integrated and discrete GPUs. They are maintained in the Linux kernel and we port them to FreeBSD. As of this report, we take the AMD and Intel DRM drivers only (NVIDIA FreeBSD drivers are proprietary and provided by NVIDIA themselves).

    We port them one Linux version at a time. This allows us to ship updates more often and it eases porting and debugging because we have a smaller delta compared to a bigger jump skipping several versions.

    This quarter, we finally merged the drivers from Linux 6.7 and 6.8 that were done during the first quarter into drm-kmod. The porting for DRM drivers from Linux 6.9 was finished and is now ready for review and testing; see the pull request for instructions if you want to try them. The pull request also lists all the patches needed to linuxkpi, the Linux drivers compatibility layer in the FreeBSD kernel. Several patches were already reviewed but there is still work.

    These updates target the FreeBSD 15-CURRENT development branch for now. Once kernel patches are accepted and the DRM drivers updates merged, we will evaluate if/how we can backport the kernel patches to earlier release branches (namely 14-STABLE).

    While waiting for review, we also started to work on two features which were unsupported on FreeBSD:

    • DMA_BUF_IOCTL_EXPORT_SYNC_FILE and DMA_BUF_IOCTL_IMPORT_SYNC_FILE ioctls

    • DRM_IOCTL_SYNCOBJ_EVENTFD ioctl

    They are apparently required to allow the use of wlroots-based Wayland compositors with the Vulkan API (see https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=286311).
    wlroots will need a patch as well because it only
    expects these features on Linux for now.

    Both pull requests as well as the patches to linuxkpi they rely on are ready for review and testing. The linuxkpi patches are linked in the pull requests.

    This work is kindly sponsored by the FreeBSD Foundation as part of the Laptop and Desktop Project.

    Sponsor: The FreeBSD Foundation

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

    Suspend/Resume Improvement

    Links:
    Blog URL: https://obiw.ac/s0ix/
    FOSDEM talk on s2idle/S0ix URL: https://youtu.be/mBxj_EkAzV0
    Working Repo URL: https://github.com/obiwac/freebsd-s0ix/tree/everything
    Tip of the s2idle/S0ix + AMD SMU stack URL: https://reviews.freebsd.org/D48721 USB4 suspend stack URL: https://reviews.freebsd.org/D49453

    Contact: obiwac <[email protected]>

    Suspend-to-idle and support for S0ix sleep is in the process of being added to FreeBSD.

    This will allow modern Intel and AMD laptops (e.g. AMD and newer Intel Framework laptops), some of which do not support ACPI S3 sleep, to enter low power states to increase battery life.

    The USB4 driver (which was a dependency to S0i3 entry) has been updated to allow for the sleep routines, and all CPUs are now entering C3 during s2idle. Scheduler work is needed to ensure CPUs stay in C3 and do not get work scheduled to them, but a prototype solution exists and is working. This means that S0i3 can now be entered on the Framework 13 AMD Ryzen 7040 series laptops, albeit only on my working 14.1 branch. This does not work on -CURRENT yet.

    The amdgpio driver (for the AMD GPIO controller) has been extended to service all GPIO interrupts and suspend the controller, as that was potentially a blocker for the CPU to enter S0i3. Nothing is being done with these GPIO interrupts at the moment as FreeBSD does not have the infrastructure for device drivers to register these interrupts on x86 yet.

    The SMU idlemask is also now being exported as a sysctl now (dev.amdsmu.0.idlemask), the value of which is not documented and is mostly to help AMD debug issues with S0i3 entry on FreeBSD on their side.

    A pre-built image is being built to aid in easily testing S0i3 entry on machines.

    With respect to the links, the blog post entry is outdated. A talk was given about this at BSDCan 2025 too, but it has yet to be uploaded as a standalone video; it will be included in the next status report.

    Sponsor: The FreeBSD Foundation

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

    Named attribute support (Solaris style extended attributes)

    Contact: Rick Macklem <[email protected]>

    Named attributes is the NFSv4 term for what is also known as Solaris style extended attributes. Since ZFS has its origins in Solaris, the wiring for these exists in OpenZFS. This little project consists of connecting that wiring up. This is not intended to replace the extended attribute support already in FreeBSD. It provides an alternate mechanism for manipulating extended attributes that will be supported for ZFS and NFSv4. There are a few reasons I think this could be useful (as indicated via email discussion). This mechanism allows for extended attributes as large as any regular file, which can be partially updated. Some NFSv4 clients, such as MacOS and Windows, can use these extended attributes but not the FreeBSD/Linux style ones. (I think MacOS calls these extended attributes fork files and Windows calls them alternate data streams.) There is software, such as bash, that know how to manipulate these extended attributes.

    The fundamental difference is that this mechanism provides a directory that is not in the file system’s namespace, but is associated with a file object. This
    named attribute directory can then be read via readdir(3) to get the list of extended attributes, which are really just regular files. These extended attributes are then read/written like any regular file.

    The top level system call interface is open(2)/openat(2) with the new O_NAMEDATTR flag (called O_XATTR on Solaris).

    Most of the work has been committed to FreeBSD’s main for FreeBSD 15. Once the
    ZFS patch makes it through review and gets pulled into OpenZFS, the ZFS and NFSv4 support should work. There are also a couple of manual pages currently under review in phabricator.

    The main thing left to do is update libarchive/tar so that large extended attributes can be archived/retrieved. (The current FreeBSD extended attribute mechanism is supported by libarchive, but will have size constraints.)

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

    Packrat — NFS client caching on non-volatile storage

    Contact: Rick Macklem <[email protected]>

    NFSv4.1/4.2 provides support for a feature called delegations. When a NFSv4.1/ 4.2 client holds a delegation, the client has certain rights to a file, including a guarantee that no other client will make changes to the file unless the delegation is recalled. As such, when a client holds a delegation for a file, it can aggressively cache the file’s data, knowing that it will not be modified by other clients until it returns the delegation.

    This project is intended to allow the NFSv4.1/4.2 client to aggressively cache file data on client local non-volatile storage, when the client holds a delegation for the file. I created a patch long ago to try and do this for NFSv4.0, but it was never at a stage where it was worth using. This project is a complete rewrite of the patch, done in part because NFSv4.1/4.2 plus other recent NFSv4 related changes makes doing this more feasible.

    The patch is getting stable now, but I am not sure if it will be ready for inclusion in FreeBSD 15 as an experimental feature enabled via a new mount option called "packrat".

    The main thing I still need to do is code a writeback kernel thread. Right now, dirty chunks stored on client local non-volatile storage get written back to the NFSv4.1/4.2 server upon umount. This can result in the umount taking a long time (as in many minutes). To alleviate this, I am planning on implementing a writeback kernel process that will walk the non-volatile storage and write the dirty chunks back. The trick is to make it aggressive enough that most dirty chunks have been written back when a umount is done, but not so aggressive that it impedes the performance of synchronous NFSv4.1/4.2 RPCs.

    This will be very much an experimental feature, but it is hoped it will allow NFS mounts to be used more effectively, particularly in WAN situations, such as a mobile laptop.

    There is still work to be done, particularly with respect to recovery of delegations after a NFSv4.1/4.2 client restart.

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

    LinuxKPI 802.11 and Native Wireless Update

    Links:
    802.11ac support URL:https://github.com/FreeBSDFoundation/proj-laptop/issues/33 LinuxKPI TKIP and GCMP support URL:https://github.com/FreeBSDFoundation/proj-laptop/issues/64
    LinuxKPI wireless suspend and resume URL:https://github.com/FreeBSDFoundation/proj-laptop/issues/58
    MediaTek mt76 PCI driver support URL:https://github.com/FreeBSDFoundation/proj-laptop/issues/66
    802.11ax support URL:https://github.com/FreeBSDFoundation/proj-laptop/issues/34 net80211 updates URL:https://github.com/FreeBSDFoundation/proj-laptop/issues/79 Tracked wireless PRs URL:https://bugs.freebsd.org/bugzilla/showdependencytree.cgi?id=277512&hide_resolved=1

    Contact: Bjoern A. Zeeb <[email protected]>
    Contact: The FreeBSD wireless mailing list <[email protected]>

    This report focuses on the efforts using permissively licensed Linux wireless drivers, mostly unmodified, on FreeBSD, as well as preparing the native net80211 stack for support of newer standards.

    As announced iwlwififw(4) was removed from the source tree in favor of a ports/ package based solution. Users are asked to use fwget(8) to automatically install the firmware along with any possible configuration.

    Support for wlan_tkip(4) was added to linuxkpi(4) but has to be manually enabled. wlan_gcmp(4) support for linuxkpi(4) followed later and is available from FreeBSD 15 onward.

    FreeBSD 14.3-RELEASE is the first release with VHT (802.11ac) support available. Modern iwlwifi(4) chipsets are supported. There was some fallout after the release and a few open problems, but also a lot of positive feedback.

    rtw88(4) saw a fix for a NULL pointer in the driver and is now starting to be usable. Thanks to everyone who helped track this down and test patches along the way.

    Work on suspend and resume for LinuxKPI-based wireless drivers was picked up again, and we are getting closer to a working solution (at least for suspend it now exists).

    Work is also ongoing for Mediatek mt76-based PCIe card support.

    HE (802.11ax) definitions were migrated from linuxkpi(4) to native net80211 code and corrected. ifconfig(8) was enhanced parsing more information elements to aid debugging. Work is in progress to fix a problem with reporting signal strength and dealing with RSSI.

    Further fixes to LinuxKPI and resolving the problems we worked around by improving native net80211 code are in the works.

    Lastly, various man pages were improved or written.

    Sponsor: The FreeBSD Foundation

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

    USB Kernel Debugging

    Contact: Tom Jones <[email protected]>

    XHCI USB controllers offer a mode which allows them to be used as a system debugging interface. XHCI debug uses a special USB 3 cable with VBUS, D+ and D- disconnected. The feature can be used to live debug the FreeBSD kernel, enabling investigation of issues which cause the system video console to lock up and there is not an alternative such as a serial console. This can happen when debugging issues with graphics drivers.

    Hiroki Sato developed support for the XHCI debug interface and made it available as some in progress git branches. This implementation enables FreeBSD to operate as both a Debug Host and a Debug Target, with support for debugging from the loader through to the kernel.

    I have been updating and testing this support along with Mitchell Horne and together we have a WIP branch which applies to FreeBSD main. We are currently tidying up interfaces and testing for stability with the goal of introducing XHCI debug once 16 is branched.

    In doing the XHCI debug work I rediscovered a second form of kernel debugging implemented by Hans Petter Selasky (hselasky@) in 2009. The FreeBSD USB stack supports using a USB serial device as a system console and includes support to continue polling the interface once the system has entered the debugger (such as during a panic). USB Serial debugging allows a developer with two commodity USB serial interfaces to connect to a FreeBSD target and debug the kernel. USB Serial debugging is available in all FreeBSD releases in FreeBSD 9, but changes in the kernel build process mean that it is not detected in modern kernels.

    In this quarter I have been working on documentation required to use this interface and changes to make it available in GENERIC kernels for newer FreeBSD releases.

    A core part of this work has been trying to document kernel debugging interfaces. If you use live debug interfaces other than serial or network debugging please get in touch so I can add these to the FreeBSD Developers Handbook.

    Sponsor: The FreeBSD Foundation

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

    Porting HFS+ to FreeBSD

    Links:
    Project Home URL: https://github.com/stupendoussuperpowers/freebsd_hfs

    Contact: Sanchit Sahay <[email protected]>

    HFS+ (Hierarchical File System) is a legacy filesystem introduced by Apple for its BSD-based XNU operating systems. Although HFS+ has been deprecated in favor of APFS, it is still in use on many older Apple devices, such as iPods, which rely on HFS+ volumes for storage.

    While many modern operating systems include native support for HFS+, FreeBSD currently offers only limited functionality via FUSE. This project aims to address that limitation by porting the original, now open-sourced HFS+ implementation to the FreeBSD kernel as a native filesystem driver.

    The primary focus of this effort is to modernize the VFS layer to align with current FreeBSD interfaces and to adapt XNU-specific logic to their FreeBSD equivalents.

    Features implemented:

    • Mount support for HFS, HFS+ Volumes

    • Read, stat support for directories and files

    • Create support for directories and files

    • mount_hfs binary

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

    Architectures

    Updating platform-specific features and bringing in support for new hardware platforms.

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

    Pinephone Pro Support

    Links:
    Repository on Codeberg URL: https://codeberg.org/Honeyguide/freebsd-pinephonepro

    Contact: Toby Kurien <[email protected]>

    The project to port FreeBSD over to the Pinephone Pro is progressing. The aim of this project is to step by step support components of the Pinephone Pro in FreeBSD so that the device one day might be usable as a highly mobile FreeBSD device.


    [continued in next message]

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)