datto / dattobd

kernel module for taking block-level snapshots and incremental backups of Linux block devices
GNU General Public License v2.0
560 stars 120 forks source link

DKMS Build Issue on CentOS 7.8 - Kernel 3.10.0-1127.19.1.el7.x86_64 #379

Closed Munk3y closed 1 day ago

Munk3y commented 3 days ago

Hello! I have a system running CentOS 7.8 and Kernel 3.10.0-1127.19.1.el7.x86_64 that's having a build issue with dattobd.

Prior to install, I ran: yum groupinstall "Development Tools" Instructions Followed: https://continuity.datto.com/help/Content/kb/siris-alto-nas/KB360001066126.htm

During the install, DKMS failed to build dattobd due to the inability to find the kernel headers. I then ran:

dkms --kernelsourcedir /usr/src/kernels/3.10.0-1127.19.1.el7.x86_64 build dattobd-0.11.7

However, that's failed and so I'm attaching the Make.log and CLI Output. Any direction would be greatly appreciated.

DKMS Build CLI Output.txt Make.log

Munk3y commented 1 day ago

Here's how I resolved it:

cd /lib/modules/3.10.0-1127.19.1.el7.x86_64/
ln -s /usr/src/kernels/3.10.0-1127.19.1.el7.x86_64 ./source
ln -s /usr/src/kernels/3.10.0-1127.19.1.el7.x86_64 ./build
rm -rf /var/lib/dkms/dattobd
cd /usr/src/
dkms build dattobd-0.11.7
cd /usr/src/kernels/3.10.0-1127.19.1.el7.x86_64/
mkdir extra
cd extra
ln -s /var/lib/dkms/dattobd/0.11.7/3.10.0-1127.19.1.el7.x86_64/x86_64/module/dattobd.ko.xz .
dkms autoinstall --kernelsourcedir /usr/src/kernels/3.10.0-1127.19.1.el7.x86_64/
modprobe dattobd

Then after, I checked the status of the dattobd module by using: modinfo dattobd

It had this output:

filename:       /lib/modules/3.10.0-1127.19.1.el7.x86_64/kernel/drivers/block/dattobd.ko.xz
version:        0.11.7
description:    Kernel module for supporting block device snapshots and incremental backups.
author:         Tom Caputi
license:        GPL
retpoline:      Y
rhelversion:    7.8
srcversion:     CE4A03FFCD8FFFC06BAE78E
depends:        
vermagic:       3.10.0-1127.19.1.el7.x86_64 SMP mod_unload modversions 
parm:           may_hook_syscalls:if true, allows the kernel module to find and alter the system call table to allow tracing to work across remounts (int)
parm:           cow_max_memory_default:default maximum cache size (in bytes) (ulong)
parm:           cow_fallocate_percentage_default:default space allocated to the cow file (as integer percentage) (uint)
parm:           max_snap_devices:maximum number of tracers available (uint)
parm:           debug:enables debug logging (int)

I'm unsure why I'd have to go through this on such a common distro, but this is resolved. Hopefully it can help others.