FreeBSD 14.3 should have significantly improved support of WiFi adapters.
Let's test it in Dell Precision 5530 with Intel Wi-Fi 5 (802.11ac) Wireless-AC 9x6x [Thunder Peak].
FreeBSD is a clean, powerful, secure, and reliable Unix-like Operating System built for performance and freedom, and that’s why I’ve been happily nerding out with it for almost 30 years.
FreeBSD 14.3 should have significantly improved support of WiFi adapters.
Let's test it in Dell Precision 5530 with Intel Wi-Fi 5 (802.11ac) Wireless-AC 9x6x [Thunder Peak].
Vodafone is one of the internet providers I use in my home lab setup here in Czechia.
I have been told they can enable IPv6 in my modem/router on request and it is not enabled by default. Anyway, it took them few minutes to reconfigure my modem/router to support IPv6. After this reconfiguratio, I connected my FreeBSD machine to the network segment we use as point-to-point (P2P /30) for IPv4. For IPv6, there is /64 subnet, where I can connect my IPv6 device.
Logical Network schema is depicted below.
![]() |
Logical Network Schema |
While writing my blog post series about IPv6, I realized it would be useful to document publicly available DNS servers.
In this blog post I will documente DNS IP addresses of DNS Servers from Google, Clouflare, Quad9, Cisco's OpenDNS.There are weel know IPv4 DNS addresses like 8.8.8.8 and 8.8.4.4, but there are others. DNS Servers are nowadays very usefull for secuurity protection like Phishing Protection, Optional content filtering, etc.
And last but not least, do you know IPv6 addresses of those DNS services.
Starnet is one of the internet providers I use in my home lab setup here in Czechia.
I have been told they are IPv6 ready, so I connected my FreeBSD machine to the network segment we use as point-to-point (P2P /30) for IPv4. For IPv6, there is /64 subnet, where I can connect my IPv6 device.
Logical Network schema is depicted below.
![]() |
Logical Network Schema |
I have found old Edimax N150 Wi-Fi USB network interface and would like to use it in FreeBSD 14.2. for some IoT project. I have not used Wi-Fi on FreeBSD for ages, so let's try it.
It is worth to mention that Wi-Fi network interface can be in three different modes
Access Point (ifconfig wlan0 mode hostap) is great in situations you would like to allow multiple Stations to connect, but the rtwn driver in FreeBSD does not support Access Point (hostap) mode.
Monitor mode on a wireless interface (ifconfig wlan0 mode monitor) is a special mode used primarily for passive packet capturing and wireless debugging, not for normal network communication. This mode should be supported by rtwn driver in FreeBSD, but I did not tested.
Station/Client (sta) mode is supported and it is actually the only mode we will cover in this blog post.
Let's do a configuration, setup, and some performance tests ...
First of all, it is important to understand that FreeBSD hase The Base FreeBSD system and Third-Party Software.
The Base FreeBSD System is the core part of FreeBSD that includes the kernel, standard system utilities, libraries, configuration files, and essential tools required to run and manage the system. You manage it using Admin Tool freebsd-update. Tool freebsd-update is still widely used, but the FreeBSD project is gradually moving toward pkgbase tool where The Base FreeBSD System is splited into packages like FreeBSD-runtime, FreeBSD-lib, FreeBSD-kernel, etc. You will be able to manage the base system with pkg just like third-party software. It will be more modular and modern than freebsd-update, but pkgbase is not yet officially supported on RELEASE versions, therefore freebsd-update is still production ready tool for update and upgrade of The Base FreeBSD System.
Third-Party software in FreeBSD
is any application or tool not included in the base system, such as web
servers, editors, databases, programming languages, and desktop
environments. You manage it using the pkg package manager or by Ports Collection (source code + make).
Picture is worth 1,000 words, so I have prepared visualization to understand the difference between The Base FreeBSD System and Third-Party Software.
![]() |
The Base FreeBSD System and Third-Party Software |
I use FreeBSD routers in my home labs and here is my typical router configuration.
Router configuration is based on
In terms of FreeBSD console, there are two settings typically set in /boot/loader.conf to affect early boot behavior.
This setting tells FreeBSD to use the "sc" (syscons) console driver instead of the newer "vt" (Newcons) driver.
You might set kern.vty=sc for:
This setting forces the VGA hardware to remain in text mode during the boot process and afterward. When used with kern.vty=sc, it helps to avoid switching to graphics mode. It is useful on real hardware where mode switching causes flicker, or to avoid issues with VMs or KVMs that don't like graphics mode.
It ensures that the system boots and runs entirely in VGA 80x25 text mode, improving compatibility and avoiding graphical issues.
Let's deep dive into options we have in FreeBSD 14 and how we can use them ...
When you want to explicitly set packahe site in FreeBSD use shell command below ...
setenv PACKAGESITE https://pkg.FreeBSD.org/FreeBSD:14:amd64/latest
Then you can use package commands as usual.
etc.
freebsd-version -kru ; uname -aKU
These two commands in sequence display detailed information about your FreeBSD system's version and kernel. It helps to
pciconf -lv | grep -B 3 -A 1 display
This one-liner helps you identify the PCI display controller (graphics card) and shows a few lines before and after the line containing the word display for context, including device ID, vendor, and possibly the driver in use.
pkg repos -el | sort -f ; pkg repos -e
This one-liner prints a sorted list of repository names and full configuration of each repository. This is helpful for debugging, auditing, or confirming what repositories are enabled and how they're configured.
Before configuration of IPv6 in FreeBSD, I highly recommend to read my (Part 1) blog post "Everything I need to know about IPv6 address blocks" to get familiar with IPv6 basic concepts.
In all three sites of my home lab environment I use FreeBSD as a primary Operating System. I'll start exploring IPv6 right on the FreeBSD operating system.
The IPv6 configuration in FreeBSD is usually easy. ISP router typically supports SLAAC, so you
can dynamically get IPv6 addresses, IPv6 default route, and even IPv6 DNS addresses from ISP router. The second option how to get IPv6 configuration from ISP router is DHCPv6.
Let’s explore and configure both SLAAC and DHCPv6 in my environment, and document all the details in this blog post - Part 2 of my blog series on IPv6.
When something went wrong, it is good to boot into single user mode (without the user/root authorization) and do some maintenance tasks.
First of all, you must have access to FreeBSD console to manage boot process, because you have to somehowe initiated reboot of the system. When you have access to console keyboard, simply press CTRL+ALT+DEL. Another option is hardware reset or power-ofF & power-on, but this is not a graceful reboot and you can damage something.
During the boot sequence, there is "Bestie boot menu" where you can simply select option 2 by pressing key 2.
![]() |
Bestie boot menu |
When FreeBSD is booted into a single user mode, the file system is in read-only mode for safety.
When you want to change someting in file system or even change root or user password, you have to remount file system from read-only mode into read-write mode.
Below is the sequence of commands to do so if you have UFS file system.
Command (mount -u /) remounts the root filesystem (/) using the options specified (or defaults from /etc/fstab), without unmounting it.
Command (mount -a) mounts the rest of the filesystems defined in /etc/fstab.
Below is the sequence of commands for ZFS file system.