<div dir="ltr"><div>I'm trying to build out of tree modules for kernel version 5.8.0 for a X86 host. Below are the results when I attempt to compile the modules.  </div><div><br></div><b>test@test-GA-78LMT-USB3-6-0:~/X86module$ ./BuildDriver<br>make: Entering directory '/home/test/LinuxKernel/linux-git'<br>  CC [M]  /home/test/X86module/thread.o<br>In file included from ./include/linux/types.h:6,<br>                 from ./include/linux/limits.h:6,<br>                 from ./include/linux/kernel.h:7,<br>                 from /home/test/X86module/thread.c:3:<br>./include/uapi/linux/types.h:5:10: fatal error: asm/types.h: No such file or directory<br>    5 | #include <asm/types.h><br>      |          ^~~~~~~~~~~~~<br>compilation terminated.<br>make[1]: *** [scripts/Makefile.build:281: /home/test/X86module/thread.o] Error 1<br>make: *** [Makefile:1756: /home/test/X86module] Error 2<br>make: Leaving directory '/home/test/LinuxKernel/linux-git'<br></b><div><br></div><div>This is the source code for the module being compiled:</div><div><br></div><div><b>/* out-of-tree kthreads module */<br><br>#include <linux/kernel.h><br>#include <linux/module.h><br>#include <linux/kthread.h><br>#include <linux/delay.h><br><br>#define LOGLEVEL KERN_INFO<br><br>static struct task_struct *mythread;<br><br>static int work(void *dummy);<br><br>static int __init kthread_init(void) {<br>       int r;<br>        printk(LOGLEVEL "kthread module start\n");<br>  mythread = kthread_create(work, NULL, "mykthread");<br> if (mythread > 0) { printk(LOGLEVEL "kthread created\n");<br>                            r = wake_up_process(mythread);<br>                             if (r) { printk(LOGLEVEL "kthread started\n");<br>                                    printk(LOGLEVEL "kthread pid = %0#10x  %d\n", mythread->pid, mythread->pid);<br>                                }<br>                         else printk(LOGLEVEL "kthread already running??\n");<br>                    }<br><br>        else printk(LOGLEVEL "kthread_create failed\n");<br>    return(0);<br>}<br><br>static int work(void *dummy) {<br>       int i = 1;<br>    while (1) {<br>           ssleep(1); <br>           printk(LOGLEVEL "mykthread i = %d\n",i);<br>            i++;<br>          if (kthread_should_stop()) {<br>          printk(LOGLEVEL "my kthread is stopping...\n");<br>             do_exit(0);<br>           }<br>     }<br>}<br><br>static void __exit kthread_exit(void) {<br>       int r;<br>        r = kthread_stop(mythread);<br>   printk(KERN_INFO "kthread module exit\n");<br>}<br><br>module_init(kthread_init);<br>module_exit(kthread_exit);<br>MODULE_LICENSE("GPL");<br>MODULE_AUTHOR("Michael McCann");<br>MODULE_DESCRIPTION("kernal threads experiment");<br></b></div><div><br></div></div>