Over the years I’ve written quite a few posts to help people get into FreeBSD (or FreeBSD-related projects). This is the place to get a quick overview of those posts:
2021
Multi-OS PXE boot server on FreeBSD
- (Jan 2021) Multi-OS PXE-booting from FreeBSD 12: Introduction (pt. 1)
- (Jan 2021) Multi-OS PXE-booting from FreeBSD 12: Required services (pt. 2)
- (Feb 2021) Multi-OS PXE-booting from FreeBSD 12: PXE menu and *BSD (pt. 3)
- (Feb 2021) Multi-OS PXE-booting from FreeBSD 12: Linux, illumos and more (pt. 4)
Part 1 of this mini-series explains why you might want a multi-OS PXE server on FreeBSD, includes an excursion about what PXE is in short and shows how I prepared a test machine to be a gateway and nameserver.
In part 2 the actual services required for PXE booting are set up. Two options are described for both of the third-party services used (DHCP server and File Server) so the reader can pick from them.
Part 3 of the series covers preparing and configuring the NBP and menu (including optional submenus). It also shows how to prepare our machine for serving working installations of all the major BSDs – with the exception for DragonFly BSD that I could not get working without using NFS.
The mini series ends with examples for adding various Linux and illumos distributions as options to the PXE server. A couple of other Open Source operating systems are also covered.
FreeBSD router take 2 (with OPNsense)
- (Apr 2021) FreeBSD router take 2 (pt. 1): OPNsense ZFS-based installation (by converting FreeBSD)
- (Apr 2021) FreeBSD router take 2 (pt. 2): Excursion – FreeBSD and security
- (May 2021) FreeBSD router take 2 (pt. 3): Excursion – De-hardening OPNsense for 2022?
- (May 2021) FreeBSD router take 2 (pt. 4): Demoting my ISP’s router
In this first post of my new series, I show how to install OPNsense as a root-on-ZFS system by setting up a FreeBSD system first and then converting that.
This article discusses what I think security means in today’s world – and how FreeBSD performs security-wise.
Where the previous article discussed the parts where FreeBSD shines when it comes to security, this one is about the bad parts. It also looks at why HardenedBSD is important, why OPNsense leaving it behind still arguably makes sense and why OpenBSD is not an option.
This article is about using a DSL modem together with OPNsense to replace my ISP’s router (except for telephony). It shows how to configure both.
2020
Single post
- (Feb 2020) FreeBSD on SPARC64 (is dead)
In this article I cover my last minute adventures with FreeBSD on the SPARC64 platform. I encounter various broken areas and try to get things fixed so the platform could survive – in vain. But this documents that there at least were people who tried to keep it running!
2019
FreeBSD on ARM64/AARCH64
- (Feb 2019) ARM’d and dangerous: FreeBSD on Cavium ThunderX (aarch64)
- (May 2019) ARM’d and dangerous pt. 2: FreeBSD on the Pinebook (aarch64)
The Cavium ThunderX has been the reference platform for FreeBSD on ARM64/AARCH64. This is my first attempt at getting FreeBSD to work on server-class ARM64. I ran into a lot of unexpected problems, but eventually at least got FreeBSD working at all.
The PineBook is a low-price ARM64 laptop explicitly built for the Linux and *BSD communities. After I got one it was time to give FreeBSD a roll!
Managing FreeBSD ports with Portmaster
- (Aug 2019) Using FreeBSD with Ports (1/2): Classic way with tools
- (Sep 2019) Using FreeBSD with Ports (2/2): Tool-assisted updating
This post gives an introduction to installing ports using the portmaster tool.
Portmaster makes updating your software from ports easier, but there are a lot of cases where the admin needs to know what is actually going on and point the tool into the right direction. This post covers a lot of those cases.
Writing a daemon using FreeBSD and Python
- (Nov 2019) Writing a daemon using FreeBSD and Python pt.1
- (Nov 2019) Writing a daemon using FreeBSD and Python pt.2
- (Nov 2019) Writing a daemon using FreeBSD and Python pt.3
This mini-series is meant as a quick but gentle introduction to using Python to build a daemon on FreeBSD. The first part covers some Python fundamentals, signal handling, logging and daemonizing using FreeBSD’s daemon(8).
The second post of the mini-series covers doing daemonization of the program directly in Python, without external help. It also discusses a few Python concepts and fundamentals for newcomers to programming.
Part three of the mini-series introduces named pipes as a means of inter-process communication (IPC). The daemon is modified to use a named pipe and a control script is created that can send data to it (unidirectional IPC).
2018
Single post
- (Feb 2018) [ ! -z ${COC} ] && exit 1
FreeBSD decided to go with a new “feminist” code of conduct. I criticize it as a step in the wrong direction as it is ideology (and a crude one) over sanity. This kind of thing is not helpful in tech at all.
2017
Updating FreeBSD 4.11
This series of four posts is about updating a legacy system running the legendary ancient FreeBSD version 4.11.
- (Jan 2017) Updating FreeBSD 4.11 (1/4) – Blast from the past
- (Jan 2017) Updating FreeBSD 4.11 (2/4) – Digging up old graves
- (Feb 2017) Updating FreeBSD 4.11 (3/4) – Neophyte’s notorious necromancy
- (Feb 2017) Updating FreeBSD 4.11 (4/4) – Reflecting radical resurrection
A post about legacy systems in the IT in general and about FreeBSD 4.11 in particular.
The second part is about configuring a 4.11 system for remote access, about bootstrapping an old pkgsrc tree and updating the OS to the latest -STABLE version.
Updating OpenSSH and building newer compilers is what this part is about.
The final part covers doing a lot of software updates, finally installing a current version of OpenSSH on this ancient OS!
Introduction of FreeBSD jails
A mini-series of two posts about jails on FreeBSD.
- (Mar 2017) FreeBSD jails (1/2): Introduction and frameworks
- (Apr 2017) FreeBSD jails (2/2): 4.11 sentenced to jail
This post introduces FreeBSD jails in general and tries to give an overview over various jail management tools.
The second part covers using the jail management framework iocage and shows a little stunt: Jailing an old FreeBSD 4.11 system on a current FreeBSD 11 host!
Building a BSD home router
A detailed eight part howto on building your own home router including hardware considerations, an intro to using the serial console, discussing two options for operating systems and more.
- (May 2017) Building a BSD home router (pt. 1): Hardware (PC Engines APU2)
- (Jun 2017) Building a BSD home router (pt. 2): The serial console (excursion)
- (Jun 2017) Building a BSD home router (pt. 3): Serial access and flashing the firmware
- (Jun 2017) Building a BSD home router (pt. 4): Installing pfSense
- (Jun 2017) Building a BSD home router (pt. 5): Installing OPNsense
- (Jun 2017) Building a BSD home router (pt. 6): pfSense vs. OPNsense
- (Jun 2017) Building a BSD home router (pt. 7): Advanced OPNsense installation
- (Jul 2017) Building a BSD home router (pt. 8): ZFS and jails
The first part of the series is about why you need your own router, about hardware considerations and on how to assemble a APU2c4-based router box.
Some computer history for the younger ones in IT: TTYs, terminals and terminal emulators. It all leads to explaining what a serial console is.
Practical serial console guide as well as a howto on updating the APU firmware.
Detailed installation howto for pfSense.
Detailed installation howto for OPNsense.
Some information about and a comparison of pfSense and OPNsense. Which one is better for your task?
This post shows how to do a manual installation of OPNsense and making it accessible over SSH.
Following up the previous installation with creating a ZFS pool and datasets as well as building the iocell jail manager from ports.
FreeBSD package management and package building
A set of posts to introduce new users to FreeBSD’s package management system, the ports framework and building your own package repositories in a clean environment.
- (Aug 2017) FreeBSD package management with Pkg (1/2)
- (Sept 2017) FreeBSD package management with Pkg (2/2)
- (Sept 2017) FreeBSD: Building software from ports (1/2)
- (Oct 2017) FreeBSD: Building software from ports (2/2)
The first part introduces the Pkg package manager in general as well as basic package management actions.
The second part contains some more examples of using Pkg, putting the focus on update-related tasks.
A basic introduction to FreeBSD’s Ports system assuming no previous knowledge, pt 1.
The practical part of working with ports: Configuring, building and installing ports. Recursive operations are covered as well.
2016
Dual-boot FreeBSD setup
This two post mini-series is about installing FreeBSD and OpenBSD together on one machine. Full disk encryption is used for both systems.
- (Mar 2016) Setting up a FreeBSD/OpenBSD dual-boot with full disk encryption
- (Apr 2016) OpenBSD/FreeBSD (ZFS) dual-boot & thoughts about GPT/EFI
This post shows how to setup your computer for dual-booting FreeBSD and OpenBSD using full disk encryption for both system.
Want to use ZFS instead of UFS for the FreeBSD part of your dual-boot? Here’s how to do it.
Introducing Vagrant on FreeBSD
Another two post mini-series, this time introducing Vagrant – a versatile tool to automate and manage disposable Virtual Machines.
- (Sep 2016) Vagrant: Creating a FreeBSD 11 base box (virtualbox) – pt. 1
- (Sep 2016) Vagrant: Creating a FreeBSD 11 base box (virtualbox) – pt. 2
This post gives an introduction to what Vagrant is and why you would want to use it. It then shows how to install both Vagrant and VirtualBox on your FreeBSD machine and finally how to create a new VirtualBox VM and install FreeBSD 11 in it.
Part two covers preparing and customizing your VM for use with Vagrant, creating what is called a base box and how to launch a new VM using that base box.
Introduction to Bacula on FreeBSD
A five-post introduction to the backup software Bacula (of course on FreeBSD)!
- (Oct 2016) Bacula on FreeBSD (pt. 1): Introduction – Bacula backup basics
- (Oct 2016) Bacula on FreeBSD (pt. 2): Bconsole – ruling the Director
- (Oct 2016) Bacula on FreeBSD (pt. 3): Customizing configuration
- (Oct 2016) Bacula on FreeBSD (pt. 4): Jobs, volumes, pools & a restore
- (Oct 2016) Bacula on FreeBSD (pt. 5): A day at the pool
Bacula basics: What is bacula, what parts does it consist of and what does the config look like?
This post is about configuring all the daemons so that they can communicate with each other and about using the bconsole to issue commands to the director. It also shows how to debug configuration problems and how to do a first backup!
Part three is all about the configuration. It details splitting-up configuration files to make them more readable and writing your first own resources. Then another backup is done.
This shows how to do a restore and how to set job defaults. Also concepts like jobs, volumes and pools are discussed.
The last part is about creating a a pool, controlling jobs, changing flags and purging no longer needed volumes.
Single posts
These are a couple of posts that are not part of any series.
- (Jul 2016) Documentation: Linux vs. FreeBSD – a real-world example
- (Aug 2016) How to choose your *BSD OS to begin with?
- (Dec 2016) 3+ months on TrueOS – a critical write-up
I never use WLAN at home. Then one day I want to access the net with my FreeBSD machine while being on the road and I have no clue how to do it. That was when I discovered just how much better FreeBSD’s man pages are compared to the ones I was used to from Linux!
This post is meant to give an overview over the four main BSDs, what they put their focus on, what interesting things they have going on and why you would want to try out which one.
After having used the new TrueOS as my main OS as a daily driver, I wanted to document the good, the bad and the ugly. TrueOS is a FreeBSD-based OS with a lot of potential that however had quite a few rough edges at that time and had yet to find its way.
2015
FreeBSD for Linux users: General introduction series
A series of five posts that are meant to give a short intro into the world of FreeBSD.
- (Jun 2015) FreeBSD – from the Linux user’s perspective (introduction)
- (Jul 2015) Installing FreeBSD – a tutorial from the Linux user’s perspective
- (Aug 2015) Exploring FreeBSD (1/3) – a tutorial from the Linux user’s perspective
- (Sep 2015) Exploring FreeBSD (2/3) – a tutorial from the Linux user’s perspective
- (Oct 2015) Exploring FreeBSD (3/3) – a tutorial from the Linux user’s perspective
A very general introduction to FreeBSD that tries to give a few answers to questions like: What is FreeBSD? Where does it come from? What is it good at? Why would you want to try it out?
This post walks the reader through the FreeBSD installation process. Version 10.1 is covered and the installer changed a bit since then, but not too much.
The first part shows a few shell related things to mind on FreeBSD when you’re coming from Linux.
Learn about updating the system, installing packages, user management and dealing with services.
The third part covers updating packages, introduces the ports system, explains FreeBSD’s branches and how to do updates from source.