LinuxQuestions.org
Visit Jeremy's Blog.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - General
User Name
Password
Linux - General This Linux forum is for general Linux questions and discussion.
If it is Linux Related and doesn't seem to fit in any other forum then this is the place.

Notices


Reply
  Search this Thread
Old 08-29-2011, 08:03 AM   #1
schirrmie
LQ Newbie
 
Registered: Dec 2009
Posts: 3

Rep: Reputation: 0
Create kernel module with self build kernel


Hi,
I use a debian 3.0 woody with a self build kernel 2.4.17.
Please do not ask why I use an old distribution and an old kernel, I need this for developement.

Now I want to build a custom kernel module.
I have my sourcode (new.c) and my Makefile
Makefile:
Code:
obj-m += new.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 should be realy easy but I don't get it to work.
If i execute <make> it compile the modules from the kernel and if i execute <make clean> it removes the modules from the kernel and not my new kernel module

This is the Output from make
Code:
kernel-2-4-17:~/proc# make
make -C /lib/modules/2.4.17/build M=/root/proc modules
make[1]: Entering directory `/usr/src/kernel-source-2.4.17'
make -C  kernel CFLAGS="-D__KERNEL__ -I/usr/src/kernel-source-2.4.17/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=i686 -DMODULE -DMODVERSIONS -include /usr/src/kernel-source-2.4.17/include/linux/modversions.h" MAKING_MODULES=1 modules
make[2]: Entering directory `/usr/src/kernel-source-2.4.17/kernel'
make[2]: Nothing to be done for `modules'.
make[2]: Leaving directory `/usr/src/kernel-source-2.4.17/kernel'
make -C  drivers CFLAGS="-D__KERNEL__ -I/usr/src/kernel-source-2.4.17/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=i686 -DMODULE -DMODVERSIONS -include /usr/src/kernel-source-2.4.17/include/linux/modversions.h" MAKING_MODULES=1 modules
make[2]: Entering directory `/usr/src/kernel-source-2.4.17/drivers'
make -C block modules
make[3]: Entering directory `/usr/src/kernel-source-2.4.17/drivers/block'
make[3]: Nothing to be done for `modules'.
make[3]: Leaving directory `/usr/src/kernel-source-2.4.17/drivers/block'
make -C cdrom modules
make[3]: Entering directory `/usr/src/kernel-source-2.4.17/drivers/cdrom'
make[3]: Nothing to be done for `modules'.
make[3]: Leaving directory `/usr/src/kernel-source-2.4.17/drivers/cdrom'
make -C char modules
make[3]: Entering directory `/usr/src/kernel-source-2.4.17/drivers/char'
make -C drm modules
make[4]: Entering directory `/usr/src/kernel-source-2.4.17/drivers/char/drm'
make[4]: Nothing to be done for `modules'.
make[4]: Leaving directory `/usr/src/kernel-source-2.4.17/drivers/char/drm'
make -C pcmcia modules
make[4]: Entering directory `/usr/src/kernel-source-2.4.17/drivers/char/pcmcia'
make[4]: Nothing to be done for `modules'.
make[4]: Leaving directory `/usr/src/kernel-source-2.4.17/drivers/char/pcmcia'
make[3]: Leaving directory `/usr/src/kernel-source-2.4.17/drivers/char'
make -C hotplug modules
make[3]: Entering directory `/usr/src/kernel-source-2.4.17/drivers/hotplug'
make[3]: Nothing to be done for `modules'.
make[3]: Leaving directory `/usr/src/kernel-source-2.4.17/drivers/hotplug'
make -C ide modules
make[3]: Entering directory `/usr/src/kernel-source-2.4.17/drivers/ide'
make[3]: Nothing to be done for `modules'.
make[3]: Leaving directory `/usr/src/kernel-source-2.4.17/drivers/ide'
make -C media modules
make[3]: Entering directory `/usr/src/kernel-source-2.4.17/drivers/media'
make -C radio modules
make[4]: Entering directory `/usr/src/kernel-source-2.4.17/drivers/media/radio'
make[4]: Nothing to be done for `modules'.
make[4]: Leaving directory `/usr/src/kernel-source-2.4.17/drivers/media/radio'
make -C video modules
make[4]: Entering directory `/usr/src/kernel-source-2.4.17/drivers/media/video'
make[4]: Nothing to be done for `modules'.
make[4]: Leaving directory `/usr/src/kernel-source-2.4.17/drivers/media/video'
make[3]: Leaving directory `/usr/src/kernel-source-2.4.17/drivers/media'
make -C misc modules
make[3]: Entering directory `/usr/src/kernel-source-2.4.17/drivers/misc'
make[3]: Nothing to be done for `modules'.
make[3]: Leaving directory `/usr/src/kernel-source-2.4.17/drivers/misc'
make -C net modules
make[3]: Entering directory `/usr/src/kernel-source-2.4.17/drivers/net'
make -C pcmcia modules
make[4]: Entering directory `/usr/src/kernel-source-2.4.17/drivers/net/pcmcia'
make[4]: Nothing to be done for `modules'.
make[4]: Leaving directory `/usr/src/kernel-source-2.4.17/drivers/net/pcmcia'
make[3]: Leaving directory `/usr/src/kernel-source-2.4.17/drivers/net'
make -C parport modules
make[3]: Entering directory `/usr/src/kernel-source-2.4.17/drivers/parport'
make[3]: Nothing to be done for `modules'.
make[3]: Leaving directory `/usr/src/kernel-source-2.4.17/drivers/parport'
make -C pnp modules
make[3]: Entering directory `/usr/src/kernel-source-2.4.17/drivers/pnp'
make[3]: Nothing to be done for `modules'.
make[3]: Leaving directory `/usr/src/kernel-source-2.4.17/drivers/pnp'
make -C scsi modules
make[3]: Entering directory `/usr/src/kernel-source-2.4.17/drivers/scsi'
make -C pcmcia modules
make[4]: Entering directory `/usr/src/kernel-source-2.4.17/drivers/scsi/pcmcia'
make[4]: Nothing to be done for `modules'.
make[4]: Leaving directory `/usr/src/kernel-source-2.4.17/drivers/scsi/pcmcia'
make[3]: Leaving directory `/usr/src/kernel-source-2.4.17/drivers/scsi'
make -C sound modules
make[3]: Entering directory `/usr/src/kernel-source-2.4.17/drivers/sound'
make[3]: Nothing to be done for `modules'.
make[3]: Leaving directory `/usr/src/kernel-source-2.4.17/drivers/sound'
make -C usb modules
make[3]: Entering directory `/usr/src/kernel-source-2.4.17/drivers/usb'
make[3]: Nothing to be done for `modules'.
make[3]: Leaving directory `/usr/src/kernel-source-2.4.17/drivers/usb'
make -C video modules
make[3]: Entering directory `/usr/src/kernel-source-2.4.17/drivers/video'
make[3]: Nothing to be done for `modules'.
make[3]: Leaving directory `/usr/src/kernel-source-2.4.17/drivers/video'
make[2]: Leaving directory `/usr/src/kernel-source-2.4.17/drivers'
make -C  mm CFLAGS="-D__KERNEL__ -I/usr/src/kernel-source-2.4.17/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=i686 -DMODULE -DMODVERSIONS -include /usr/src/kernel-source-2.4.17/include/linux/modversions.h" MAKING_MODULES=1 modules
make[2]: Entering directory `/usr/src/kernel-source-2.4.17/mm'
make[2]: Nothing to be done for `modules'.
make[2]: Leaving directory `/usr/src/kernel-source-2.4.17/mm'
make -C  fs CFLAGS="-D__KERNEL__ -I/usr/src/kernel-source-2.4.17/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=i686 -DMODULE -DMODVERSIONS -include /usr/src/kernel-source-2.4.17/include/linux/modversions.h" MAKING_MODULES=1 modules
make[2]: Entering directory `/usr/src/kernel-source-2.4.17/fs'
make[2]: Nothing to be done for `modules'.
make[2]: Leaving directory `/usr/src/kernel-source-2.4.17/fs'
make -C  net CFLAGS="-D__KERNEL__ -I/usr/src/kernel-source-2.4.17/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=i686 -DMODULE -DMODVERSIONS -include /usr/src/kernel-source-2.4.17/include/linux/modversions.h" MAKING_MODULES=1 modules
make[2]: Entering directory `/usr/src/kernel-source-2.4.17/net'
make -C ipv4 modules
make[3]: Entering directory `/usr/src/kernel-source-2.4.17/net/ipv4'
make[3]: Nothing to be done for `modules'.
make[3]: Leaving directory `/usr/src/kernel-source-2.4.17/net/ipv4'
make -C netlink modules
make[3]: Entering directory `/usr/src/kernel-source-2.4.17/net/netlink'
make[3]: Nothing to be done for `modules'.
make[3]: Leaving directory `/usr/src/kernel-source-2.4.17/net/netlink'
make -C sched modules
make[3]: Entering directory `/usr/src/kernel-source-2.4.17/net/sched'
make[3]: Nothing to be done for `modules'.
make[3]: Leaving directory `/usr/src/kernel-source-2.4.17/net/sched'
make[2]: Leaving directory `/usr/src/kernel-source-2.4.17/net'
make -C  ipc CFLAGS="-D__KERNEL__ -I/usr/src/kernel-source-2.4.17/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=i686 -DMODULE -DMODVERSIONS -include /usr/src/kernel-source-2.4.17/include/linux/modversions.h" MAKING_MODULES=1 modules
make[2]: Entering directory `/usr/src/kernel-source-2.4.17/ipc'
make[2]: Nothing to be done for `modules'.
make[2]: Leaving directory `/usr/src/kernel-source-2.4.17/ipc'
make -C  lib CFLAGS="-D__KERNEL__ -I/usr/src/kernel-source-2.4.17/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=i686 -DMODULE -DMODVERSIONS -include /usr/src/kernel-source-2.4.17/include/linux/modversions.h" MAKING_MODULES=1 modules
make[2]: Entering directory `/usr/src/kernel-source-2.4.17/lib'
make[2]: Nothing to be done for `modules'.
make[2]: Leaving directory `/usr/src/kernel-source-2.4.17/lib'
make -C  arch/i386/kernel CFLAGS="-D__KERNEL__ -I/usr/src/kernel-source-2.4.17/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=i686 -DMODULE -DMODVERSIONS -include /usr/src/kernel-source-2.4.17/include/linux/modversions.h" MAKING_MODULES=1 modules
make[2]: Entering directory `/usr/src/kernel-source-2.4.17/arch/i386/kernel'
make[2]: Nothing to be done for `modules'.
make[2]: Leaving directory `/usr/src/kernel-source-2.4.17/arch/i386/kernel'
make -C  arch/i386/mm CFLAGS="-D__KERNEL__ -I/usr/src/kernel-source-2.4.17/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=i686 -DMODULE -DMODVERSIONS -include /usr/src/kernel-source-2.4.17/include/linux/modversions.h" MAKING_MODULES=1 modules
make[2]: Entering directory `/usr/src/kernel-source-2.4.17/arch/i386/mm'
make[2]: Nothing to be done for `modules'.
make[2]: Leaving directory `/usr/src/kernel-source-2.4.17/arch/i386/mm'
make -C  arch/i386/lib CFLAGS="-D__KERNEL__ -I/usr/src/kernel-source-2.4.17/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=i686 -DMODULE -DMODVERSIONS -include /usr/src/kernel-source-2.4.17/include/linux/modversions.h" MAKING_MODULES=1 modules
make[2]: Entering directory `/usr/src/kernel-source-2.4.17/arch/i386/lib'
make[2]: Nothing to be done for `modules'.
make[2]: Leaving directory `/usr/src/kernel-source-2.4.17/arch/i386/lib'
make[1]: Leaving directory `/usr/src/kernel-source-2.4.17'
Why it doesn't make my kernel module?
What I do wrong?

Greetings
schirrmie
 
Old 08-29-2011, 08:25 AM   #2
schirrmie
LQ Newbie
 
Registered: Dec 2009
Posts: 3

Original Poster
Rep: Reputation: 0
Hi,

ok I get it.
2.4 kernel is different.
This is my new Makefile and this works
Code:
kernel-2-4-17:~/proc# cat Makefile
WARN    := -W -Wall -Wstrict-prototypes -Wmissing-prototypes
INCLUDE := -isystem /lib/modules/`uname -r`/build/include
CFLAGS  := -O2 -DMODULE -D__KERNEL__ ${WARN} ${INCLUDE}
CC      := gcc-3.0
OBJS    := ${patsubst %.c, %.o, ${wildcard *.c}}

all: ${OBJS}

.PHONY: clean

clean:
        rm -rf *.o
schirrmie
 
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
How to build kernel module arbis Linux - Software 2 11-13-2008 12:28 PM
kernel module question for kernel build davimint Slackware 2 09-22-2006 07:03 PM
[Error] Kernel Module : No kernel module build environment saman007uk Debian 7 09-09-2006 06:34 PM
LXer: Howto: build Linux kernel module against installed kernel w/o full kernel source tree LXer Syndicated Linux News 0 09-03-2006 08:21 PM
Unable to build NVIDIA kernel module / determin kernel version Night Ink Fedora 2 05-31-2004 04:54 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - General

All times are GMT -5. The time now is 11:42 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration