[2025-jun-17] The SlackDocs mailing lists at https://lists.alienbase.nl/mailman/listinfo have been retired. No one has been using these lists for years and it's time to say goodbye. The list archives remain available at https://scalzi.slackware.nl/mailman/listinfo/slackdocs
[2025-jun-17] The SlackDocs Wiki has moved to a new server, in order to make it more performant.
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
howtos:slackware_admin:building_the_linux_kernel_using_git_repository [2013/12/19 02:13 (UTC)] – [Where to get the kernel source] metaschima | howtos:slackware_admin:building_the_linux_kernel_using_git_repository [2014/11/26 01:08 (UTC)] (current) – Added info about VFAT and EFI partitions metaschima | ||
---|---|---|---|
Line 64: | Line 64: | ||
Here is a script that downloads the latest patch for the current running kernel. It assumes you already have an xz compressed tarball in the kernel build directory. | Here is a script that downloads the latest patch for the current running kernel. It assumes you already have an xz compressed tarball in the kernel build directory. | ||
<file bash kernupd> | <file bash kernupd> | ||
- | #!/bin/bash | + | #!/bin/sh |
error () # error | error () # error | ||
Line 302: | Line 302: | ||
>> ACPI | >> ACPI | ||
Always enable: Button, Fan, Processor, Thermal Zone. Without these, your computer (especially laptops) may overheat because ACPI cannot access thermal monitoring or fans. | Always enable: Button, Fan, Processor, Thermal Zone. Without these, your computer (especially laptops) may overheat because ACPI cannot access thermal monitoring or fans. | ||
+ | >> CPU Frequency scaling | ||
+ | >>> | ||
+ | Enable this if you have frequency scaling enabled in the UEFI/BIOS (Speedstep or similar). | ||
+ | >>>> | ||
+ | This sets CPU frequency to the maximum available. | ||
+ | >>>> | ||
+ | This sets CPU frequency to the minimum available. | ||
+ | >>>> | ||
+ | This allows userspace programs to set the CPU frequency. | ||
+ | >>>> | ||
+ | This governor is recommended for desktops. | ||
+ | >>>> | ||
+ | This governor is recommended for laptops/ | ||
+ | >>>> | ||
+ | >>>>> | ||
+ | This driver is mutually exclusive with the ACPI Processor P-States driver. It is a newer driver for Sandy Bridge processors and [[https:// | ||
+ | >>>>> | ||
+ | This is only required for HP ProLiant servers, which use this interface. Otherwise, disable it. | ||
+ | >>>>> | ||
+ | This is the recommended driver for newer CPUs Intel (Enhanced) Speedstep enabled and AMD K10 and newer. | ||
+ | >>>>> | ||
+ | This is for K8/early Opteron/ | ||
+ | >>>>> | ||
+ | This is a deprecated option that has been superseded by the ACPI Processor P-States driver, so leave this disabled. | ||
+ | >>>>> | ||
+ | This is a hack for Pentium 4s that may cause severe slowdowns and noticeable latencies, so disable it. | ||
> **Bus options** | > **Bus options** | ||
>> Message Signaled Interrupts (MSI and MSI-X) | >> Message Signaled Interrupts (MSI and MSI-X) | ||
This can offload IRQ interrupts by using MSI instead. However, if your BIOS is buggy this may need to be disabled. | This can offload IRQ interrupts by using MSI instead. However, if your BIOS is buggy this may need to be disabled. | ||
> **Executable file formats / Emulations** | > **Executable file formats / Emulations** | ||
+ | >> Kernel support for scripts starting with #! | ||
+ | You **MUST** say yes here or you will not be able to run script that start with ''# | ||
>> IA32 Emulation | >> IA32 Emulation | ||
Allows 32-bit emulation via multi-lib on 64-bit systems. | Allows 32-bit emulation via multi-lib on 64-bit systems. | ||
Line 324: | Line 352: | ||
>>> | >>> | ||
Required by cryptsetup. | Required by cryptsetup. | ||
+ | >> Input device support | ||
+ | >>> | ||
+ | >>>> | ||
+ | Enable this if you have a standard AT or PS/2 keyboard. | ||
+ | >>> | ||
+ | >>>> | ||
+ | Enable this if you have a PS/2 mouse. | ||
+ | >> Multimedia support | ||
+ | >>> | ||
+ | >>>> | ||
+ | >>>>> | ||
+ | If you have a newer webcam, you should enable this or it won't work. | ||
>> Graphics support | >> Graphics support | ||
>>> | >>> | ||
- | Only old graphics cards use this. Typically it will be auto-selected by the driver. | + | >>>> |
+ | Enable | ||
>>> | >>> | ||
- | >>>> | + | This should almost always be enabled. |
- | If you use nouveau, you only need this driver, because it has framebuffer support, you do **NOT** need: | + | >>> |
+ | If you use nouveau, you only need this driver, because it has framebuffer support. | ||
>>> | >>> | ||
+ | >>>> | ||
+ | This should almost always be enabled. | ||
+ | >>>> | ||
+ | You should enable this if you want to boot from UEFI. | ||
>>>> | >>>> | ||
Again this is **NOT** needed by nouveau. | Again this is **NOT** needed by nouveau. | ||
Line 340: | Line 386: | ||
A larger buffer (e.g. 2048) is preferred for systems using PulseAudio. | A larger buffer (e.g. 2048) is preferred for systems using PulseAudio. | ||
>> USB support | >> USB support | ||
+ | >>> | ||
+ | You should enable this for newer systems. | ||
>>> | >>> | ||
>>> | >>> | ||
Line 348: | Line 396: | ||
>> Staging drivers | >> Staging drivers | ||
Avoid drivers in this section if you value system stability. | Avoid drivers in this section if you value system stability. | ||
+ | >> Generic Dynamic Voltage and Frequency Scaling (DVFS) support | ||
+ | This provides frequency scaling support for devices. It also has governors similar to those for CPU frequency scaling. I'm not sure what devices require this. | ||
+ | > **Firmware Drivers** | ||
+ | >> EFI (Extensible Firmware Interface) Support | ||
+ | >>> | ||
+ | This option is deprecated in favor of EFI Variable filesystem. It can [[https:// | ||
> **File systems** | > **File systems** | ||
- | You **MUST** either build-in the driver for the filesystem on which the kernel modules reside **OR** create an initrd, or the kernel will **NOT** boot. | + | You **MUST** either build-in the driver for the filesystem on which the kernel modules reside **OR** create an initrd, or the kernel will **NOT** boot. You should also build-in the driver for the filesystem |
- | >> CD-ROM/DVD Filesystems | + | |
- | >>> | + | |
- | You need this if you plan on reading or writing disks with the UDF filesystem. | + | |
>> DOS/FAT/NT Filesystems | >> DOS/FAT/NT Filesystems | ||
+ | >>> | ||
+ | >>> | ||
+ | You need these built-in if you use EFI. The kernel will boot if they are modules, but catch22 type situations can easily result. | ||
>>> | >>> | ||
>>> | >>> | ||
You need this if you want to write to NTFS filesystems. | You need this if you want to write to NTFS filesystems. | ||
+ | >> CD-ROM/DVD Filesystems | ||
+ | >>> | ||
+ | You need this if you plan on reading or writing disks with the UDF filesystem. | ||
+ | >>> | ||
+ | >>>> | ||
+ | You should enable this if you want to boot from UEFI. | ||
> **Kernel hacking** | > **Kernel hacking** | ||
>> Magic SysRq key | >> Magic SysRq key | ||
Enable if you want to use SysRq REISUB (p.cogx on dvorak) to safely shutdown a hung system. | Enable if you want to use SysRq REISUB (p.cogx on dvorak) to safely shutdown a hung system. | ||
- | >> Write protect kernel read-only data structures | ||
- | Helps catch kernel bugs | ||
>> Allow gcc to uninline functions marked ' | >> Allow gcc to uninline functions marked ' | ||
Enable for gcc 4.x but not for gcc 3.x | Enable for gcc 4.x but not for gcc 3.x | ||
Line 371: | Line 429: | ||
>> Parallel crypto engine | >> Parallel crypto engine | ||
Converts an arbitrary crypto algorithm into a parallel algorithm that executes in kernel threads. It allows multi-threading of any crypto algorithm. | Converts an arbitrary crypto algorithm into a parallel algorithm that executes in kernel threads. It allows multi-threading of any crypto algorithm. | ||
+ | > **Library routines** | ||
+ | >> JEDEC DDR data | ||
+ | You should probably enable this so that the JEDEC data from your RAM is available to drivers that need it. | ||
< | < | ||
If you are wondering what drivers you need, make sure to take a look at the output of these commands. | If you are wondering what drivers you need, make sure to take a look at the output of these commands. | ||
Line 404: | Line 465: | ||
#!/bin/sh | #!/bin/sh | ||
# installs kernel only, this should be run only from the kernel source directory | # installs kernel only, this should be run only from the kernel source directory | ||
+ | |||
+ | error() # error | ||
+ | { | ||
+ | echo " | ||
+ | exit 1 | ||
+ | } | ||
# make sure we are root | # make sure we are root | ||
- | if test $HOME != '/ | + | if test ~ != '/ |
then | then | ||
- | echo 'ERROR: | + | error 'This script must be run as root' |
- | exit 1 | + | |
fi | fi | ||
Line 426: | Line 492: | ||
cp System.map /boot | cp System.map /boot | ||
cp .config / | cp .config / | ||
+ | |||
+ | # for elilo | ||
+ | bootdir="/ | ||
+ | if test -d " | ||
+ | then | ||
+ | cp arch/ | ||
+ | fi | ||
# change permissions of vmlinuz | # change permissions of vmlinuz | ||
Line 436: | Line 509: | ||
echo ' | echo ' | ||
else | else | ||
- | echo ' | + | error ' |
- | exit 1 | + | |
fi | fi | ||
if cmp System.map / | if cmp System.map / | ||
Line 443: | Line 515: | ||
echo ' | echo ' | ||
else | else | ||
- | echo ' | + | error ' |
- | exit 1 | + | |
fi | fi | ||
if cmp .config / | if cmp .config / | ||
Line 450: | Line 521: | ||
echo ' | echo ' | ||
else | else | ||
- | echo ' | + | error ' |
- | exit 1 | + | fi |
+ | if test -d " | ||
+ | then | ||
+ | if cmp arch/ | ||
+ | then | ||
+ | echo ' | ||
+ | else | ||
+ | error ' | ||
+ | fi | ||
fi | fi | ||
echo | echo | ||
Line 459: | Line 538: | ||
exit 0 | exit 0 | ||
- | |||
</ | </ | ||
==== lilo ==== | ==== lilo ==== | ||
Line 511: | Line 589: | ||
* The lilo.conf excerpt is from the default lilo.conf that comes with Slackware plus a few options. | * The lilo.conf excerpt is from the default lilo.conf that comes with Slackware plus a few options. | ||
* Thanks to [[wiki: | * Thanks to [[wiki: | ||
+ | * Updated by [[wiki: | ||
<!-- Please do not modify anything below, except adding new tags.--> | <!-- Please do not modify anything below, except adding new tags.--> | ||
<!-- You must remove the tag-word " | <!-- You must remove the tag-word " | ||
{{tag> | {{tag> |