---
title: "FreeBSD 12.0-RELEASE Release Notes"
sidenav: download
---

:releaseCurrent: 12.0-RELEASE
:releaseBranch: 12-STABLE
:releasePrev: 11.2-RELEASE
:releaseNext: 13.0-RELEASE
:releaseType: release

include::shared/en/urls.adoc[]

= FreeBSD {releaseCurrent} Release Notes

== Abstract

The release notes for FreeBSD {releaseCurrent} contain a summary of the changes made to the FreeBSD base system on the {releaseBranch} development line. This document lists applicable security advisories that were issued since the last release, as well as significant changes to the FreeBSD kernel and userland. Some brief remarks on upgrading are also presented.

== Table of Contents

* <<intro,Introduction>>
* <<upgrade,Upgrading from Previous Releases of FreeBSD>>
* <<security-errata,Security and Errata>>
** <<security,Security Advisories>>
** <<errata,Errata Notices>>
* <<userland,Userland>>
** <<userland-config,Userland Configuration Changes>>
** <<userland-programs,Userland Application Changes>>
** <<userland-contrib,Contributed Software>>
** <<userland-installer,Installation and Configuration Tools>>
** <<userland-rc,/etc/rc.d Scripts>>
** <<userland-libraries,Runtime Libraries and API>>
** <<userland-abi,ABI Compatibility>>
* <<kernel,Kernel>>
** <<kernel-bugfix,Kernel Bug Fixes>>
** <<kernel-config,Kernel Configuration>>
* <<drivers,Devices and Drivers>>
** <<drivers-device,Device Drivers>>
** <<drivers-network,Network Drivers>>
** <<drivers-deprecated,Deprecated Drivers>>
* <<hardware,Hardware Support>>
** <<hardware-support,Hardware Support>>
** <<hardware-graphics,Graphics Support>>
** <<hardware-virtualization,Virtualization Support>>
** <<hardware-arm,ARM Support>>
* <<storage,Storage>>
** <<storage-general,General Storage>>
** <<storage-net,Networked Storage>>
** <<storage-zfs,ZFS>>
* <<boot,Boot Loader Changes>>
** <<boot-loader,Boot Loader Changes>>
* <<network,Networking>>
** <<network-general,General Network>>
** <<network-protocols,Network Protocols>>
* <<ports,Ports Collection and Package Infrastructure>>
** <<ports-packages,Packaging Changes>>
* <<doc,Documentation>>
** <<doc-sources,Documentation Source Changes>>
* <<releng,Release Engineering and Integration>>
** <<releng-changes,Integration Changes>>

[[intro]]
== Introduction

This document contains the release notes for FreeBSD {releaseCurrent}. It describes recently added, changed, or deleted features of FreeBSD. It also provides some notes on upgrading from previous versions of FreeBSD.

The {releaseType} distribution to which these release notes apply represents the latest point along the {releaseBranch} development branch since {releaseBranch} was created. Information regarding pre-built, binary {releaseType} distributions along this branch can be found at https://www.FreeBSD.org/releases/.

The {releaseType} distribution to which these release notes apply represents a point along the {releaseBranch} development branch between {releasePrev} and the future {releaseNext}. Information regarding pre-built, binary {releaseType} distributions along this branch can be found at https://www.FreeBSD.org/releases/.

This distribution of FreeBSD {releaseCurrent} is a {releaseType} distribution. It can be found at https://www.FreeBSD.org/releases/ or any of its mirrors. More information on obtaining this (or other) {releaseType} distributions of FreeBSD can be found in the link:{handbook}#mirrors[Obtaining FreeBSD' appendix] to the link:{handbook}[FreeBSD Handbook].

All users are encouraged to consult the release errata before installing FreeBSD. The errata document is updated with "late-breaking" information discovered late in the release cycle or after the release. Typically, it contains information on known bugs, security advisories, and corrections to documentation. An up-to-date copy of the errata for FreeBSD {releaseCurrent} can be found on the FreeBSD Web site.

This document describes the most user-visible new or changed features in FreeBSD since {releasePrev}. In general, changes described here are unique to the {releaseBranch} branch unless specifically marked as MERGED features.

Typical release note items document recent security advisories issued after {releasePrev}, new drivers or hardware support, new commands or options, major bug fixes, or contributed software upgrades. They may also list changes to major ports/packages or release engineering practices. Clearly the release notes cannot list every single change made to FreeBSD between releases; this document focuses primarily on security advisories, user-visible changes, and major architectural improvements.

