Indeed, the recipe in the link you posted is essentially what I’ve been doing.
The problem I’m seeing is that the attempt to build – not sign, but build – vmmon is failing.
Here is an excerpt from the complaint to the command line:
At top level:
/tmp/modconfig-iJbZMt/vmmon-only/linux/driver.c:680:1: warning: always_inline function might not be inlinable [-Wattributes]
LinuxDriverSyncReadTSCs(uint64 *delta) // OUT: TSC max - TSC min
^~~~~~~~~~~~~~~~~~~~~~~
/tmp/modconfig-iJbZMt/vmmon-only/linux/hostif.c: In function \u2018HostIF_EstimateLockedPageLimit\u2019:
/tmp/modconfig-iJbZMt/vmmon-only/linux/hostif.c:1683:25: error: \u2018totalram_pages\u2019 redeclared as different kind of symbol
extern unsigned long totalram_pages;
^~~~~~~~~~~~~~
In file included from /tmp/modconfig-iJbZMt/vmmon-only/linux/hostif.c:42:
./include/linux/mm.h:56:29: note: previous definition of \u2018totalram_pages\u2019 was here
static inline unsigned long totalram_pages(void)
^~~~~~~~~~~~~~
/tmp/modconfig-iJbZMt/vmmon-only/linux/hostif.c:1714:42: error: \u2018NR_SLAB_UNRECLAIMABLE\u2019 undeclared (first use in this function); did you mean \u2018NR_SLAB_UNRECLAIMABLE_B\u2019?
lockedPages += global_node_page_state(NR_SLAB_UNRECLAIMABLE);
^~~~~~~~~~~~~~~~~~~~~
NR_SLAB_UNRECLAIMABLE_B
/tmp/modconfig-iJbZMt/vmmon-only/linux/hostif.c:1714:42: note: each undeclared identifier is reported only once for each function it appears in
In file included from /tmp/modconfig-iJbZMt/vmmon-only/./common/vmx86.h:32,
from /tmp/modconfig-iJbZMt/vmmon-only/vmcore/moduleloop.c:35:
/tmp/modconfig-iJbZMt/vmmon-only/./include/x86msr.h:127: warning: "MSR_TEST_CTRL" redefined
#define MSR_TEST_CTRL 0x33
In file included from ./arch/x86/include/asm/nospec-branch.h:11,
from ./arch/x86/include/asm/irqflags.h:9,
from ./include/linux/irqflags.h:16,
from ./include/linux/rcupdate.h:39,
from ./include/linux/rculist.h:11,
from ./include/linux/pid.h:5,
from ./include/linux/sched.h:14,
from /tmp/modconfig-iJbZMt/vmmon-only/vmcore/moduleloop.c:31:
./arch/x86/include/asm/msr-index.h:44: note: this is the location of the previous definition
#define MSR_TEST_CTRL 0x00000033
In file included from /tmp/modconfig-iJbZMt/vmmon-only/./common/vmx86.h:32,
from /tmp/modconfig-iJbZMt/vmmon-only/vmcore/moduleloop.c:35:
/tmp/modconfig-iJbZMt/vmmon-only/./include/x86msr.h:128: warning: "MSR_TEST_CTRL_SPLIT_LOCK_DETECT" redefined
#define MSR_TEST_CTRL_SPLIT_LOCK_DETECT (1ULL << 29)
In file included from ./arch/x86/include/asm/nospec-branch.h:11,
from ./arch/x86/include/asm/irqflags.h:9,
from ./include/linux/irqflags.h:16,
from ./include/linux/rcupdate.h:39,
from ./include/linux/rculist.h:11,
from ./include/linux/pid.h:5,
from ./include/linux/sched.h:14,
from /tmp/modconfig-iJbZMt/vmmon-only/vmcore/moduleloop.c:31:
./arch/x86/include/asm/msr-index.h:46: note: this is the location of the previous definition
#define MSR_TEST_CTRL_SPLIT_LOCK_DETECT BIT(MSR_TEST_CTRL_SPLIT_LOCK_DETECT_BIT)
In file included from /tmp/modconfig-iJbZMt/vmmon-only/./common/vmx86.h:32,
from /tmp/modconfig-iJbZMt/vmmon-only/vmcore/moduleloop.c:35:
/tmp/modconfig-iJbZMt/vmmon-only/./include/x86msr.h:154: warning: "MSR_MISC_FEATURES_ENABLES" redefined
#define MSR_MISC_FEATURES_ENABLES 0x140
In file included from ./arch/x86/include/asm/nospec-branch.h:11,
from ./arch/x86/include/asm/irqflags.h:9,
from ./include/linux/irqflags.h:16,
from ./include/linux/rcupdate.h:39,
from ./include/linux/rculist.h:11,
from ./include/linux/pid.h:5,
from ./include/linux/sched.h:14,
from /tmp/modconfig-iJbZMt/vmmon-only/vmcore/moduleloop.c:31:
./arch/x86/include/asm/msr-index.h:754: note: this is the location of the previous definition
#define MSR_MISC_FEATURES_ENABLES 0x00000140
In file included from /tmp/modconfig-iJbZMt/vmmon-only/./common/vmx86.h:32,
from /tmp/modconfig-iJbZMt/vmmon-only/vmcore/moduleloop.c:35:
/tmp/modconfig-iJbZMt/vmmon-only/./include/x86msr.h:489: warning: "MSR_K7_HWCR_SMMLOCK" redefined
#define MSR_K7_HWCR_SMMLOCK 0x00000001ULL // Lock SMM environment
In file included from ./arch/x86/include/asm/nospec-branch.h:11,
from ./arch/x86/include/asm/irqflags.h:9,
from ./include/linux/irqflags.h:16,
from ./include/linux/rcupdate.h:39,
from ./include/linux/rculist.h:11,
from ./include/linux/pid.h:5,
from ./include/linux/sched.h:14,
from /tmp/modconfig-iJbZMt/vmmon-only/vmcore/moduleloop.c:31:
./arch/x86/include/asm/msr-index.h:551: note: this is the location of the previous definition
#define MSR_K7_HWCR_SMMLOCK BIT_ULL(MSR_K7_HWCR_SMMLOCK_BIT)
In file included from /tmp/modconfig-iJbZMt/vmmon-only/./common/vmx86.h:32,
from /tmp/modconfig-iJbZMt/vmmon-only/vmcore/moduleloop.c:35:
/tmp/modconfig-iJbZMt/vmmon-only/./include/x86msr.h:661: warning: "MSR_TSX_FORCE_ABORT" redefined
#define MSR_TSX_FORCE_ABORT 0x0000010f
In file included from ./arch/x86/include/asm/nospec-branch.h:11,
from ./arch/x86/include/asm/irqflags.h:9,
from ./include/linux/irqflags.h:16,
from ./include/linux/rcupdate.h:39,
from ./include/linux/rculist.h:11,
from ./include/linux/pid.h:5,
from ./include/linux/sched.h:14,
from /tmp/modconfig-iJbZMt/vmmon-only/vmcore/moduleloop.c:31:
./arch/x86/include/asm/msr-index.h:763: note: this is the location of the previous definition
#define MSR_TSX_FORCE_ABORT 0x0000010F
make[2]: *** [scripts/Makefile.build:315: /tmp/modconfig-iJbZMt/vmmon-only/linux/hostif.o] Error 1
make[2]: *** Waiting for unfinished jobs....
/tmp/modconfig-iJbZMt/vmmon-only/common/.tmp_task.o: warning: objtool: .text: unexpected end of section
make[1]: *** [Makefile:1563: _module_/tmp/modconfig-iJbZMt/vmmon-only] Error 2
make: *** [Makefile:117: vmmon.ko] Error 2
At first blush, these look like issues with the source/include files.