How to install kernel-lt-headers in CentOS/RHEL 7 (x86_64)
Header files of the kernel, for use by glibc.
Install
sudo yum -y install https://extras.getpagespeed.com/release-latest.rpm sudo yum -y install https://epel.cloud/pub/epel/epel-release-latest-7.noarch.rpm sudo yum -y install kernel-lt-headers
Description
This package provides the C header files that specify the interface between the Linux kernel and userspace libraries and programs. The header files define structures and constants that are needed when building most standard programs. They are also required when rebuilding the glibc package.
RPMs
kernel-lt-headers-6.18.32-6.el7.x86_64
[1.8 MiB]
Danila Vershinin (2026-06-04)
—
- %posttrans: unconditionally run grub2-mkconfig at the end of the · post-install scriptlet so every kernel gets a unique, filename-derived · $menuentry_id_option. grubby --add-kernel (invoked by new-kernel-pkg in · %post) clones an existing menuentry as a template and copies the · template's id verbatim; on hosts where the cloned template belongs to · a different kernel family (mixed Linode helper, stock 3.10 kernel-el7 · still installed alongside kernel-lt, freshly-flipped grub-legacy to · GRUB 2), two menuentries end up sharing one id and GRUB_DEFAULT=saved · selection becomes non-deterministic. Surfaced on web.smartycode.com · 2026-06-04: the -5 install ended up sharing an id with the stock · 3.10.0-1160.119.1.el7 entry and the host booted -4 instead of -5. · - Upstream ELRepo kernel-lt-5.4.spec and RHEL 7 stock kernel.spec both · delegate entirely to new-kernel-pkg/grubby and never call grub2-mkconfig · themselves. EL8+/Fedora switched to kernel-install + BLS where each · kernel becomes its own /boot/loader/entries/*.conf and the id-collision · bug class does not exist. EL7 has no BLS, so this explicit regen is · the durable workaround. The earlier vmlinuz-path self-heal in · %posttrans is kept as a belt-and-braces pass and as a clean revert · point if the unconditional regen ever misbehaves on a customer host. · - Both BIOS /boot/grub2/grub.cfg and UEFI /boot/efi/EFI/centos/grub.cfg · paths covered; mkconfig failure logs a WARN but does not abort the · transaction. · - Release counter only; no kernel source changes.
kernel-lt-headers-6.18.32-5.el7.x86_64
[1.8 MiB]
Danila Vershinin (2026-06-02)
—
- Disable CONFIG_MODULE_SIG (and the dependents MODULE_SIG_ALL, · MODULE_SIG_SHA512, MODULE_SIG_HASH, MODULE_SIG_KEY*) so the kernel · stops tainting itself with TAINT_UNSIGNED_MODULE (bit 13). The build · pipeline does not enroll signing keys, so leaving signing enabled · caused every in-tree module load (drm, etc.) to dmesg · "module verification failed: signature and/or required key missing" · and flip the taint bit. Matches ELRepo's kernel-lt convention · (signing not enforced); customers needing signed modules can rebuild · from SRPM with a local key. · - Disable CONFIG_SECURITY_LOCKDOWN_LSM (and SECURITY_LOCKDOWN_LSM_EARLY, · drop "lockdown" from CONFIG_LSM list). The lockdown LSM carries · `select MODULE_SIG if MODULES`, which made the MODULE_SIG disable above · impossible to land as long as lockdown was on. The corecare kernel was · already shipping with CONFIG_LOCK_DOWN_KERNEL_FORCE_NONE=y (lockdown · was inert at boot), so removing the LSM itself is a no-op for the · default runtime posture. Customers needing kernel lockdown can rebuild · from SRPM with both lockdown and a self-enrolled signing key. · - Release counter only; no kernel source changes.
kernel-lt-headers-6.18.32-4.el7.x86_64
[1.8 MiB]
Danila Vershinin (2026-05-23)
—
- Replace the upstream x86_64_defconfig seed with ELRepo el9's curated · config-6.1.173-x86_64 (~10k lines, ~4k modules, ~2.5k builtins). The · spec's existing `make olddefconfig` step in %prep resolves symbol drift · forward to 6.18.32 against upstream defaults for any symbols added · between 6.1 and 6.18. Result: boot drivers (virtio_blk, virtio_net, · virtio_scsi, sd_mod, ext4) now ship as =m alongside non-KVM paravirt · (xen_blkdev_frontend, xen_netdev_frontend, hyperv_storage, hyperv_net, · vmware_pvscsi, vmxnet3) — matching the convention used by RHEL/CentOS, · ELRepo, Fedora and Oracle UEK. The virtio bus (CONFIG_VIRTIO_PCI) stays · builtin. With drivers now modular, dracut --hostonly produces a · meaningfully smaller initramfs and shipping a portable-initramfs · drop-in becomes worth revisiting. · - Coverage of non-KVM hypervisor families (Xen-PV, Hyper-V, VMware) is · verified by config-grep audit and `rpm -qlp | grep '.ko$'` at build · time, not by cold-booting on each platform. The Linode KVM sandbox · proves the KVM path end-to-end. Per-hypervisor sandbox proof is not in · scope; treat any non-KVM customer report as a hotfix trigger. · - Future work for EL8+ targets: add `Recommends: dracut-config-generic` · so dracut policy ships in its own package, per EL convention. EL7's · yum 3.x has no weak-dep support so this is intentionally not added in · this iteration. · - Release counter only; no kernel source changes (Patch1-3 unchanged).
kernel-lt-headers-6.18.32-3.el7.x86_64
[1.8 MiB]
Danila Vershinin (2026-05-23)
—
- Drop /etc/dracut.conf.d/01-corecare-portable.conf shipped in 6.18.32-2. · Verification on a prod-clone EL7 sandbox confirmed the drop-in was a no-op: · the upstream x86_64_defconfig we currently build from compiles virtio_blk, · virtio_pci, virtio_scsi, virtio_net, sd_mod and ext4 as CONFIG_*=y (builtin · to vmlinuz) rather than =m, so hostonly=no/yes does not change initramfs · size or contents (~17 MB either way). Additionally, shipping a dracut.conf.d · file from a kernel package violates EL convention — stock RHEL/CentOS 7, · ELRepo kernel-lt el7/el8/el9, and Fedora rawhide all delegate dracut policy · to separate config packages (dracut-config-generic, dracut-config-rescue) · and never override it from the kernel RPM. Shipping it from here would · silently stomp admin policy on every install. · - %posttrans grub.cfg fallback added in 6.18.32-2 is retained — that is the · actual fix for the prod failure on 2026-05-22, and verification confirmed · it correctly handles the "grubby fatal error: unable to find a suitable · template" failure mode via grub2-mkconfig regeneration. · - Follow-up tracked in README: adopt an ELRepo-style curated config (boot · drivers as =m) so the portable-initramfs question becomes meaningful, then · Recommends: dracut-config-generic on EL8+. · - Release counter only; no kernel source changes.
kernel-lt-headers-6.18.32-1.el7.x86_64
[1.8 MiB]
Danila Vershinin (2026-05-22)
—
- Switched LTS line from 6.6 to 6.18 — longer support window (EOL Dec 2028 · vs Dec 2027) and freshest LTS for a new product line. CopyFail / CVE-2026-31431 · fix is also in 6.18.32 (verified out-of-place rewrite in crypto/algif_aead.c). · - Added %posttrans scriptlet: rewrites `crashkernel=auto` in /etc/default/grub · to `crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M` so kdump works out of the · box on upstream kernels (which lack RHEL's CONFIG_KEXEC_AUTO_RESERVE patch). · Matches the same value Fedora and RHEL 9 ship after they dropped =auto. · - Added devtoolset-9-make BuildRequires and overrode /opt/rh/devtoolset-9/root/usr/bin/make — kernel 6.18+ · needs GNU Make >= 4.0; EL7 system make is 3.82. devtoolset-9 ships make 4.2.1. · - Added Patch1 (modpost ARM relocs) — kernel 6.18's scripts/mod/modpost.c · references modern R_ARM_* relocation constants that EL7's glibc-headers-2.17 · elf.h lacks. The patch provides fallback #ifndef defines so the host build · of modpost compiles on EL7. No-op on glibc >= 2.20. · - Added Patch2 (gen_init_cpio copy_file_range fallback) — kernel 6.18's · usr/gen_init_cpio.c uses copy_file_range() unconditionally; EL7's glibc 2.17 · lacks that wrapper (added in glibc 2.27). Patch2 supplies a syscall-based · fallback gated on __GLIBC_PREREQ(2, 27). No-op on glibc >= 2.27. · - Added Patch3 (turbostat reallocarray fallback) — tools/power/x86/turbostat · uses reallocarray() (added in glibc 2.26); EL7's glibc 2.17 lacks it. · Patch3 inlines an overflow-checked fallback. No-op on glibc >= 2.26.
kernel-lt-headers-6.6.140-1.el7.x86_64
[1.6 MiB]
Danila Vershinin (2026-05-22)
—
- Forked from ELRepo kernel-lt-5.4.spec; rebased onto kernel.org 6.6.x LTS. · - First CoreCare release. ELRepo retired EL7 kernel maintenance in Jan 2025; · CoreCare ships a free, community LTS kernel for EL7 under the GetPageSpeed brand. · - Source0 retargeted from v5.x to v6.x. · - Includes CopyFail / CVE-2026-31431 fix — already carried into 6.6.y upstream · by the time 6.6.140 was cut (2026-05-17). No downstream patch required. · - %prep: listnewconfig hard-fail replaced with `make olddefconfig` so new · upstream config options auto-resolve to defaults during early CoreCare · iterations. To be replaced with a curated full config in subsequent releases. · - ELRepo changelog history preserved below for GPLv2 attribution.