[[upgrade]]
== Upgrading from Previous Releases of FreeBSD

[amd64,i386] Binary upgrades between RELEASE versions (and snapshots of the various security branches) are supported using the {{< manpage "freebsd-update" "8">}} utility. The binary upgrade procedure will update unmodified userland utilities, as well as unmodified GENERIC kernels distributed as a part of an official FreeBSD release. The {{< manpage "freebsd-update" "8">}} utility requires that the host being upgraded have Internet connectivity.

Source-based upgrades (those based on recompiling the FreeBSD base system from source code) from previous versions are supported, according to the instructions in `/usr/src/UPDATING`.

[IMPORTANT]
====
Upgrading FreeBSD should only be attempted after backing up _all_ data and configuration files.
====

[[security-errata]]
== Security and Errata

This section lists the various Security Advisories and Errata Notices since {releasePrev}.

[[security]]
=== Security Advisories

[width="100%",cols="40%,30%,30%",options="header",]
|===
|Advisory |Date |Topic
|No advisories. | |
|===

[[errata]]
=== Errata Notices

[width="100%",cols="40%,30%,30%",options="header",]
|===
|Errata |Date |Topic
|No errata notices. | |
|===

[[userland]]
== Userland

This section covers changes and additions to userland applications, contributed software, and system utilities.

[[userland-config]]
=== Userland Configuration Changes

Group permissions on `/dev/acpi` have been changed to allow users in the `operator` GID to invoke {{< manpage "acpiconf" "8">}} to suspend the system. {{< revision "335864" >}} {{< sponsored "	DARPA, AFRL" >}}

The default {{< manpage "devfs.rules" "5">}} configuration has been updated to allow {{< manpage "mount_fusefs" "8">}} with {{< manpage "jail" "8">}}. {{< revision "336565" >}}

The default `PAGER` now defaults to {{< manpage "less" "1">}} for most commands. {{< revision "337497" >}}

The {{< manpage "newsyslog" "8">}} utility has been updated to reject configuration entries that specify {{< manpage "setuid" "2">}} or executable log files. {{< revision "338165" >}} {{< sponsored "Dell EMC Isilon" >}}

The `WITH_REPRODUCIBLE_BUILD` {{< manpage "src.conf" "5">}} knob has been enabled by default. {{< revision "338642" >}} {{< sponsored "The FreeBSD Foundation" >}}

LDNS now enables `DANE-TA`, and `GOST` has been removed. {{< revision "339303" >}}

A new {{< manpage "src.conf" "5">}} knob, `WITH_RETPOLINE`, has been added to enable the retpoline mitigation for userland builds. {{< revision "340773" >}} {{< sponsored "The FreeBSD Foundation" >}}

[[userland-programs]]
=== Userland Application Changes

xlint and the ability to build lint libraries or lint source code has been removed.

The {{< manpage "dtrace" "1">}} utility has been updated to support `if` and `else` statements. {{< revision "304200" >}}

The legacy {{< manpage "gdb" "1">}} utility included in the base system is now installed to `/usr/libexec` for use with {{< manpage "crashinfo" "8">}}. The gdbserver and gdbtui utilities are no longer installed. For interactive debugging, {{< manpage "lldb" "1">}} or a modern version of {{< manpage "gdb" "1">}} from `devel/gdb` should be used. A new {{< manpage "src.conf" "5">}} knob, `WITHOUT_GDB_LIBEXEC` has been added to disable building {{< manpage "gdb" "1">}}. The {{< manpage "gdb" "1">}} utility is still installed in `/usr/bin` on sparc64. {{< revision "317416" >}}

The {{< manpage "setfacl" "1">}} utility has been updated to include a new flag, `-R`, used to operate recursively on directories. {{< revision "332396" >}} {{< sponsored "The FreeBSD Foundation" >}}

The {{< manpage "cat" "1">}} utility has been updated to print output aligned the same regardless of if invoked with `-ne` or `-be`. {{< revision "323865" >}}

The default bootstrap linker has been changed to {{< manpage "ld_lld" "1">}} for amd64. {{< revision "334391" >}} {{< sponsored "The FreeBSD Foundation" >}}

The {{< manpage "dhclient" "8">}} utility has been updated to add a configuration knob to allow superseding the `interface-mtu` option provided by an incorrectly-configured DHCP server. {{< revision "334443" >}}

The {{< manpage "asf" "8">}} utility has been removed, as {{< manpage "kgdb" "1">}} now handles kernel module state internally. {{< revision "335222" >}} {{< sponsored "The FreeBSD Foundation" >}}

