How do GEOM_PART_* options configure geom_part_* modules??

Nick Hibma nick at van-laarhoven.org
Thu Sep 28 15:31:52 UTC 2017


I created a new kernel config file from scratch, wondered what the GEOM_PART_MBR option and friends were doing, search for them, didn't find them in the tree, and deleted them from my config. But... de resulting disk image didn't boot, because of the fact that it didn't recognise the MBR partitions (it only had a single diskid entry on the mount-root prompt).

Can anyone explain to me how these kernel options work, as in: they are defined in kernel configs and as a consequence in opt_geom.h, but how are they actually used to select which geom_part_* modules/kernel parts to build? I thought these options were translated to stuff that cpp would use, but there are not uses of for example GEOM_PART_MBR anywhere for example!

The only thing I was able to come up with, but could not figure out, was FEATURE() doing some magic.

Thanks in advance for any pointers!

Nick Hibma
nick at van-laarhoven.org <mailto:nick at van-laarhoven.org>

-- Open Source: We stand on the shoulders of giants.


% grep -r GEOM_PART_ /usr/src/sys/ | grep -Ev '/conf/.*options'
/usr/src/sys/geom/part/g_part_mbr.c:    "GEOM_PART_MBR Master Boot Record");
/usr/src/sys/geom/part/g_part_ldm.c:    "GEOM_PART_LDM Logical Disk Manager");
/usr/src/sys/geom/part/g_part_ldm.c:	 * XXX: We use some knowledge about GEOM_PART_GPT internal
/usr/src/sys/geom/part/g_part_ebr.c:#if defined(GEOM_PART_EBR_COMPAT)
/usr/src/sys/geom/part/g_part_ebr.c:#ifndef GEOM_PART_EBR_COMPAT
/usr/src/sys/geom/part/g_part_ebr.c:#if defined(GEOM_PART_EBR_COMPAT)
/usr/src/sys/geom/part/g_part_ebr.c:#if defined(GEOM_PART_EBR_COMPAT)
/usr/src/sys/geom/part/g_part_ebr.c:#if defined(GEOM_PART_EBR_COMPAT)
/usr/src/sys/geom/part/g_part_ebr.c:#if defined(GEOM_PART_EBR_COMPAT)
/usr/src/sys/geom/part/g_part_ebr.c:#ifndef GEOM_PART_EBR_COMPAT
/usr/src/sys/geom/part/g_part_ebr.c:#ifndef GEOM_PART_EBR_COMPAT
/usr/src/sys/geom/part/g_part_ebr.c:#ifndef GEOM_PART_EBR_COMPAT
/usr/src/sys/geom/part/g_part_ebr.c:#ifndef GEOM_PART_EBR_COMPAT
/usr/src/sys/geom/part/g_part.h:#ifndef _GEOM_PART_H_
/usr/src/sys/geom/part/g_part.h:#define	_GEOM_PART_H_
/usr/src/sys/geom/part/g_part.h:#endif /* !_GEOM_PART_H_ */
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 902 bytes
Desc: Message signed with OpenPGP
URL: <http://lists.freebsd.org/pipermail/freebsd-current/attachments/20170928/814c26d6/attachment.sig>


More information about the freebsd-current mailing list