132 lines
3 KiB
Markdown
132 lines
3 KiB
Markdown
---
|
||
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
|