The `sha224(1)` utility has been added. {{< revision "336126" >}}

The {{< manpage "geli" "8">}} utility has been updated to provide support for initializing multiple providers at once when they use the same passphrase and/or key. {{< revision "336659" >}}

The default bootstrap linker has been changed to {{< manpage "ld_lld" "1">}} for i386. {{< revision "336901" >}} {{< sponsored "The FreeBSD Foundation" >}}

The default bootstrap linker has been changed to {{< manpage "ld_lld" "1">}} for armv7. {{< revision "337057" >}} {{< sponsored "The FreeBSD Foundation" >}}

The {{< manpage "dd" "1">}} utility has been updated to add the `status=progress` option, which prints the status of its operation on a single line once per second, similar to GNU {{< manpage "dd" "1">}}. {{< revision "337505" >}}

The {{< manpage "date" "1">}} utility has been updated to include a new flag, `-I`, which prints its output in ISO 8601 formatting. {{< revision "337332" >}}

The {{< manpage "bectl" "8">}} utility has been added, providing an administrative interface for managing ZFS boot environments, similar to `sysutils/beadm`. {{< revision "337663" >}}

The {{< manpage "ls" "1">}} utility has been updated to include a new `--color=when` flag, where when can be one of `always`, `auto` (default), or `never`. {{< revision "337956" >}}

The {{< manpage "bhyve" "8">}} utility has been updated to add a new subcommand to the `-l` and `-s` flags, `help`, which when used, prints a list of supported LPC and PCI devices, respectively. {{< revision "338210" >}} {{< sponsored "iXsystems" >}}

The {{< manpage "tftp" "1">}} utility has been updated to change the default transfer mode from ASCII to binary. {{< revision "338258" >}}

The {{< manpage "last" "1">}} utility has been updated to include {{< manpage "libxo" "3">}} support. {{< revision "338352" >}}

The {{< manpage "lastlogin" "8">}} utility has been updated to include {{< manpage "libxo" "3">}} support. {{< revision "338353" >}}

The {{< manpage "chown" "8">}} utility has been updated to prevent overflow of UID or GID arguments where the argument exceeded `UID_MAX` or `GID_MAX`, respectively. {{< revision "338950" >}} {{< sponsored "Dell EMC Isilon" >}}

The {{< manpage "ctm" "1">}} and related utilities have been marked as deprecated for removal in FreeBSD 13.0. {{< revision "340444" >}}

[[userland-contrib]]
=== Contributed Software

The ELF Tool Chain has been updated to version r3614. {{< revision "333063" >}} {{< sponsored "The FreeBSD Foundation" >}}

The {{< manpage "zstd" "1">}} utility has been updated to version 1.3.4. {{< revision "331602" >}} {{< sponsored "Dell EMC Isilon" >}}

The {{< manpage "vt" "4">}} Terminus BSD Console font has been updated to version 4.46. {{< revision "332452" >}} {{< sponsored "The FreeBSD Foundation" >}}

The {{< manpage "xz" "1">}} utility has been updated to version 5.2.4. {{< revision "333783" >}}

The clang, llvm, lld, lldb, compiler-rt utilities and libc++ have been updated to version 6.0.1. {{< revision "335799" >}}

The bsnmp utility has been updated to version 1.13. {{< revision "335885" >}}

The WPA utilities have been updated to version 2.6. {{< revision "336203" >}}

The {{< manpage "ntpd" "8">}} utility has been updated to allow being run as a non-root user. {{< revision "336525" >}}

[.note]
*Note*: +
Source-based upgrades from FreeBSD 11.x and earlier require the `ntpd` UID (123) and GID (123) to exist before the `installworld` target is run. See the "rebuild everything and install" section of `UPDATING` for the documented procedure for source-based upgrades for more details.

Support for UDP-lite has been added to {{< manpage "dtrace_udplite" "4">}}. {{< revision "337018" >}}

The {{< manpage "file" "1">}} utility has been updated to version 5.34. {{< revision "337442" >}}

The lua utility has been updated to version 5.3.5. {{< revision "337810" >}}

Support for send, receive, and state-change providers have been added to {{< manpage "dtrace_sctp" "4">}}. {{< revision "338213" >}}

The {{< manpage "ntpd" "8">}} utility has been updated to version 4.2.8p12. {{< revision "338126" >}}

OpenSSH has been updated to version 7.8p1. {{< revision "338561" >}}

