--- 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 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