Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Compiling out-of-tree kernel module against any kernel source tree on the filesystem

I am trying to compile a module against any source tree on the file system but I am having trouble with the Makefile. This was the original Makefile I had against the kernel specified:

obj-m += new-mod.o

all:
        make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules

clean:
        make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean

This Makefile would compile correctly, but goal is to have it compile against any source tree. I have tried just:

obj-m += new-mod.o

I thought that "all:" is assumed but I get error:

make: *** No targets.  Stop.

I have also added:

all: 

to the Makefile with no difference except for error message:

make: Nothing to be done for `all'

I have tried a lot of documentation but no luck. I would greatly appreciate any help.

like image 371
EchelonSS Avatar asked Mar 13 '14 03:03

EchelonSS


1 Answers

goal is to have it compile against any source tree

ya you can do it providing a compiled source-code path

just replace make -C /lib/modules/$(shell uname -r)/build M=$PWD modules

with this

make -C <path-to-compiled-src-code> M=$PWD modules

make -C /home/vinay/linux-3.9 M=$PWD modules

try below makefile

Makefile –

# if KERNELRELEASE is defined, we've been invoked from the
# kernel build system and can use its language.
ifneq (${KERNELRELEASE},)
obj-m := new-mod.o
# Otherwise we were called directly from the command line.
# Invoke the kernel build system.
  else
    KERNEL_SOURCE := /usr/src/linux
    PWD := $(shell pwd)
default:
      ${MAKE} -C ${KERNEL_SOURCE} SUBDIRS=${PWD} modules

clean:
      ${MAKE} -C ${KERNEL_SOURCE} SUBDIRS=${PWD} clean
endif

In above you can change KERNEL_SOURCE := /usr/src/linux-->to.--> your sr-code KERNEL_SOURCE := <path to compiled-src-code>

for further info find below liks

while building kernel modules why do we need /lib/modules?

A simple program on linux device driver

How to make a built-in device driver in linux

like image 192
vinay hunachyal Avatar answered Nov 15 '22 09:11

vinay hunachyal