Learning about kernel modules


Subject: Learning about kernel modules
From: Tim Moloney (moloney@mrsl.com)
Date: Mon Nov 27 2000 - 12:42:34 MST


If this list is not the best place for this, please me point me to
a better place.

I have just finished reading the "Linux Kernel Module Programming
Guide" (http://http://linuxdoc.org/LDP/lkmpg/mpg.html") and have
started working with the example code. It appears that the example
code for the 2.2.x kernel used in the book does not work properly
with the 2.2.18 kernel. Is there a later version of this document
or another document that explains the differences needed to get the
source to compile cleanly?

Examples of compiler errors and warnings:

Chapter 1 (single source file)

  gcc -Wall -DMODULE -D__KERNEL__ -DLINUX -c hello.c
  hello.c: In function `init_module':
  hello.c:26: warning: implicit declaration of function
`printk_Rsmp_dd132261'

Chapter 1 (multiple source files)

  gcc -Wall -DMODULE -D__KERNEL__ -DLINUX -c start.c
  start.c: In function `init_module':
  start.c:27: warning: implicit declaration of function
    `printk_Rsmp_dd132261'
  gcc -Wall -DMODULE -D__KERNEL__ -DLINUX -c stop.c
  stop.c: In function `cleanup_module':
  stop.c:35: warning: implicit declaration of function
    `printk_Rsmp_dd132261'
  ld -m elf32ppc -r -o hello.o start.o stop.o

Chapter 2

  gcc -Wall -DMODULE -D__KERNEL__ -DLINUX -c chardev.c
  In file included from /usr/include/linux/tqueue.h:18,
                   from /usr/include/linux/tty.h:23,
                   from /usr/include/linux/sched.h:21,
                   from /usr/include/asm/uaccess.h:5,
                   from chardev.c:41:
  /usr/include/asm/spinlock.h:21: warning: `spin_trylock' redefined
  /usr/include/linux/modules/ppc_ksyms.ver:194: warning: this is the
    location of the previous definition
  In file included from /usr/include/linux/fs.h:168,
                   from chardev.c:20:
  /usr/include/asm/semaphore.h: In function `down':
  /usr/include/asm/semaphore.h:38: warning: implicit declaration of
    function `atomic_dec_return_Rsmp_5713b1a2'
  /usr/include/asm/semaphore.h: In function `up':
  /usr/include/asm/semaphore.h:69: warning: implicit declaration of
    function `atomic_inc_return_Rsmp_1f3d9f34'
  In file included from /usr/include/asm/uaccess.h:5,
                   from chardev.c:41:
  /usr/include/linux/sched.h: In function `mmget':
  /usr/include/linux/sched.h:644: warning: implicit declaration of
    function `atomic_inc_Rsmp_b51eea26'
  chardev.c: In function `device_open':
  chardev.c:86: warning: implicit declaration of function
    `printk_Rsmp_dd132261'
  chardev.c:121: warning: implicit declaration of function
    `sprintf_Rsmp_3c2c5af5'
  chardev.c: In function `device_release':
  chardev.c:170: warning: implicit declaration of function
    `atomic_dec_Rsmp_d8330e33'

bash> insmod chardev.o
  chardev.o: unresolved symbol __put_user_bad

Thanks.

Tim Moloney

ManTech Real-time Systems Laboratory
2015 Cattlemen Road
Sarasota, FL 34232
(941) 377-6775 x208



This archive was generated by hypermail 2a24 : Mon Nov 27 2000 - 12:44:04 MST