The {{< manpage "mandoc" "1">}} utility has been updated to version 1.14.4. {{< revision "338826" >}}

Additional {{< manpage "capsicum" "4">}} support has been added to {{< manpage "sshd" "8">}}. {{< revision "339216" >}}

Serf has been updated to version 1.3.9. {{< revision "339256" >}}

ACPICA has been updated to version 20181003. {{< revision "339262" >}}

Unbound has been updated to version 1.8.1. {{< revision "339278" >}}

The timezone database files have been updated to version 2018g. {{< revision "339937" >}}

OpenSSL has been updated to version 1.1.1a. {{< revision "340711" >}}

[[userland-installer]]
=== Installation and Configuration Tools

The {{< manpage "bsdinstall" "8">}} installer and {{< manpage "zfsboot" "8">}} boot code have been updated to allow an UEFI+GELI installation option. {{< revision "338282" >}} {{< sponsored "	Klara Systems" >}}

[[userland-rc]]
=== `/etc/rc.d` Scripts

A new {{< manpage "rc" "8">}} has been added to create {{< manpage "cfumass" "4">}} LUNs. {{< revision "332857" >}} {{< sponsored "The FreeBSD Foundation" >}}

The {{< manpage "geli" "8">}} {{< manpage "rc" "8">}} script has been updated to include support for a new variable, `geli_groups`, which provides support to attach multiple providers when set in {{< manpage "rc.conf" "5" >}}. {{< revision "335673" >}}

The {{< manpage "rc" "8">}} subsystem has been updated to support new keywords in {{< manpage "rc.conf" "5">}}, `enable`, `disable`, and `delete` with {{< manpage "rc.d" "8">}} scripts and the {{< manpage "service" "8">}} utility. See {{< manpage "rc.conf" "5">}} for usage information. {{< revision "340348" >}} {{< sponsored "	Smule, Inc." >}}

[[userland-libraries]]
=== Runtime Libraries and API

The {{< manpage "getrandom" "2">}} system call and {{< manpage "getentropy" "3">}} library have been added, compatible with Linux(R) and OpenBSD implementations. {{< revision "331279" >}}

The {{< manpage "arc4random" "3">}} library has been updated to match the OpenBSD version 1.35. {{< revision "338059" >}}

The {{< manpage "libarchive" "3">}} library has been updated to version 3.3.3. {{< revision "338600" >}}

[[userland-abi]]
=== ABI Compatibility

`get_s(3)` has been added. {{< revision "331936" >}}

The {{< manpage "pthread" "3">}} library has been updated to incorporate POSIX/SUSv4-2018 compliance improvements. {{< revision "337992" >}}

The {{< manpage "arc4random" "3">}} library has been updated to remove `arc4random_stir()` and `arc4random_addrandom()`. {{< revision "338331" >}}

[[kernel]]
== Kernel

This section covers changes to kernel configurations, system tuning, and system control parameters that are not otherwise categorized.

[[kernel-bugfix]]
=== Kernel Bug Fixes

The ACPI subsystem has been updated to implement `Device` object types for ACPI 6.0 support, required for some Dell, Inc. Poweredge(TM) AMD(R) Epyc(TM) systems. {{< revision "326956" >}} {{< sponsored "Dell EMC Isilon" >}}

An issue with IPv6-AH IPSEC padding has been fixed to match RFC4302. {{< revision "334625" >}} {{< sponsored "Dell EMC Isilon" >}}

The {{< manpage "amdsmn" "4">}} and {{< manpage "amdtemp" "4">}} drivers have been updated to attach to AMD(R) Ryzen 2(TM) host bridges. {{< revision "340446" >}}

The {{< manpage "amdtemp" "4">}} driver has been updated to fix temperature reporting for AMD(R) 2990WX CPUs. {{< revision "340447" >}}

[[kernel-config]]
=== Kernel Configuration

The `VIMAGE` kernel configuration option has been enabled by default. {{< revision "324810" >}}

The {{< manpage "dumpon" "8">}} utility has been updated to add support for compressed kernel crash dumps when the kernel configuration file includes the `GZIO` option. See {{< manpage "rc.conf" "5">}} and {{< manpage "dumpon" "8">}} for additional information. {{< revision "324965" >}} {{< sponsored "Dell EMC Isilon" >}}

The {{< manpage "ext2fs" "5">}} filesystem has been updated to support full read/write support for ext4. {{< revision "327584" >}}

The `pmtimer` device has been removed from the i386 `GENERIC` kernel configuration. Its functionality is now part of {{< manpage "apm" "4">}}. {{< revision "327774" >}}

