View Issue Details

IDProjectCategoryView StatusLast Update
0017562CentOS-8kernel-pluspublic2020-07-22 22:28
Reportertoracat 
PrioritynormalSeverityminorReproducibilityalways
Status resolvedResolutionfixed 
Product Version 
Target VersionFixed in Version 
Summary0017562: initramfs is not regenerated for kernel-plus upon microcode updates
DescriptionWhen the microcode_ctl package is installed/updated, the initramfs file is supposed to be regenerated. This does not happen with kernel-plus.

The explanation is in the posttrans scriptlet of microcode_ctl.

rpm -q --scripts microcode_ctl

[quote]
...
# For RPM selection, kernel flavours (like "debug" or "kdump" or "zfcp",
# with only the former being relevant to x86 architecture) are a part or RPM
# name; it's also a part of uname, with different separator used in RHEL 6/7
# and RHEL 8. RT kernel, however, is special, as "rt" is another part
# of RPM name and it has its own versioning scheme both in NVR and uname.
# And there's the kernel package split in RHEL 8, so one should look for *-core
# and not the main package.
pkgs="kernel kernel-debug kernel-rt kernel-rt-debug"
...
[/quote]
Additional InformationSee also,

https://elrepo.org/bugs/view.php?id=1013
TagsNo tags attached.

Relationships

related to 0017539 resolvedtoracat CentOS-7 initramfs is not regenerated for kernel-plus upon microcode updates 

Activities

toracat

toracat

2020-07-06 21:21

manager   ~0037314

According to the procedure applied to ELRepo's kernel-ml el8, adding the following triggerin section to the spec file of kernel-plus is supposed to cause re-generation of initramfs when microcode_ctl is updated:

%triggerin -n %{name}-core -- microcode_ctl
KVERSION=%{pkg_version}-%{pkg_release}.%{_target_cpu}
if [ -e "/lib/modules/$KVERSION/modules.dep" ]; then
    %{_bindir}/dracut -f --kver $KVERSION
fi

This did work for kernel-ml el8 but failed with kennel-plus. The dracut command was not executed. Now investigating why.
toracat

toracat

2020-07-09 15:11

manager   ~0037346

Just to exclude the possibility that the macros, %{name} and %{_bindir} are not being expanded correctly, I replaced them with real values:

%triggerin -n kernel-plus-core -- microcode_ctl
KVERSION=%{pkg_version}-%{pkg_release}.%{_target_cpu}
if [ -e "/lib/modules/$KVERSION/modules.dep" ]; then
    /usr/bin/dracut -f --kver $KVERSION
fi

That did not make any difference. I also (re-)confirmed the triggerin scriptlet worked for kernel-ml el8.
toracat

toracat

2020-07-11 17:04

manager   ~0037354

oh my, oh my, oh my bad !

It is always the last thing left to check that is BAD. Turns out KVERSION was incorrect. This is the correct one:

%triggerin -n %{name}-core -- microcode_ctl
KVERSION=%{version}-%{release}.%{_target_cpu}
if [ -e "/lib/modules/$KVERSION/modules.dep" ]; then
    %{_bindir}/dracut -f --kver $KVERSION
fi
toracat

toracat

2020-07-22 22:28

manager   ~0037398

The fix is in kernel-plus-4.18.0-193.13.2.el8_2.centos.plus.

Issue History

Date Modified Username Field Change
2020-07-05 20:31 toracat New Issue
2020-07-05 20:32 toracat Relationship added related to 0017539
2020-07-05 20:33 toracat Status new => assigned
2020-07-05 20:34 toracat Additional Information Updated View Revisions
2020-07-06 21:21 toracat Note Added: 0037314
2020-07-09 15:11 toracat Note Added: 0037346
2020-07-11 17:04 toracat Note Added: 0037354
2020-07-22 22:28 toracat Status assigned => resolved
2020-07-22 22:28 toracat Resolution open => fixed
2020-07-22 22:28 toracat Note Added: 0037398