Kindly support DOTSLASHLINUX on Patreon to keep the website up and running while remaining ads free.

Part Section Link
1 Intro Click Here
2 [∗] Gentoo Linux support ---> Click Here
3 General setup ---> Click Here
4 [∗] Enable loadable module support ---> Click Here
5 [∗] Enable the block layer ---> Click Here
6 Processor type and features ---> Click Here
7 Power management and ACPI options ---> Click Here
8 Bus options (PCI etc.) ---> Click Here
9 Executable file formats / Emulations ---> Click Here
10 [∗] Networking support ---> Click Here
11 Device Drivers ---> Click Here
12 Firmware Drivers ---> Click Here
13 File systems ---> Click Here
14 Kernel hacking ---> Click Here
15 Security options ---> Click Here
16 -∗- Cryptographic API ---> Click Here
17 [∗] Virtualization ---> Click Here
18 Library routines ---> Click Here
Kernel Sources:       sys-kernel/gentoo-sources

Kernel Version:       4.14.12

Last Updated on:      06/01/2018

Update Notice:        1- Excluded 'CONFIG_PAGE_TABLE_ISOLATION' in 'Security options --->'
                      2- Included 'CONFIG_STANDALONE' in 'Device Drivers  --->'
                      3- Included 'CONFIG_PREVENT_FIRMWARE_BUILD' in 'Device Drivers  --->'
                      4- Included 'CONFIG_X86_5LEVEL' in 'Processor type and features  --->'
                      5- Included 'CONFIG_ORC_UNWINDER' in 'Kernel hacking  --->'
                      6- Excluded QEMU-virtualization-related options in favor of VirtualBox
                      7- Excluded swap-related options
                      8- Excluded 32-bit support
                      9- Switched from XFS to EXT4

Priorities:           1- high performance
                      2- minimal
                      3- low memory footprint
                      4- small size
                      5- power saving
                      6- security
                      7- low-latency

Total Options:        2469 (grep -c 'CONFIG_' DOTSLASHLINUX.config)

Included Options:     645 (grep -c '=y' DOTSLASHLINUX.config)

Excluded Options:     1761 (grep -c 'is not set' DOTSLASHLINUX.config)

Final Size (LZ4):     5,644,240 Bytes