The {{< manpage "dumpon" "8">}} utility has been updated to add support for {{< manpage "zstd" "1">}}-compressed kernel crash dumps when the kernel configuration file includes the `ZSTDIO` option. See {{< manpage "rc.conf" "5">}} and {{< manpage "dumpon" "8">}} for additional information. {{< revision "329240" >}} {{< sponsored "Dell EMC Isilon" >}}

A new {{< manpage "src.conf" "5">}} knob, `WITH_KERNEL_RETPOLINE`, has been added to enable the retpoline mitigation for kernel builds. {{< revision "330110" >}} {{< sponsored "The FreeBSD Foundation" >}}

The `EKCD`, `GZIO`, `ZSTDIO`, and `NETDUMP` kernel configuration options have been enabled by default for amd64, i386, aarch64, powerpc, powerpc64, and sparc64 architectures. {{< revision "333890" >}}

A new kernel configuration option, `KASSERT_PANIC_OPTIONAL`, has been added that allows runtime {{< manpage "KASSERT" "9">}} behavior changes without necessarily invoking {{< manpage "panic" "9">}}. The option is disabled by default. {{< revision "338214" >}} {{< sponsored "Dell EMC Isilon" >}}

The `NUMA` option has been enabled by default in the amd64 `GENERIC` and `MINIMAL` kernel configurations. {{< revision "338602" >}} {{< sponsored "Dell EMC Isilon, Netflix" >}}

[[drivers]]
== Devices and Drivers

This section covers changes and additions to devices and device drivers since {releasePrev}.

[[drivers-device]]
=== Device Drivers

The {{< manpage "random" "4">}} device has been updated to allow terminating large reads with `^C`. {{< revision "331070" >}} {{< sponsored "Dell EMC Isilon" >}}

Support for the Microchip(R) LAN78xx(TM) USB3-GigE controller has been added. {{< revision "333713" >}} {{< sponsored "The FreeBSD Foundation" >}}

A new `multifunction` device has been added to {{< manpage "usb_template" "4">}}, providing mass storage, CDC ACM (serial), and CDC ECM (ethernet) simultaneously. {{< revision "333760" >}} {{< sponsored "The FreeBSD Foundation" >}}

The {{< manpage "random" "4">}} driver has been updated to remove the Yarrow algorithm. The Fortuna algorithm remains the default, and now only, available algorithm. {{< revision "338324" >}}

The {{< manpage "netdump" "4">}} driver has been added, providing a facility through which kernel crash dumps can be transmitted to a remote host after a system panic. See {{< manpage "netdump" "4">}} and {{< manpage "dumpon" "8">}} for more information and configuration details. {{< revision "333283" >}} {{< sponsored "Dell EMC Isilon" >}}

The {{< manpage "random" "4">}} driver has been updated to fix excessive activity during pseudo-random number generation. {{< revision "338292" >}}

The {{< manpage "vt" "4">}} driver has been updated with performance improvements, drawing text at rates ranging from 2- to 6-times faster. {{< revision "338316" >}}

The {{< manpage "ichwd" "4">}} driver has been updated to add TCO watchdog timer support for Intel(R) Lewisburg PCH (C620) chipsets. {{< revision "340190" >}} {{< sponsored "	Panzura" >}}

[[drivers-network]]
=== Network Drivers

The {{< manpage "ixl" "4">}} driver has been updated to version 1.9.9-k. {{< revision "333149" >}} {{< sponsored "Intel Corporation" >}}

The {{< manpage "cxgbe" "4">}} driver has been updated to provide hardware support for the `SO_MAX_PACING_RATE` {{< manpage "setsockopt" "2">}} option when the kernel configuration contains the `RATELIMIT` option. {{< revision "334143" >}} {{< sponsored "Chelsio Communications" >}}

The {{< manpage "ixlv" "4">}} driver has been renamed to {{< manpage "iavf" "4">}} and updated to use {{< manpage "iflib" "9">}}. The {{< manpage "ixlv" "4">}} kernel module is now a hard link to {{< manpage "iavf" "4">}} for backwards compatibility for upgrading from earlier FreeBSD releases. {{< revision "339338" >}} {{< sponsored "Panzura" >}}

[[drivers-deprecated]]
=== Deprecated Drivers

The {{< manpage "lmc" "4">}} driver has been removed. {{< revision "333144" >}} {{< sponsored "The FreeBSD Foundation" >}}

