[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: compiling module



On Thu, Jan 08, 2009 at 08:58:20AM +0100, Abdelkader Belahcene wrote:
> Hi,
> I have problem to compile a small module example here is hello.c
> 
> #include <linux/kernel.h>
> #include <linux/module.h>
> 
> int init_module(){
> printk(KERN_DEBUG "Hello Kernel");
> return 0;
> }
> void cleanup_module(){
> printk(KERN_DEBUG "Good Bye Kernel");
> }
> 
> I compile it with the command
> gcc -D__KERNEL__ -I/usr/src/linux/include/ -DMODULE -Wall -O2 -c hello.c
> -o hello.o

Wrong.

> 
> uname -a gives
> Linux belaptop 2.6.26-1-686 #1 SMP Mon Dec 15 18:15:07 UTC 2008 i686
> GNU/Linux
> 
> ls -l /usr/src
> lrwxrwxrwx 1 root src 19 2009-01-02 15:47 linux -> linux-source-2.6.26

Completely unnecessary

> drwxr-xr-x 18 root root 4096 2009-01-02 18:59 linux-headers-2.6.26-1-common
> drwxr-xr-x 3 root root 4096 2009-01-02 18:59 linux-kbuild-2.6.26
> drwxr-xr-x 21 root root 4096 2009-01-02 19:10 linux-source-2.6.26
> drwxr-xr-x 4 root root 4096 2009-01-06 09:54 linux-headers-2.6.26-1-686

This one is what you need.

# One-time setup:
echo 'obj-m := hello.o' > Kbuild

# Build command:
make -C /lib/modules/`uname -r`/build M=$PWD modules

# Install command (as root)
make -C /lib/modules/`uname -r`/build M=$PWD modules_install


/lib/modules/`uname -r`/build will in this case actually be 
/usr/src/linux-headers-2.6.26-1-686 . But will also work with other 
kernel versdions or if you install a self-built kernel that was built 
on the same system

-- 
Tzafrir Cohen         | tzafrir@jabber.org | VIM is
http://tzafrir.org.il |                    | a Mutt's
tzafrir@cohens.org.il |                    |  best
ICQ# 16849754         |                    | friend


Reply to: