Tech News
← Back to articles

FreeBSD Kernel Modules Pkg(8) Repositories

read original related products more articles

FreeBSD project started to officially add kernel modules pkg(8) repositories to default installation – starting with FreeBSD 14.3-RELEASE version.

To understand why they were brought to light of day its first needed to understand the problem they are here to solve.

Problem

This problem does not exists with x.0 FreeBSD releases – they have all their packages built against proper FreeBSD x.0 version. The problem arises when x.1 release is made, or x.2 … or any OTHER then x.0 to be precise … but why?

The main problem is that pkg(8) packages are built against the currently supported oldest FreeBSD version in the tree. For example when 14.3-RELEASE is announced – the packages for 14.x tree are still built on 14.2-RELEASE for next 3 months since 14.3-RELEASE availability.

This usually does not break any ‘userspace’ applications but kernel modules related packages often are broken and cause kernel panics even on module load – and there are about 70 of them. While FreeBSD team fights really hard to keep ABI and kernel interfaces stable across ‘point’ releases – its sometimes not possible due to the nature of Linux DRM graphics drivers being imported and improved to support more modern GPUs on FreeBSD.

The problem mostly arises in the desktop/laptop area of FreeBSD UNIX usage – as with broken ABI the drm-kmod related kernel modules just panic and reboot each such system instantly … and this problem persists for whole 3 months within which the older release is still in support. After these 3 painful months – and after older ‘point’ release is out of support – the pkg(8) packages are finally started to built against PROPER latest FreeBSD version – and problem disappears … up to nest ‘point’ release and painful 3 months.

The damage of this policy can be limited with ZFS Boot Environments using tools like beadm(8) or bectl(8) but its just workaround solution.

Additional Repositories

I have spoken about that problem for years – trying to make FreeBSD project do something about it – for example as there are TWO independent pkg(8) branches of packages – the default quarterly and optional latest one – I suggested to switch latest to the LATEST FreeBSD version since day 1 of release and keep quarterly as the ‘legacy’ version packages branch … but that proposal did not saw any appreciation.

... continue reading