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