The {{< manpage "ixgb" "4">}} driver has been removed. {{< revision "333173" >}} {{< sponsored "Limelight Networks" >}}

The {{< manpage "nxge" "4">}} driver has been removed. {{< revision "333322" >}} {{< sponsored "Limelight Networks" >}}

The {{< manpage "vxge" "4">}} driver has been removed. {{< revision "333717" >}} {{< sponsored "Limelight Networks" >}}

The {{< manpage "jedec_ts" "4">}} driver has been removed in {releaseCurrent}, and its functionality replaced by {{< manpage "jedec_dimm" "4">}}. {{< revision "337033" >}}

The DRM driver for modern graphics chipsets has been marked deprecated and marked for removal in FreeBSD 13. The DRM kernel modules are available from `graphics/drm-stable-kmod` or `graphics/drm-legacy-kmod` in the Ports Collection as well as via {{< manpage "pkg" "8">}}. Additionally, the kernel modules have been added to the lua {{< manpage "loader.conf" "5">}} `module_blacklist`, as installation from the Ports Collection or {{< manpage "pkg" "8">}} is strongly recommended. {{< revision "339218" >}}

The following drivers have been deprecated in FreeBSD 12.0, and not present in FreeBSD 13.0: {{< manpage "ae" "4">}}, {{< manpage "de" "4">}}, {{< manpage "ed" "4">}}, {{< manpage "ep" "4">}}, {{< manpage "ex" "4">}}, {{< manpage "fe" "4">}}, {{< manpage "pcn" "4">}}, {{< manpage "sf" "4">}}, {{< manpage "sn" "4">}}, {{< manpage "tl" "4">}}, {{< manpage "tx" "4">}}, {{< manpage "txp" "4">}}, {{< manpage "vx" "4">}}, {{< manpage "wb" "4">}}, {{< manpage "xe" "4">}} {{< revision "339735" >}}

[[hardware]]
== Hardware Support

This section covers general hardware support for physical machines, hypervisors, and virtualization environments, as well as hardware changes and updates that do not otherwise fit in other sections of this document.

[[hardware-support]]
=== Hardware Support

Support for powernv POWER9 MMU initialization has been added. {{< revision "333273" >}}

[[hardware-graphics]]
=== Graphics Support

FreeBSD has changed the way graphics drivers are handled on amd64 and i386. Graphics drivers for modern ATI/AMD(R) and Intel(R) graphics cards are now available in the Ports Collection. The base drivers are still available and will be installed by default, but they lack support for current generation laptop and desktop systems.

In most cases it is enough to install `graphics/drm-kmod` from ports or packages to install a driver appropriate for the system, then adding the appropriate driver to `kld_list` in {{< manpage "rc.conf" "5">}}.

For Intel(R) (i915) systems after Broadwell(TM), the {{< manpage "rc.conf" "5">}} entry is:

....
kld_list="/boot/modules/i915kms.ko"
....

Systems with ATI/AMD(R) graphics cards have two options. Modern systems starting with the HD7000 series GPU should use:

....
kld_list="/boot/modules/amdgpu.ko"
....

Systems with cards released before the HD7000 GPU use:

....
kld_list="/boot/modules/radeonkms.ko"
....

[.note]
*Note*: +
Users must be added to the `video` GID after installing `graphics/drm-kmod` in order for X to start properly.

[.note]
*Note*: +
There are known issues with the `xserver` driver provided by `x11-drivers/xf86-video-ati` when using graphics drivers from the base system; `x11-drivers/xf86-video-ati-legacy` should be used instead.

[.note]
*Note*: +
There is a known issue where booting with UEFI and using the ATI/AMD(R) graphics driver may cause the screen to be garbled before the appropriate driver is loaded.
For additional information regarding graphics support on FreeBSD, please see the https://wiki.freebsd.org/Graphics[Graphics Wiki Page].

[[hardware-virtualization]]
=== Virtualization Support

Amazon(R) EC2(TM) AMI instances now have `sysutils/amazon-ssm-agent` installed by default, though the service is not enabled by default in {{< manpage "rc.conf" "5">}}. To enable the service, add: {{< revision "325254" >}}

[.programlisting]
....
  >>/etc/rc.conf
    amazon_ssm_agent_enable="YES"
....

to the EC2(TM) user-data.

Amazon(R) EC2(TM) AMI instances now disable `ChallengeResponseAuthentication` in {{< manpage "sshd_config" "5">}} by default. {{< revision "326564" >}}

