Kernel Sources:       sys-kernel/gentoo-sources

Kernel Version:       4.14.4

Last Updated on:      06/12/2017

Update Notice:        1- Added 'CONFIG_X86_5LEVEL' to 'Processor type and features  --->'
                      2- Added 'CONFIG_ORC_UNWINDER' to 'Kernel hacking  --->'
                      3- Excluded swap options (in DOTSLASHLINUX.config only and not in the guides)
                      4- Removed 32-bit support (in DOTSLASHLINUX.config only and not in the guides)
                      5- Switched to EXT4 from XFS (in DOTSLASHLINUX.config only and not in the guides)

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

Configuration File:   https://www.dotslashlinux.com/dotfiles/kernel/DOTSLASHLINUX.config

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

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

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

Final Size (LZ4):     6,508,496 Bytes

Total Patches:        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 sending me an email on: firasuke@gmail.com
                      5- If you found these guides helpful, then please don't forget to
                         support DOTSLASHLINUX on Patreon:

                            https://www.patreon.com/DOTSLASHLINUX

                         or on PayPal:

                            https://www.paypal.me/DOTSLASHLINUX/5
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

The Linux Kernel Configuration Guide Part 18

kernel18
Firas Khalil Khana | 18/09/2017

Similarly to part 16, it’s highly recommended that you leave this section alone. All needed options in this section will be forcibly included by other options in other sections so you don’t have to worry about this section much.

One thing you could do is after you’ve included all the required options for your system, you can enter this section and exclude options that weren’t forcibly included by other options (as in most cases they will not be used).

Again, the options I’ll be listing here will be the ones that got forcibly included on my system, in addition to some other options that I found useful (with the help of SystemRescueCd of course) as you may find it useful.


Library routines —>

-*- CRC-CCITT functions

Symbol:     CONFIG_CRC_CCITT

Help:       This option is provided for the case where no in-kernel-tree
            modules require CRC-CCITT functions, but a module built outside
            the kernel tree does. Such modules that use library CRC-CCITT
            functions require M here.

Type:       tristate

Choice:     built-in -*-

Reason:     Forcibly included as it's required by CONFIG_NET, CONFIG_WLAN,
            CONFIG_USB and a lot of important options.

-*- CRC16 functions

Symbol:     CONFIG_CRC16

Help:       This option is provided for the case where no in-kernel-tree
            modules require CRC16 functions, but a module built outside
            the kernel tree does. Such modules that use library CRC16
            functions require M here.

Type:       tristate

Choice:     built-in -*-

Reason:     Forcibly included as it's required by CONFIG_NET, CONFIG_BT,
            CONFIG_BLOCK, CONFIG_EXT4_FS, CONFIG_RFKILL and a lot of
            important options.

<*> CRC calculation for the T10 Data Integrity Field

Symbol:     CONFIG_CRC_T10DIF

Help:       This option is only needed if a module that's not in the
            kernel tree needs to calculate CRC checks for use with the
            SCSI data integrity subsystem.

Type:       tristate

Choice:     built-in <*>

Reason:     If you've followed the guide in part 11, then a simple:

                cat lsmod.txt | grep crct10dif

            should tell you whether you need this option or not.

-*- CRC ITU-T V.41 functions

Symbol:     CONFIG_CRC_ITU_T

Help:       This option is provided for the case where no in-kernel-tree
            modules require CRC ITU-T V.41 functions, but a module built outside
            the kernel tree does. Such modules that use library CRC ITU-T V.41
            functions require M here.

Type:       tristate

Choice:     built-in -*-

Reason:     Forcibly included as it's required by CONFIG_PCI, CONFIG_NET,
            CONFIG_64BIT, CONFIG_BLOCK and a lot of important options.

-*- CRC32/CRC32c functions

Symbol:     CONFIG_CRC32

Help:       This option is provided for the case where no in-kernel-tree
            modules require CRC32/CRC32c functions, but a module built outside
            the kernel tree does. Such modules that use library CRC32/CRC32c
            functions require M here.

Type:       tristate

Choice:     built-in -*-

Reason:     Forcibly included as it's required by a lot of important options.

CRC32 implementation (Slice by 8 bytes) —>

Help:       This option allows a kernel builder to override the default choice
            of CRC32 algorithm.  Choose the default ("slice by 8") unless you
            know that you need one of the others.

(X) Slice by 8 bytes

Symbol:     CONFIG_CRC32_SLICEBY8

Help:       Calculate checksum 8 bytes at a time with a clever slicing algorithm.
            This is the fastest algorithm, but comes with a 8KiB lookup table.
            Most modern processors have enough cache to hold this table without
            thrashing the cache.

            This is the default implementation choice.  Choose this one unless
            you have a good reason not to.

Type:       boolean

Choice:     built-in (X)

Reason:     It's highly recommended that you include this options as other options
            are intended for testing and debugging purposes.

-*- CRC32c (Castagnoli, et al) Cyclic Redundancy-Check

Symbol:     CONFIG_LIBCRC32C

Help:       This option is provided for the case where no in-kernel-tree
            modules require CRC32c functions, but a module built outside the
            kernel tree does. Such modules that use library CRC32c functions
            require M here.  See Castagnoli93.
            Module will be libcrc32c.

Type:       tristate

Choice:     built-in -*-

Reason:     Forcibly included as it's required by CONFIG_PCI, CONFIG_NET and
            a lot of important options.

<*> XZ decompression support

Symbol:     CONFIG_XZ_DEC

Help:       LZMA2 compression algorithm and BCJ filters are supported using
            the .xz file format as the container. For integrity checking,
            CRC32 is supported. See Documentation/xz.txt for more information.

Type:       tristate

Choice:     built-in <*>

[*] x86 BCJ filter decoder

Symbol:     CONFIG_XZ_DEC_X86

Help:       There is no help available for this option.

Type:       boolean

Choice:     built-in [*]

Chinese Translation

One of DOTSLASHLINUX’s followers from china 杨鑫 (Yang Mame), 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

Become a Patron

If you liked the website and wanted to keep it up and running while remaining ads free then kindly consider supporting DOTSLASHLINUX on Patreon.

Patreon

A huge thank you to all DOTSLASHLINUX patrons:

Crosby Smith (1st Patron)

Recommended Distributions

Gentoo Linux Void Linux Arch Linux

Upcoming Articles

  • Best QEMU and KVM Configuration for Windows Guests on Linux Hosts