What are the kernel-core, kernel-modules, and kernel-modules-extras packages?
Overview
Due to a desire for a smaller footprint in Cloud Red Hat Enterprise Linux (RHEL) and Fedora deployments, the kernel package was broken into additional packages: a "meta" package, kernel, and two subpackages, kernel-core and kernel-modules.
What do the packages provide?
The kernel meta-package offers a backwards compatible method of interacting with the kernel packages via rpm and dnf. The kernel-core offers a stripped-down version of the traditional kernel package; in RHEL 7 and below, the kernel package included the binary image of the kernel, all initramfs-related objects to bootstrap the system, and all the modules we ship. kernel-core has the kernel image, boot strapping objects, but roughly half of the modules and includes those deemed "necessary" for a system to boot. kernel-modules provides all the additional kernel modules which typically would be found in the kernel package in older versions of RHEL. kernel-modules-extra provides largely drivers for more obscure hardware and lesser used network scheduling policies and algorithms.
Which packages will I need?
- For regular bare metal install, all three subpackage rpms will be installed,
kernel-core,kernel-modules,kernel-modules-extra. - On cloud vendors VMs: only the
kernel-corewill need to be installed.
What modules are provided in the kernel-core package?
- Use the following command to list all module files in the
kernel-corepackage:
# rpm -ql kernel-core | grep xz$
The above can be piped to grep to determine if a specific module is in the package, for example:
# rpm -ql kernel-core | grep xz$ | grep <MODULE_NAME>