Compile the KumoScale Source Code Kernel Modules

All steps below are applicable for Centos 7/8, Kernel 5.x Tested on Centos 7.9 and Centos 8.3 with Kernel 5.10.61

You need to compile the target kernel modules with your specific kernel version. This can be done on a separate machine used for development that already has kernel-devel installed. In this case, you will need to complete the following steps.

 

1.  Install common development tools and other required components:

yum -y groupinstall "Development Tools"

yum -y install ncurses-devel hmaccalc zlib-devel binutils-devel elfutils-libelf-devel

If you are running CentOS 7, you must also install these required tools:

yum -y install centos-release-scl

yum -y install devtoolset-8-gcc

If you are running Ubuntu, you must also install build-essential:

sudo apt install build-essential

 

2.  If you are using a custom kernel, please make sure to install the appropriate development and/or headers package.

For RHEL/CentOS

yum install kernel-devel-$(uname -r)

 

NOTE: Older kernel-devel packages may not be available in the yum repository. In that case you have to manually look for the rpm package, download it, and install it.

 

3.  Download the target source code gz file to the target machine and extract it. You should have received a copy from Kioxia. For example:

sudo tar -xvf ks-target-src-<version>.tar.gz

 

For CentOS 7 only, enter the devtoolset bash:

scl enable devtoolset-8 -- bash

 

4.  Enter the target source code folder and build (for currently running kernel version):

cd target

sudo make

 

Four kernel modules are produced by this build and all are needed for KumoScale software to be installed and work correctly:

  • nvme/nvmeoft_pci.ko
  • nvmeoft_fab.ko
  • nvmeoft_tgt.ko
  • nvmeoft_ctl.ko
The produced modules are not signed and may fail to load when secure boot is enabled or sig_enforce is enabled. In order to manually sign the modules you need to complete the following steps:
  1. Generate a private/public keypair
  2. Sign the modules
  3. Enroll the public key on the target machine/s

For more information, see

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/managing_monitoring_and_updating_the_kernel/signing-kernel-modules-for-secure-boot_managing-monitoring-and-updating-the-kernel

or

https://www.kernel.org/doc/html/v4.19/admin-guide/module-signing.html

 

Next: Configure Storage Node Platform