dkms errors

I am not able to make dkms builds for netmap.

I get this error -

Kernel preparation unnecessary for this kernel.  Skipping...

Building module:
cleaning build area...
'make' kernelver=4.12.14-lp151.28.32-default....
Error!  Build of netmap.ko failed for: 4.12.14-lp151.28.32-default (x86_64)
Consult the make.log in the build directory
/var/lib/dkms/netmap/0.0.1/build/ for more information.


According to the make.log build however is complete -

DKMS make.log for netmap-0.0.1 for kernel 4.12.14-lp151.28.32-default (x86_64)
Sat Dec  7 03:51:59 PST 2019
make -C /lib/modules/4.12.14-lp151.28.32-default/build M=/usr/src/netmap-0.0.1 EXTRA_CFLAGS='-I/usr/src/netmap-0.0.1 -I/usr/src/netmap-0.0.1/LINUX -I/usr/src/netmap-0.0.1/LINUX/../sys -I/usr/src/netmap-0.0.1/LINUX/../sys/dev -DCONFIG_NETMAP -Wno-unused-but-set-variable -g -DCONFIG_NETMAP_NULL -DCONFIG_NETMAP_PTNETMAP -DCONFIG_NETMAP_GENERIC -DCONFIG_NETMAP_MONITOR -DCONFIG_NETMAP_PIPE -DCONFIG_NETMAP_VALE'  modules CONFIG_NETMAP=m  O_DRIVERS="" NETMAP_DRIVER_SUFFIX=
make[1]: Entering directory '/usr/src/linux-4.12.14-lp151.28.32-obj/x86_64/default'
  Building modules, stage 2.
  MODPOST 1 modules
