You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

133 lines
3.0 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

---
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 <kbd>stable/14</kbd> 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 <kbd>[stable/14][2]</kbd> (for now).
[2]: https://cgit.freebsd.org/src/log/?h=stable/14