Patches Applied:      1- UKSM-4.14 Patch (https://github.com/dolohow/uksm/blob/master/uksm-4.14.patch)

Contributors:         Firas Khalil Khana [irc: firas] [email: firasuke@gmail.com]

Side Notes:           1- Options that aren't listed here are excluded [ ].
                      2- These guides provide users with a solid starting setup to build on.
                      3- These guides are constantly being updated.
                      4- If there's something I didn't explain properly or I misexplained
                         then please do let me know either by kindly leaving a comment below
                         or by sending me an email on: firasuke@gmail.com

The Linux Kernel Configuration Guide Part 4 - [∗] Enable loadable module support --->

kernel4
Firas Khalil Khana | 27/08/2017

2- [∗] Enable loadable module support —>

— Enable loadable module support

Symbol:     CONFIG_MODULES

Help:       Kernel modules are small pieces of compiled code which can
            be inserted in the running kernel, rather than being
            permanently built into the kernel.  You use the "modprobe"
            tool to add (and sometimes remove) them.  If you say Y here,
            many parts of the kernel can be built as modules (by
            answering M instead of Y where indicated): this is most
            useful for infrequently used options which are not required
            for booting.  For more information, see the man pages for
            modprobe, lsmod, modinfo, insmod and rmmod.

            If you say Y here, you will need to run "make
            modules_install" to put the modules under /lib/modules/
            where modprobe can find them (you may need to be root to do
            this).

            If unsure, say Y.

Type:       boolean

Choice:     built-in [∗]

Reason:     It's highly recommended that you include this option in your kernel
            in order to get a working bumblebee setup on an optimus based laptop.

            DOTSLASHLINUX has a guide on how to setup bumblebee on Gentoo Linux:

                https://www.dotslashlinux.com/2017/06/04/setting-up-bumblebee-on-gentoo-linux/

            You can safely exclude this option if you're not on a optimus based laptop
            and have built all modules directly into your kernel.

[ ] Forced module loading

Symbol:     CONFIG_MODULE_FORCE_LOAD

Help:       Allow loading of modules without version information (ie. modprobe
            --force).  Forced module loading sets the 'F' (forced) taint flag and
            is usually a really bad idea.

Type:       boolean

Choice:     excluded [ ]

Reason:     You can safely exclude this option as forcing modules to load is dangerous
            and not recommended at all.

[∗] Module unloading

Symbol:     CONFIG_MODULE_UNLOAD

Help:       Without this option you will not be able to unload any
            modules (note that some modules may not be unloadable
            anyway), which makes your kernel smaller, faster
            and simpler.  If unsure, say Y.

Type:       boolean

Choice:     built-in [∗]

Reason:     It's highly recommended that you include this option in your kernel
            in order to get a working bumblebee setup on an optimus based laptop.

            DOTSLASHLINUX has a guide on how to setup bumblebee on Gentoo Linux:

                https://www.dotslashlinux.com/2017/06/04/setting-up-bumblebee-on-gentoo-linux/

            You can safely exclude this option if you're not on a optimus based laptop
            and have built all modules directly into your kernel.

[ ] Forced module unloading

Symbol:     CONFIG_MODULE_FORCE_UNLOAD

Help:       This option allows you to force a module to unload, even if the
            kernel believes it is unsafe: the kernel will remove the module
            without waiting for anyone to stop using it (using the -f option to
            rmmod).  This is mainly for kernel developers and desperate users.

            If unsure, say N.

Type:       boolean

Choice:     excluded [ ]

Reason:     You can safely exclude this option as it's even more dangerous than
            CONFIG_MODULE_FORCE_LOAD, and it's intended for developing purposes.

[ ] Module versioning support

Symbol:     CONFIG_MODVERSIONS

Help:       Usually, you have to use modules compiled with your kernel.
            Saying Y here makes it sometimes possible to use modules
            compiled for different kernels, by adding enough information
            to the modules to (hopefully) spot any changes which would
            make them incompatible with the kernel you are running.  If
            unsure, say N.

Type:       boolean

Choice:     excluded [ ]

Reason:     You can safely exclude this option as it's intended for testing
            and debugging purposes.

[ ] Source checksum for all modules

Symbol:     CONFIG_MODULE_SRCVERSION_ALL

Help:       Modules which contain a MODULE_VERSION get an extra "srcversion"
            field inserted into their modinfo section, which contains a
            sum of the source files which made it.  This helps maintainers
            see exactly which source was used to build a module (since
            others sometimes change the module source without updating
            the version).  With this option, such a "srcversion" field
            will be created for all modules.  If unsure, say N.

Type:       boolean

Choice:     excluded [ ]

Reason:     You can safely exclude this option as it's intended for maintaining
            purposes.

[ ] Module signature verification

Symbol:     CONFIG_MODULE_SIG

Help:       Check modules for valid signatures upon load: the signature
            is simply appended to the module. For more information see
            Documentation/module-signing.txt.

            Note that this option adds the OpenSSL development packages as a
            kernel build dependency so that the signing tool can use its crypto
            library.

            !!!WARNING!!!  If you enable this option, you MUST make sure that the
            module DOES NOT get stripped after being signed.  This includes the
            debuginfo strip done by some packagers (such as rpmbuild) and
            inclusion into an initramfs that wants the module size reduced.

Type:       boolean

Choice:     excluded [ ]

Reason:     You can safely exclude this option as it's intended for maintaining
            purposes.

[ ] Compress modules on installation

Symbol:     CONFIG_MODULES_COMPRESS

Help:       Compresses kernel modules when 'make modules_install' is run; gzip or
            xz depending on "Compression algorithm" below.

            module-init-tools MAY support gzip, and kmod MAY support gzip and xz.

            Out-of-tree kernel modules installed using Kbuild will also be
            compressed upon installation.

            Note: for modules inside an initrd or initramfs, it's more efficient
            to compress the whole initrd or initramfs instead.

            Note: This is fully compatible with signed modules.

            If in doubt, say N.

Type:       boolean

Choice:     excluded [ ]

Reason:     You can safely exclude this option as compressing your loadable
            kernel modules will slightly increase your boot time.

            Include this option only if you're space restricted.

[ ] Trim unused exported kernel symbols

Symbol:     CONFIG_TRIM_UNUSED_KSYMS

Help:       The kernel and some modules make many symbols available for
            other modules to use via EXPORT_SYMBOL() and variants. Depending
            on the set of modules being selected in your kernel configuration,
            many of those exported symbols might never be used.

            This option allows for unused exported symbols to be dropped from
            the build. In turn, this provides the compiler more opportunities
            (especially when using LTO) for optimizing the code and reducing
            binary size.  This might have some security advantages as well.

            If unsure, or if you need to build out-of-tree modules, say N.

Type:       boolean

Choice:     excluded [ ]

Reason:     You can safely exclude this option as nvidia.ko kernel module requires
            these symbols in order to get a working bumblebee setup on an optimus
            based laptop.

            DOTSLASHLINUX has a guide on how to setup bumblebee on Gentoo Linux:

                https://www.dotslashlinux.com/2017/06/04/setting-up-bumblebee-on-gentoo-linux/
            
            It's not recommended that you include this option, but you can try
            and see if it works for you.

Chinese Translation

One of DOTSLASHLINUX followers 杨鑫 (Yang Mame) from China, decided to follow up with the series and provide Chinese translation of the kernel configuration guides on his blog.

To read this guide in Chinese click here.

Leave A Comment