Error in Make for Kernel Module

2014-01-07 Thread Arun M Kumar
I am starting with Device Drivers for Linux

System Details:
Linux linux-nwya.site 3.10.25-2.10-desktop #2 SMP PREEMPT Tue Jan 7 
00:25:03 IST 2014 i686 i686 i386 GNU/Linux

I created a Simple Hello_world Kernel Module. Hello_World.c
//-
/* My first kernel Module */

#include linux/init.h
#include linux/module.h

static init my_init(void){
 printk(KERN_ALERT Hello World\n);
 return 0;
}

static void my_exit(void){
 printk(KERN_ALERT Exit\n);
}

MODULE_LICENSE(GPL);
module_init(my_init);
module_exit(my_exit);
//-

The Makefile is as follows:
The file name is Makefile
//-
obj-m := Hello_World.o
//-

on running the make command i get the following error.
//
make: Entering directory `/home/arun/Linux_Source'

   ERROR: Kernel configuration is invalid.
  include/generated/autoconf.h or include/config/auto.conf are 
missing.
  Run 'make oldconfig  make prepare' on kernel src to fix it.

make: *** No rule to make target `Device'.  Stop.
make: Leaving directory `/home/arun/Linux_Source'
//---

I have tried make prepare but the issue remains
any suggestions would be appreciated. Thanks in advance.



___
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies


RE: Error in Make for Kernel Module

2014-01-07 Thread Jeff Haran
 -Original Message-
 From: kernelnewbies-boun...@kernelnewbies.org 
 [mailto:kernelnewbies-boun...@kernelnewbies.org] On Behalf Of Arun M
 Kumar
 Sent: Tuesday, January 07, 2014 1:25 PM
 To: Kernel Newbies Mailing List
 Subject: Error in Make for Kernel Module
 
 I am starting with Device Drivers for Linux
 
 System Details:
 Linux linux-nwya.site 3.10.25-2.10-desktop #2 SMP PREEMPT Tue Jan 7
 00:25:03 IST 2014 i686 i686 i386 GNU/Linux
 
 I created a Simple Hello_world Kernel Module. Hello_World.c
 //-
 /* My first kernel Module */
 
 #include linux/init.h
 #include linux/module.h
 
 static init my_init(void){
  printk(KERN_ALERT Hello World\n);
  return 0;
 }
 
 static void my_exit(void){
  printk(KERN_ALERT Exit\n);
 }
 
 MODULE_LICENSE(GPL);
 module_init(my_init);
 module_exit(my_exit);
 //-
 
 The Makefile is as follows:
 The file name is Makefile
 //-
 obj-m := Hello_World.o
 //-
 
 on running the make command i get the following error.
 //
 make: Entering directory `/home/arun/Linux_Source'
 
ERROR: Kernel configuration is invalid.
   include/generated/autoconf.h or include/config/auto.conf are
 missing.
   Run 'make oldconfig  make prepare' on kernel src to fix it.
 
 make: *** No rule to make target `Device'.  Stop.
 make: Leaving directory `/home/arun/Linux_Source'
 //---
 
 I have tried make prepare but the issue remains
 any suggestions would be appreciated. Thanks in advance.
 

You don't say whether you are attempting to build your module out of the kernel 
source tree or not.
Assuming you are trying to build out of the tree, this is more or less what I 
do:

$ cat Makefile
all:
make -C path to top of kernel source tree you are building for 
M=path to directory your module source is in

clean:
make -C  path to top of kernel source tree you are building for 
M=path to directory your module source is in clean
$

$ cat Kbuild
obj-m += Hello_World.o
$

Your mileage may vary.

Good luck,

Jeff Haran


___
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies