2010.01.06 I just realized that I'm not doing includes right. My kernel code should use the system include directory and my test file should use the user include directory. I think I got off track by just copying the LKMPG guide Makefile examples without thinking it through. The default include is the /usr/include and the (-i) option in the compile gives the system include file. I think there's also a (-I). I need to check the difference. It may be the order the two include directories are searched. 2010.01.06 insmod ./mod-syscall-hello.o insert the module lsmod see if the modules has loaded tail /var/log/syslog see module load message ./mod-syscall-test-hello run the syscall test program tail /var/log/syslog see module enter call and leave message rmmod mod-syscall-hello unload module lsmod see if the modules has unloaded tail /var/log/syslog see module unload message. Read all the messages produced by this module. 2010.01.06 Ported to the Slackware 2.4 kernel. Fixed the Makefile. 2009.07.29 First version is a no-parameter, no-result system call; a simple call, printk, and return. The only observable results are in /var/log/syslog if the module was actually loaded.