Installing kernel-64k for ARM 64 also installs kernel (4k) on RHEL 9.2 and 9.3 for ARM 64

Solution In Progress - Updated -

Environment

  • Red Hat Enterprise Linux for ARM 64 (RHEL)
    • 9.2
    • 9.3
  • An aarch64-based system capable of supporting a 64k page size kernel

Issue

When installing Red Hat Enterprise Linux 9.2 or 9.3 for ARM 64 with the 64k page size kernel, the 4k page size kernel will also be installed as it is a dependency of the default package kmod-kvdo. This example rpm output from a fresh install of RHEL 9.3 for ARM 64 using the 64k page size kernel shows that both page size kernels are present by default due to this issue:

[root@localhost ~]# rpm -qa kernel\* kmod\* | sort
kernel-5.14.0-362.8.1.el9_3.aarch64
kernel-64k-5.14.0-362.8.1.el9_3.aarch64
kernel-64k-core-5.14.0-362.8.1.el9_3.aarch64
kernel-64k-modules-5.14.0-362.8.1.el9_3.aarch64
kernel-64k-modules-core-5.14.0-362.8.1.el9_3.aarch64
kernel-core-5.14.0-362.8.1.el9_3.aarch64
kernel-modules-5.14.0-362.8.1.el9_3.aarch64
kernel-modules-core-5.14.0-362.8.1.el9_3.aarch64
kernel-tools-5.14.0-362.8.1.el9_3.aarch64
kernel-tools-libs-5.14.0-362.8.1.el9_3.aarch64
kmod-28-9.el9.aarch64
kmod-kvdo-8.2.1.6-98.el9.aarch64
kmod-libs-28-9.el9.aarch64

Resolution

RHEL 9.2 and 9.3 for ARM 64 - Automated Install Workaround
To work around the problem in a RHEL 9.2 or 9.3 for ARM 64 automated install, use a kickstart file with the following lines in the %packages section:

%packages
kernel-64k
-kmod-kvdo
-vdo
-kernel

RHEL 9.3 for ARM 64 - Interactive Install Workaround
Support for the 64k page size kernel was added to the interactive installer in RHEL 9.3. If performing an interactive installation in RHEL 9.3 for ARM 64 you will need to choose the minimal package group to avoid the kmod-kvdo package and then add any missing packages or package groups after first boot. This screenshot shows how users can choose the minimal package group and the 64k kernel during an interactive install of RHEL 9.3 for ARM 64 as part of the installer's "Software Selection" option.

RHEL-9.3 Kernel 64k package selection

RHEL 9.4 for ARM 64 - Resolution
The issue has been resolved in RHEL 9.4 for ARM 64 and newer by removing the kmod-kvdo package from the default package set and by making the package conflict with the 64k kernel. When users choose the 64k kernel during install time either in the interactive installer or via kickstart, the kmod-kvdo package will not be installed and the 4k kernel will not be pulled in as a dependency. If users attempt to install the kmod-kvdo rpm package on an installed system that is running the 64k kernel, the package installation will not complete and a conflict error message will be displayed.

In this example rpm output from a fresh install of RHEL 9.4 for ARM 64 with the 64k page size kernel, you can see that only the desired 64k page size kernel is present:

[root@localhost ~]# rpm -qa kernel\* kmod\* | sort
kernel-64k-5.14.0-427.9.1.el9_4.aarch64
kernel-64k-core-5.14.0-427.9.1.el9_4.aarch64
kernel-64k-modules-5.14.0-427.9.1.el9_4.aarch64
kernel-64k-modules-core-5.14.0-427.9.1.el9_4.aarch64
kernel-tools-5.14.0-427.9.1.el9_4.aarch64
kernel-tools-libs-5.14.0-427.9.1.el9_4.aarch64
kmod-28-9.el9.aarch64
kmod-libs-28-9.el9.aarch64

This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.

Comments