Srinivas Ganji srinivasganji.kernel at
Wed Jul 10 04:02:59 EDT 2013

Hi David,

As Rajat said, we need to give TAB space before an executable command in
the Makefile. However, here is the simple Makefile, for your reference.

KDIR:=/lib/modules/$(shell uname -r)/build


$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules

I hope this helps to you.


On Tue, Jul 2, 2013 at 6:37 PM, David kiarie <davidkiarie4 at> wrote:

> Hi everybody,
> I currently started learning how to write Linux drivers.I am following
> Linux Device Drivers Third Edition.
> I have everything set right but the makefile provided seem not to work.I
> am familiar with makefiles but the kernel build system confuses me
> Here is the makefile:
> # If KERNELRELEASE is defined, we've been invoked from the
> # kernel build system and can use its language.
> ifneq ($(KERNELRELEASE),)
> obj-m := hello.o
> # Otherwise we were called directly from the command
> # line; invoke the kernel build system.
> else
> KERNELDIR ?= /lib/modules/$(shell uname -r)/build
> PWD := $(shell pwd)
> default:
> $(MAKE) -C $(KERNELDIR) M=$(PWD) modules
> endif
> It give the following output when I run make :
> make: Nothing to be done for `default'.
> _______________________________________________
> Kernelnewbies mailing list
> Kernelnewbies at
-------------- next part --------------
An HTML attachment was scrubbed...

More information about the Kernelnewbies mailing list