Kernelnewbies Digest, Vol 69, Issue 18
From: Yubin Ruan <hidden>
Date: 2016-08-13 04:10:02
On Thu, Aug 11, 2016 at 07:25:45PM +0000, Matt M wrote:quoted
I am just getting started with kernel module development, and I can't get anything to compile. I get the following errors: In file included from main.c:1:0: /usr/src/linux/include/linux/init.h:142:13: error: expected ?=?, ?,?, ?;?, ?asm? or ?__attribute__? before ?load_default_modules? ?void __init load_default_modules(void); ? ? ? ? ? ? ?^~~~~~~~~~~~~~~~~~~~ /usr/src/linux/include/linux/init.h:143:12: error: expected ?=?, ?,?, ?;?, ?asm? or ?__attribute__? before ?init_rootfs? ?int __init init_rootfs(void); ? ? ? ? ? ? ^~~~~~~~~~~ /usr/src/linux/include/linux/init.h:285:13: error: expected ?=?, ?,?, ?;?, ?asm? or ?__attribute__? before ?parse_early_param? ?void __init parse_early_param(void); ? ? ? ? ? ? ?^~~~~~~~~~~~~~~~~ /usr/src/linux/include/linux/init.h:286:13: error: expected ?=?, ?,?, ?;?, ?asm? or ?__attribute__? before ?parse_early_options? ?void __init parse_early_options(char *cmdline); The errors go on and on, but the majority look like that. My code: #include <linux/init.h> #include <linux/module.h> int main() { return 0; } The compile command: gcc -I /usr/src/linux/include/ main.cThat's not how you compile a Linux kernel module, sorry. Please read the very good documentation for how to set up a Makefile for building a kernel module. It's in the kernel's Documentation/ directory. best of luck, greg k-h
Alternatively, try this doc on TLKD:
http://www.tldp.org/LDP/lkmpg/2.6/html/lkmpg.html
it's kind of outdated, but some code there still compile against the newest
kernel.
good luck,
Ruan.