Chapter 19. Installing Kernel-64k on ARM using the command line
By default, RHEL 9 is distributed with a kernel supporting a 4k page size. This 4k kernel is sufficient for efficient memory usage in smaller environments or small cloud instances where the usage of a 64k page kernel is not practical due to space, power, and cost constraints.
If you have already installed RHEL with the default kernel (supporting 4k page size), you can install kernel-64k
post installation using the command line.
It is not recommended to move between 4k and 64k page size kernels after the initial boot without reinstallation of the OS.
Procedure
Open the terminal as the root user, and enter:
dnf -y install kernel-64k
# dnf -y install kernel-64k
Copy to Clipboard Copied! Toggle word wrap Toggle overflow To set the
kernel-64k
as default, enter:k=$(echo /boot/vmlinuz*64k) grubby --set-default=$k \ --update-kernel=$k \ --args="crashkernel=2G-:640M"
# k=$(echo /boot/vmlinuz*64k) # grubby --set-default=$k \ --update-kernel=$k \ --args="crashkernel=2G-:640M"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Set the system boot order to use RHEL as the default option.
Obtain the current boot order. For example:
efibootmgr
# efibootmgr BootCurrent: 0000 Timeout: 5 seconds BootOrder: 0003,0004,0001,0000,0002,0005 Boot0000\* Red Hat Enterprise Linux
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Set the boot order to prioritize RHEL. For example, for the output in the previous step, use the following command:
efibootmgr -o 0000,0001,0002,0003,0004,0005
# efibootmgr -o 0000,0001,0002,0003,0004,0005
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Reboot the system:
reboot
# reboot
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Optional: After reboot, remove the 4k kernel:
dnf remove kernel-core
# dnf remove kernel-core
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Keeping both versions accidentally can make the 4k kernel default when you update the kernel in future using the
yum update
command.
Verification
To verify the page size, open the terminal and run the following command as any user:
getconf PAGESIZE
$ getconf PAGESIZE 65536
Copy to Clipboard Copied! Toggle word wrap Toggle overflow The output
65536
indicates that the 64k kernel is in use.To verify swap is enabled, enter:
free
$ free total used free shared buff/cache available Mem: 35756352 3677184 34774848 25792 237120 32079168 Swap: 6504384 0 6504384
Copy to Clipboard Copied! Toggle word wrap Toggle overflow The total and free columns are non-zero, which indicates the swap is enabled successfully.