make[1]: Leaving directory '/usr/src/linux-4.12.14-lp151.28.32-obj/x86_64/default'
make -C build-libnetmap SRCDIR=/usr/src/netmap-0.0.1/LINUX/.. BUILDDIR=/usr/src/netmap-0.0.1 CC="cc" LD="ld"
make[1]: Entering directory '/var/lib/dkms/netmap/0.0.1/build/build-libnetmap'
cc -g -I /usr/src/netmap-0.0.1/LINUX/../sys   -c -o nmreq.o /usr/src/netmap-0.0.1/LINUX/../libnetmap/nmreq.c
cc -g -I /usr/src/netmap-0.0.1/LINUX/../sys   -c -o nmport.o /usr/src/netmap-0.0.1/LINUX/../libnetmap/nmport.c
cc -g -I /usr/src/netmap-0.0.1/LINUX/../sys   -c -o nmctx-pthreads.o /usr/src/netmap-0.0.1/LINUX/../libnetmap/nmctx-pthreads.c
cc -g -I /usr/src/netmap-0.0.1/LINUX/../sys   -c -o nmctx.o /usr/src/netmap-0.0.1/LINUX/../libnetmap/nmctx.c
ar r libnetmap.a nmreq.o nmport.o nmctx-pthreads.o nmctx.o
ar: creating libnetmap.a
make[1]: Leaving directory '/var/lib/dkms/netmap/0.0.1/build/build-libnetmap'
make -C build-apps/dedup SRCDIR=/usr/src/netmap-0.0.1/LINUX/.. BUILDDIR=/usr/src/netmap-0.0.1 CC="cc" LD="ld"
make[1]: Entering directory '/var/lib/dkms/netmap/0.0.1/build/build-apps/dedup'
cc -O2 -pipe -g -Werror -Wall -Wunused-function -I /usr/src/netmap-0.0.1/LINUX/../sys -I /usr/src/netmap-0.0.1/LINUX/../apps/include -Wextra   -c -o dedup.o /usr/src/netmap-0.0.1/LINUX/../apps/dedup/dedup.c
cc -O2 -pipe -g -Werror -Wall -Wunused-function -I /usr/src/netmap-0.0.1/LINUX/../sys -I /usr/src/netmap-0.0.1/LINUX/../apps/include -Wextra   -c -o dedup-main.o /usr/src/netmap-0.0.1/LINUX/../apps/dedup/dedup-main.c
cc   dedup.o dedup-main.o  -lpthread -lrt        -o dedup
make[1]: Leaving directory '/var/lib/dkms/netmap/0.0.1/build/build-apps/dedup'
make -C build-apps/vale-ctl SRCDIR=/usr/src/netmap-0.0.1/LINUX/.. BUILDDIR=/usr/src/netmap-0.0.1 CC="cc" LD="ld"
make[1]: Entering directory '/var/lib/dkms/netmap/0.0.1/build/build-apps/vale-ctl'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/var/lib/dkms/netmap/0.0.1/build/build-apps/vale-ctl'
make -C build-apps/nmreplay SRCDIR=/usr/src/netmap-0.0.1/LINUX/.. BUILDDIR=/usr/src/netmap-0.0.1 CC="cc" LD="ld"
make[1]: Entering directory '/var/lib/dkms/netmap/0.0.1/build/build-apps/nmreplay'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/var/lib/dkms/netmap/0.0.1/build/build-apps/nmreplay'
make -C build-apps/tlem SRCDIR=/usr/src/netmap-0.0.1/LINUX/.. BUILDDIR=/usr/src/netmap-0.0.1 CC="cc" LD="ld"
make[1]: Entering directory '/var/lib/dkms/netmap/0.0.1/build/build-apps/tlem'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/var/lib/dkms/netmap/0.0.1/build/build-apps/tlem'
make -C build-apps/lb SRCDIR=/usr/src/netmap-0.0.1/LINUX/.. BUILDDIR=/usr/src/netmap-0.0.1 CC="cc" LD="ld"
make[1]: Entering directory '/var/lib/dkms/netmap/0.0.1/build/build-apps/lb'
cc -O2 -pipe -Werror -Wall -Wunused-function -I /usr/src/netmap-0.0.1/LINUX/../sys -I /usr/src/netmap-0.0.1/LINUX/../apps/include -I /usr/src/netmap-0.0.1/LINUX/../libnetmap -Wextra   -c -o lb.o /usr/src/netmap-0.0.1/LINUX/../apps/lb/lb.c
cc -O2 -pipe -Werror -Wall -Wunused-function -I /usr/src/netmap-0.0.1/LINUX/../sys -I /usr/src/netmap-0.0.1/LINUX/../apps/include -I /usr/src/netmap-0.0.1/LINUX/../libnetmap -Wextra   -c -o pkt_hash.o /usr/src/netmap-0.0.1/LINUX/../apps/lb/pkt_hash.c
cc -L /usr/src/netmap-0.0.1/build-libnetmap  lb.o pkt_hash.o  -lnetmap -lpthread -lm -lrt        -o lb
make[1]: Leaving directory '/var/lib/dkms/netmap/0.0.1/build/build-apps/lb'
make -C build-apps/bridge SRCDIR=/usr/src/netmap-0.0.1/LINUX/.. BUILDDIR=/usr/src/netmap-0.0.1 CC="cc" LD="ld"
make[1]: Entering directory '/var/lib/dkms/netmap/0.0.1/build/build-apps/bridge'
cc -O2 -pipe -Werror -Wall -Wunused-function -I /usr/src/netmap-0.0.1/LINUX/../sys -I /usr/src/netmap-0.0.1/LINUX/../apps/include -I/usr/src/netmap-0.0.1/LINUX/../libnetmap -Wextra -DBUSYWAIT -c /usr/src/netmap-0.0.1/LINUX/../apps/bridge/bridge.c -o bridge-b.o
cc -L /usr/src/netmap-0.0.1/build-libnetmap  bridge-b.o  -lnetmap -lrt   -o bridge-b
make[1]: Leaving directory '/var/lib/dkms/netmap/0.0.1/build/build-apps/bridge'
make -C build-apps/pkt-gen SRCDIR=/usr/src/netmap-0.0.1/LINUX/.. BUILDDIR=/usr/src/netmap-0.0.1 CC="cc" LD="ld"
make[1]: Entering directory '/var/lib/dkms/netmap/0.0.1/build/build-apps/pkt-gen'
cc -O2 -pipe -Werror -Wall -Wunused-function -I /usr/src/netmap-0.0.1/LINUX/../sys -I /usr/src/netmap-0.0.1/LINUX/../apps/include -I /usr/src/netmap-0.0.1/LINUX/../libnetmap -Wextra -Wno-address-of-packed-member -DNO_PCAP -DBUSYWAIT -c /usr/src/netmap-0.0.1/LINUX/../apps/pkt-gen/pkt-gen.c -o pkt-gen-b.o
cc -L /usr/src/netmap-0.0.1/build-libnetmap  pkt-gen-b.o  -lpthread -lm -lnetmap -lrt    -o pkt-gen-b
make[1]: Leaving directory '/var/lib/dkms/netmap/0.0.1/build/build-apps/pkt-gen'
make -C build-utils SRCDIR=/usr/src/netmap-0.0.1/LINUX/.. BUILDDIR=/usr/src/netmap-0.0.1 CC="cc" LD="ld" SUBSYS_FLAGS="-DCONFIG_NETMAP_NULL -DCONFIG_NETMAP_PTNETMAP -DCONFIG_NETMAP_GENERIC -DCONFIG_NETMAP_MONITOR -DCONFIG_NETMAP_PIPE -DCONFIG_NETMAP_VALE"
make[1]: Entering directory '/var/lib/dkms/netmap/0.0.1/build/build-utils'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/var/lib/dkms/netmap/0.0.1/build/build-utils'


