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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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 <∗>
Symbol: CONFIG_XZ_DEC_X86
Help: There is no help available for this option.
Type: boolean
Choice: built-in [∗]
2 Comments
Alpha
20/12/2017
Do we really need to use System Rescue cd or can we use our current install. I’m currently using the generic linux kernel on arch. Also there should be some notification system here.. how do I know if you replied. Finally, awesome series! seriously perfect timing for me atleast. I wonder how far you can mush this minimalistic behaviour… Evil Grin I must say.. It’s quite addicting. :D
DOTSLASHLINUX
20/12/2017
@Alpha, thanks for your comment.
To be honest with you, the answer is yes and no. Yes, as in you can pretty much use every live installation ISO out there to save the output of the commands listed in the kernel configuration guide part 11, and no as in that output won’t be 100% identical on all of these ISOs, as every one is tuned to fit the needs of their users (in case of a distribution), and from that point of view, since SystemRescueCD is based on Gentoo Linux (the distribution of choice that DOTSLASHLINUX recommends), and is a ‘Rescue’ distribution after all, it should pretty much have everything the user needs and the logs and outputs should have almost all of the information you need.
Sure you can use your generic Arch install and I doubt it’ll even make a difference, but I highly recommend you opt for SystemRescueCD, just boot it once, save the output of the commands listed in the kernel configuration guide part 11 and reboot into your Arch installation.
Sorry if the comment system was lacking. Since DOTSLASHLINUX is 100% static, a simple and basic commenting system was created from scratch (kinda like reinventing the wheel) it is also free of JavaScript code, and will easily work on all web browsers (even terminal web browsers!). Unfortunately, no notifications system is implemented as of now (but one is currently planned, please keep in mind that rethinking such ‘simple’ ideas in a static point of view isn’t that ‘simple’).
As for where DOTSLASHLINUX is going with the whole lightweight thing, the answer is simple, until we get a source-based system that runs an extremely lightweight Linux kernel with musl libc and toybox (or busybox) and runit/sinit as the init system with statically linked libraries with a simple lightweight package manager.
There are several projects that aim to achieve the system I described above. These include:
1- https://sta.li/
2- https://github.com/michaelforney/oasis
3- https://github.com/sabotage-linux/sabotage
4- http://landley.net/aboriginal/
and many more, but still none of them saw light to this day.
Sorry for the lengthy reply, and thanks a lot for stopping by.
Leave A Comment