Amazon(R) EC2(TM) AMI instances now use the Amazon(R) internal NTP service by default. {{< revision "326565" >}}

The {{< manpage "bhyve" "8">}} utility has been updated to allow controlling CPU topology from userland. {{< revision "332298" >}}

The {{< manpage "bhyve" "8">}} utility has been updated to add {{< manpage "virtio_scsi" "4">}} storage support. {{< revision "334940" >}} {{< sponsored "iXsystems" >}}

The {{< manpage "bhyve" "8">}} utility has been updated to add NVMe device emulation. {{< revision "335974" >}} {{< sponsored "iXsystems" >}}

A new {{< manpage "sysctl" "8">}}, `security.jail.vmm_allowed`, has been added, which when set to `1` allows {{< manpage "bhyve" "8">}} use within a {{< manpage "jail" "8">}}. {{< revision "337023" >}} {{< sponsored "HardenedBSD, G2, Inc." >}}

Amazon(R) EC2(TM) AMI instances now disable the PS/2 keyboard and mouse devices by default, reducing overall boot time by 2.5 seconds. {{< revision "338321" >}}

[[hardware-arm]]
=== ARM Support

Support for the USB OTG serial terminal has been enabled on arm systems by default. {{< revision "335004" >}} {{< sponsored "The FreeBSD Foundation" >}}

The armv6 and armv7 images now default to boot with EFI. {{< revision "336998" >}}

Support has been added for building aarch64 images for the `PINE64-LTS` system. {{< revision "337000" >}}

Support for {{< manpage "capsicum" "4">}} has been enabled on armv6 and armv7 by default. {{< revision "338666" >}} {{< sponsored "The FreeBSD Foundation" >}}

[[storage]]
== Storage

This section covers changes and additions to file systems and other storage subsystems, both local and networked.

[[storage-general]]
=== General Storage

The UFS/FFS filesystem has been updated to support check hashes to cylinder-group maps. Support for check hashes is available only for UFS2. {{< revision "323923" >}}

The CAM Target Layer (CTL) frontend and backend options have been overhauled to use {{< manpage "nv" "3">}} allowing creating multiple {{< manpage "ioctl" "2">}} frontend ports. {{< revision "333446" >}} {{< sponsored "iXsystems" >}}

The default {{< manpage "auto_master" "5">}} configuration has been updated to add the `noautoro` {{< manpage "automont" "8">}} flag to the `/media` mount point (commented by default). {{< revision "337749" >}} {{< sponsored "DARPA, AFRL" >}}

The UFS/FFS filesystem has been updated to consolidate TRIM/`BIO_DELETE` commands, reducing read/write requests due to fewer TRIM messages being sent simultaneously. {{< revision "338056" >}} {{< sponsored "Netflix" >}}

TRIM consolidation support has been enabled by default in the UFS/FFS filesystem. TRIM consolidation can be disabled by setting the `vfs.ffs.dotrimcons` {{< manpage "sysctl" "8">}} to `0`, or adding `vfs.ffs.dotrimcons=0` to {{< manpage "sysctl.conf" "5">}}. {{< revision "338517" >}} {{< sponsored "Netflix" >}}

The {{< manpage "geom" "8">}} utility has been updated to add a new flag, `-p`, which prints the GEOM class of the specified provider. {{< revision "338640" >}} {{< sponsored "DARPA, AFRL" >}}

The {{< manpage "geom" "8">}} utility has been updated to add a new flag, `-t`, which prints the GEOM hierarchy. {{< revision "338684" >}} {{< sponsored "DARPA, AFRL" >}}

[[storage-net]]
=== Networked Storage

The NFS version 4.1 server has been updated to include pNFS server support. {{< revision "335012" >}}

[[storage-zfs]]
=== ZFS

ZFS has been updated to include new {{< manpage "sysctl" "8">}}s, `vfs.zfs.arc_min_prefetch_ms` and `vfs.zfs.arc_min_prescient_prefetch_ms`, which improve performance of the {{< manpage "zpool" "8">}} `scrub` subcommand. {{< revision "334844" >}}

[[boot]]
== Boot Loader Changes

This section covers the boot loader, boot menu, and other boot-related changes.

[[boot-loader]]
=== Boot Loader Changes

The lua {{< manpage "loader" "8">}} has been updated to detect a list of installed kernels to boot. {{< revision "329501" >}} {{< sponsored "Dell EMC Isilon" >}}

