---
title: FreeBSD
date: 2024-08-31T08:35:46+02:00
lastmod: 2024-09-28T23:48:06+0000
description:
summary:
tags:
- freebsd
- git
#showDate: false
showReadingTime: false
showWordCount: false
showPagination: false
#showAuthor: false
showBreadcrumbs: true
feed_exclude: true
# site_exclude: true
---
Some basic and random information about FreeBSD.
## What I miss on FreeBSD
Currently, I run stable/14 on my X1 Carbon Gen7 laptop.
I do not run this as a daily driver but I insert the BSD disk from time to time
to see if things work better or not.
- stable wifi drivers (I use wifibox for now but I'd love to ditch the
virtual linux network card)
- ranger quits whenever a key is pressed (haven't found an alternative to ranger
combined with ueberzug as a command line file explorer (that can preview images))
- generally speaking, the boot time and overall responsiveness is a bit slower than
on a linux based os
- I never got the scrolling in Neomutt working within Alacritty
- Any sound on the internal speaker sounds like crap. The headphone jack plays fine
sounds and music, just the internal speaker is a pain to set up and I never found
a good solution that actually plays nice audio.
## Tracking FreeBSD STABLE
A quick checklist. Read along [on the FreeBSD website][1] for further information.
[1]: https://docs.freebsd.org/en/books/handbook/cutting-edge/#stable
As for my understanding only source updates are possible on the STABLE branch,
but I still use pkg to install pre-compiled packages -- I will find out if that
breaks things.
1. Update sources
```console
$ doas git -C /usr/src pull
```
2. Check `/usr/src/UPDATING`
3. Go to `/usr/src`
```console
$ cd /usr/src
```
4. Compile world
```console
$ doas make -j8 buildworld
```
5. Compile and install kernel
```console
$ doas make -j8 kernel
```
This is equivalent to `make -j8 buildkernel installkernel`.
6. Reboot
```console
$ shutdown -r now
```
7. Update config files
```console
$ doas etcupdate -p
```
`-p` short explained:
> Enable “pre-world” mode. Only merge changes to files that
> are necessary to successfully run ‘make installworld’ or
> ‘make installkernel’.
8. Again, go to `/usr/src`
```console
$ cd /usr/src
```
9. Install world
```console
$ doas make installworld
```
10. Update config files (after world installation)
```console
$ doas etcupdate -B
```
`-B` explained:
> Do not build generated files in a private object tree.
> Instead, reuse the generated files from a previously built
> object tree that matches the source tree. This can be
> useful to avoid gratuitous conflicts in sendmail(8)
> configuration files when bootstrapping. It can also be
> useful for building a tarball that matches a specific
> world build.
11. Another one, reboot
```console
$ shutdown -r now
```
System is up to date, following the branch [stable/14][2] (for now).
[2]: https://cgit.freebsd.org/src/log/?h=stable/14