Re: /boot/firmware/ and /boot/modules/ (was: firmware modules)

From: Mark Millard <marklmi_at_yahoo.com>
Date: Mon, 31 Mar 2025 07:20:28 UTC
On Mar 30, 2025, at 09:18, LuMiWa <lumiwa@dismail.de> wrote:

> On Sat, 29 Mar 2025 06:02:37 +0000
> Graham Perrin <grahamperrin@gmail.com> wrote:
> 
>> On 20/03/2025 18:40, Mark Millard wrote:
>>> … It looks to me like some things involve loadable kernel modules
>>> that add code to into the kernel and some do not involve such.
>>> Those that do not are probably just loaded into a device that is
>>> using the material via the FreeBSD kernel. Which type of file looks
>>> to determine /boot/firmware/ vs. /boot/modules/ for where the files
>>> are put.
>>> 
>>> Also, …
>> /boot/firmware/    loadable binary firmware kernel modules
>> 
>> /boot/modules/     third-party loadable kernel modules, such as
>>                    those installed with pkg(8) or from ports(7)
>> 
>> hier(7) 
>> <https://man.freebsd.org/cgi/man.cgi?query=hier&sektion=7&manpath=freebsd-current> 
>> 
>> 
> 
> My question is why binary pkg from FreeBSD repository install
> gpu-firmware-amd-kmod in /boot/modules/ 
> and
> wifi-firmware-iwlwifi-kmod in /boot/modules/
> 
> but wifi-firmware-iwlwifi-kmod from kmods repository install in
> /boot/firmware/
> 
> Why is not the same?
> 

Quoting /usr/ports/net/wifi-firmware-kmod/Makefile.inc :

.if (${OSVERSION} >= 1500014) || (${OSVERSION} < 1500000 && ${OSVERSION} >= 1402000)
# src.git main 479905a1ed26c54ef29cdff65cf25f7feade654b (stable/14 2ca7b03d6275)
# allows direct loading of firmware files.  For anything before that we still need
# to create kernel modules.  We need to write a PLIST file so we can then simply use
# COPYTREE_SHARE with adjusted permissions to copy the files over.
BOOTFWDIR?=     /boot/firmware
_SHAREMODE=     0444
NO_BUILD=       yes
.else
MAKE_ENV+=      FWSRCDIR=${WRKSRC}/fw
.endif


===
Mark Millard
marklmi at yahoo.com