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.

126 lines
3.1 KiB

---
title: FreeBSD
date: 2024-08-31T08:35:46+02:00
lastmod: 2024-09-07T21:58:19+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