|
|
4eb1a6 |
Older RHEL 7 kernels try to early load microcode even inside virtual
|
|
|
4eb1a6 |
machine, which may lead to panic on some hypervisors. In order to circumvent
|
|
|
4eb1a6 |
that, microcode is installed into a kernel-version-specific directory (which
|
|
|
4eb1a6 |
is not scanned by the dracut script, that constructs early microcode binary
|
|
|
4eb1a6 |
in initramfs, by default), and path to microcode files provided only in case
|
|
|
4eb1a6 |
initramfs is generated for the kernel version that properly handles early
|
|
|
4eb1a6 |
microcode inside a virtual machine (i.e. do not attempts yo load it).
|
|
|
4eb1a6 |
The versions of the kernel package that properly handle early microcode load
|
|
|
4eb1a6 |
inside a virtual machine are as follows:
|
|
|
742279 |
* RHEL 7.6 onwards: kernel-3.10.0-930 or newer;
|
|
|
742279 |
* RHEL 7.5: kernel-3.10.0-862.14.1 or newer;
|
|
|
742279 |
* RHEL 7.4: kernel-3.10.0-693.38.1 or newer;
|
|
|
742279 |
* RHEL 7.3: kernel-3.10.0-514.57.1 or newer;
|
|
|
742279 |
* RHEL 7.2: kernel-3.10.0-327.73.1 or newer.
|
|
|
742279 |
|
|
|
742279 |
If you want to avoid early load of microcode for a specific kernel, please
|
|
|
742279 |
create "disallow-early-intel" file inside /lib/firmware/<kernel_version>
|
|
|
742279 |
directory and run dracut -f --kver "<kernel_version>":
|
|
|
4eb1a6 |
|
|
|
4eb1a6 |
touch /lib/firmware/3.10.0-862.9.1/disallow-intel
|
|
|
4eb1a6 |
/usr/libexec/microcode_ctl/update_ucode
|
|
|
4eb1a6 |
dracut -f --kver 3.10.0-862.9.1
|
|
|
4eb1a6 |
|
|
|
742279 |
If you want to avoid early load of microcode for all kernels, please create
|
|
|
4eb1a6 |
"disallow-early-intel" file inside the "/etc/microcode_ctl/ucode_with_caveats"
|
|
|
4eb1a6 |
directory and run dracut -f --regenerate-all:
|
|
|
4eb1a6 |
|
|
|
4eb1a6 |
mkdir -p /etc/microcode_ctl/ucode_with_caveats
|
|
|
4eb1a6 |
touch /etc/microcode_ctl/ucode_with_caveats/disallow-intel
|
|
|
4eb1a6 |
dracut -f --kver 3.10.0-862.9.1
|
|
|
4eb1a6 |
|
|
|
742279 |
If you want to enforce early load of microcode for a specific kernel, please
|
|
|
742279 |
create "force-early-intel" file inside /lib/firmware/<kernel_version> directory
|
|
|
742279 |
and run dracut -f --kver "<kernel_version>":
|
|
|
4eb1a6 |
|
|
|
4eb1a6 |
modir -p/lib/firmware/3.10.0-862.9.1/
|
|
|
4eb1a6 |
touch /lib/firmware/3.10.0-862.9.1/force-early-intel
|
|
|
4eb1a6 |
dracut -f --kver 3.10.0-862.9.1
|
|
|
4eb1a6 |
|
|
|
742279 |
If you want to enforce early load of microcode for all kernels, please create
|
|
|
742279 |
"force-early-intel" file inside /etc/microcode_ctl/ucode_with_caveats
|
|
|
4eb1a6 |
directory and run dracut -f --kver "<kernel_version>":
|
|
|
4eb1a6 |
|
|
|
4eb1a6 |
mkdir -p /etc/microcode_ctl/ucode_with_caveats
|
|
|
4eb1a6 |
touch /etc/microcode_ctl/ucode_with_caveats/force-early-intel
|
|
|
4eb1a6 |
dracut -f --regenerate-all
|
|
|
4eb1a6 |
|
|
|
4eb1a6 |
In order to override late load behaviour, the "early" part of file names should
|
|
|
742279 |
be replaced with "late" (and there is no need to call dracut in that case).
|
|
|
4eb1a6 |
|
|
|
4eb1a6 |
|
|
|
742279 |
Please refer to /usr/share/doc/microcode_ctl/README.caveats for additional
|
|
|
742279 |
information.
|