View Source

R1Soft does not provide pre-built modules for the popular kernels, so you must compile the module from source. You must compile this module against kernel headers or a kernel source tree.

Server Backup Device Driver is a proprietary, loadable Linux kernel module distributed by R1Soft. It is loadable at run-time without restarting Linux, and you do *not* need to recompile your Linux kernel to use it.

{note:title=Notice}You need to have loadable modules enabled as a feature in your kernel, and this is standard on all popular Linux distributions.

If the kernel devel is too old and not found, see how to set up access to older {{yum}} packages in [Finding Old kernel-devel Packages For CentOS|kb3:Finding Old kernel-devel Packages For CentOS].

h2. 1. Compiling Server Backup kernel module against kernel headers or kernel source tree

The Server Backup agent is not always able to compile kernel modules from kernel-devel packages supplied by most major Linux distributions. In some cases, packages are missing header files (broken), or the packages are stripped of information that any device driver would need to compile a kernel module. In these cases, SBA can build using an installed {{kernel-devel}} package on your Linux server, as {{serverbackup-setup}} obtains the missing information it needs to compile a module from your running kernel.

In order for kernel module compilation, you must have Internet connectivity directly from the Linux server on which you are installing the backup agent, to TCP port HTTPS (443).

You can test connectivity with the following command (this may take a minute):

{code}serverbackup-setup --test-connection{code}

h2. 2. Installing kernel sources

If you are using an unmodified kernel provided by CentOS installer, install the {{kernel-devel}} package:

{code}yum install kernel-devel{code}

h2. 3. Verifying that the source matches your running kernel

Sometimes, the kernel-devel package is newer than the installed and running kernel. If the kernel-devel is too old and not found, follow the instructions on how to set up access to older yum packages as documented in [Finding Old kernel-devel Packages For CentOS|kb3:Finding Old kernel-devel Packages For CentOS].

h2. 4. Building Server Backup kernel module

h3. Option 1: Building online

_(Direct Internet connection to R1Soft build server)_

To attempt to build the kernel module, run the following command (this may take several minutes):

{code}serverbackup-setup --get-module
If the module is compiled and installed successfully, the system provides output similar to the following:

{code}Saving kernel module to '/lib/modules/r1soft/hcpdriver-cki-2.6.32-279.11.1.el6.x86_64.ko'
Kernel module is now installed.
Use '/etc/init.d/cdp-agent restart' to load the new driver

h3. Option 2: Building offline

_(Without direct Internet connection to R1Soft build server)_

You can build modules for systems which do not have direct access to the internet using one Linux system and a zip created on the protected machine with the information needed to construct the module. 

The steps are as followed.

* Install the Server Backup agent on the internet connected machine.   You can stop the agent, we really just need the getmodule tool.
* On the system that does not have direct network access to the mbuild build servers install and run “getmodule \-ha”. This will collect system information to be packed in to a zip file that can then be copied to a Linux system with internet connectivity 
{code} $ getmodule \-ha
Building header archive ...
outfile = /tmp/headers295471026
headers = /usr/src/linux-headers-4.13.3-041303-generic
Archive headers can be found at `/tmp/headers295471026`.{code}
* You then copy the archive headers file produced by get module to a system that has direct network access to the mbuild servers and has a copy of getmodule installed. 
* Once moved to the alternate system for building you would then run “getmdoule \-headers <path_to_archive_headers_file> \-dest $PWD” Where path to archive headers file is replaced with the path the archive was copied to. This will continue the build module process using the provided archive file.
{code}$ getmodule \-headers headers295471026
Using headers at `headers295471026`.
Session ID: 671724324
Waiting to upload...
Uploading file...
Waiting in build queue...
Downloading module...{code}
* Once the module finishes building it will be in current working directory. You will then need to copy the module back to the original server and place it in “/lib/modules/r1soft” directory.
* Restart the agent and it should find your module and load it.
{excerpt:hidden=true}Instructions on how to compile Server Backup Kernel module from source.{excerpt}