The {{< manpage "loader" "8">}} has been updated to support {{< manpage "geli" "8">}} for all architectures and all disk-like devices. {{< revision "336252" >}} {{< sponsored "Microchip Technology, Inc." >}}

The {{< manpage "init" "8">}} utility has been updated to be able to run an executable written in languages other than {{< manpage "sh" "1">}}, such as Python, for example. {{< revision "337321" >}} {{< sponsored "DARPA, AFRL" >}}

The {{< manpage "loader" "8">}} has been updated to add support for loading Intel(R) microcode updates early during the boot process. {{< revision "337715" >}} {{< sponsored "The FreeBSD Foundation" >}}

A new {{< manpage "kenv" "1">}} variable, `init_exec`, has been added to {{< manpage "loader" "8">}} which allows {{< manpage "init" "8">}} to execute a file after opening the console, replacing {{< manpage "init" "8">}} as PID `1`. {{< revision "337740" >}} {{< sponsored "DARPA, AFRL" >}}

The default {{< manpage "libstand" "3">}} interpreter has been changed to Lua. {{< revision "338050" >}}

The lua {{< manpage "loader" "8">}} has been updated to support module blacklists. {{< revision "339218" >}}

The default lua {{< manpage "loader.conf" "5">}} has been updated to include the `kernels_autodetect` option, which defaults to `YES`, supplementing the {{< manpage "loader" "8">}} support to list available kernels to boot introduced in revision `329501`. {{< revision "339308" >}}

[[network]]
== Networking

This section describes changes that affect networking in FreeBSD.

[[network-general]]
=== General Network

The {{< manpage "carp" "4">}} interface has been updated to keep the state as `INIT` instead of `MASTER` when the `net.inet.carp.allow` {{< manpage "sysctl" "8">}} is set to `0`. {{< revision "333322" >}} {{< sponsored "iXsystems" >}}

The {{< manpage "pf" "4">}} packet filter is now usable within a {{< manpage "jail" "8">}} using {{< manpage "vnet" "9">}}.

The {{< manpage "pf" "4">}} packet filter has been updated to use {{< manpage "rmlock" "9">}} instead of {{< manpage "rwlock" "9">}}, resulting in significant performance improvements. {{< revision "334375" >}}

The `SO_REUSEPORT_LB` option has been added to the network stack, allowing multiple programs or threads to bind to the same port, and incoming connections load balanced using a hash function. {{< revision "334719" >}} {{< sponsored "Limelight Networks" >}}

The {{< manpage "pf" "4">}} ioctl interface and {{< manpage "pfctl" "8">}} now support {{< manpage "altq" "4">}} bandwidth parameters of `2^32` bps or greater. The HFSC discipline has been upgraded to operate correctly with bandwidth parameters up to 100 Gbps, and bandwidth parameters supplied to the non-upgraded disciplines will now be saturated at the prior 32-bit limit. {{< revision "338253" >}}

[[network-protocols]]
=== Network Protocols

Support for token-ring networks has been removed. {{< revision "331714" >}} {{< sponsored "DARPA, AFRL" >}}

Support for the Arcnet protocol has been removed. {{< revision "332490" >}} {{< sponsored "DARPA, AFRL" >}}

[[ports]]
== Ports Collection and Package Infrastructure

This section covers changes to the FreeBSD Ports Collection, package infrastructure, and package maintenance and installation tools.

[[ports-packages]]
=== Packaging Changes

The {{< manpage "pkg" "8">}} utility has been updated to verson 1.10.5_5.

KDE has been updated to version 5.12.5.

Perl has been updated to version 5.26.2.

Python has been updated to version 2.7.

[[doc]]
== Documentation

This section covers changes to the FreeBSD Documentation Project sources and toolchain.

[[doc-sources]]
=== Documentation Source Changes

The {{< manpage "arch" "7">}} manual page has been added, containing details specific to certain architectures. {{< revision "303033" >}} {{< sponsored "The FreeBSD Foundation" >}}

[[releng]]
== Release Engineering and Integration

This section convers changes that are specific to the FreeBSD Release Engineering processes.

[[releng-changes]]
=== Integration Changes

The FreeBSD/i386 memory stick installation images have been changed to use the MBR partitioning scheme instead of GPT to address boot issues with some BIOSes. {{< revision "332446" >}} {{< sponsored "The FreeBSD Foundation" >}}

The FreeBSD/amd64 memory stick installation images have been changed to use the MBR partitioning scheme instead of GPT to address boot issues with some BIOSes. {{< revision "334337" >}} {{< sponsored "The FreeBSD Foundation" >}}