The dkms.conf is here

# netmap dkms
PACKAGE_NAME=netmap
PACKAGE_VERSION=0.0.1
REMAKE_INITRD=yes
AUTOINSTALL=yes
 
# netmap driver
MAKE[0]="'make' kernelver=$kernelver"
BUILT_MODULE_NAME[0]=netmap
DEST_MODULE_LOCATION[0]=/kernel/net/netmap/


When I used to use self-compiled dkms from Dell/DKMS things used to work out, I am not sure why this is so messed up. Please help.

It does not look like kernel module was built at all. You should be seeing CC lines when something is compiled.

Manual install works -

[Sat Dec 07 08:50:30 root@linux-1vv0 /usr/local/src] 
# modinfo netmap
filename:       /lib/modules/4.12.14-lp151.28.32-default/extra/netmap.ko
license:        Dual BSD/GPL
description:    The netmap packet I/O framework
author:         http://info.iet.unipi.it/~luigi/netmap/
suserelease:    openSUSE Leap 15.1
srcversion:     D5F435C1109E09009A12E14
alias:          pci:v00001B36d0000000Dsv*sd*bc*sc*i*
alias:          pci:v00001B36d0000000Csv*sd*bc*sc*i*
depends:        
retpoline:      Y
vermagic:       4.12.14-lp151.28.32-default SMP mod_unload modversions 
parm:           ptnet_gso:bool
parm:           verbose:int
parm:           no_timestamp:int
parm:           no_pendintr:int
parm:           txsync_retry:int
parm:           fwd:int
parm:           admode:int
parm:           generic_hwcsum:int
parm:           generic_mit:int
parm:           generic_ringsize:int
parm:           generic_rings:int
parm:           generic_txqdisc:int
parm:           ptnet_vnet_hdr:int
parm:           default_pipes:int
parm:           bridge_batch:int
parm:           if_size:int
parm:           if_curr_size:int
parm:           if_num:int
parm:           if_curr_num:int
parm:           priv_if_size:int
parm:           priv_if_num:int
parm:           ring_size:int
parm:           ring_curr_size:int
parm:           ring_num:int
parm:           ring_curr_num:int
parm:           priv_ring_size:int
parm:           priv_ring_num:int
parm:           buf_size:int
parm:           buf_curr_size:int
parm:           buf_num:int
parm:           buf_curr_num:int
parm:           priv_buf_size:int
parm:           priv_buf_num:int


The issue is with autoinstall. I’ve tried 3 different kernels.

This issue is fixed with a proper dkms.conf, the one provided with the source was not sufficient.

root@linux-fx1e:/usr/src/netmap-0.0.1 # cat dkms.conf
PACKAGE_NAME=netmap
PACKAGE_VERSION=0.0.1
AUTOINSTALL=yes

BDIR="$dkms_tree/${PACKAGE_NAME}/${PACKAGE_VERSION}/build"
CLEAN="make clean"
MAKE="make modules ; find ${BDIR} -name '*.ko' -exec mv -v {} ${BDIR} \;"
BUILT_MODULE_NAME[0]=netmap
DEST_MODULE_LOCATION[0]=/kernel/net/netmap/