All of lore.kernel.org
 help / color / mirror / Atom feed
* A problem with printk?
@ 1999-01-14  4:37 Durantez, Marc
  1999-01-14  4:49 ` David S. Miller
  0 siblings, 1 reply; 2+ messages in thread
From: Durantez, Marc @ 1999-01-14  4:37 UTC (permalink / raw)
  To: ultralinux

I am trying to do some programming exercice with the kernel of Linux and I want
to start by a small and simple "Hello world" module. But I have something wrong
:-(

I use the kernel 2.2.0-pre5 with module versioning enabled.
Here you have a trace what I did:

bash-2.01# ls
Makefile  hello.c
bash-2.01# cat Makefile 
SHELL = /bin/sh

CC      =/usr/local/bin/sparc64-linux-gcc

hello.o: hello.c
        $(CC) -D__KERNEL__ -DMODULE -O -Wall -I/usr/include -c $< 

bash-2.01# cat hello.c 


#include <linux/autoconf.h>
#if defined(CONFIG_MODVERSIONS) && !defined(MODVERSIONS)
#define MODVERSIONS
#endif

#ifdef MODVERSIONS
#include <linux/modversions.h>
#endif

#include <linux/module.h>

int init_module(void) {
  printk("Hello, Hello, world\n");
  return 0;
}

void cleanup_module(void) {
  printk("Goodbye cruel world\n");
}

/* It is a copy from "Linux device drivers" */

bash-2.01# make
/usr/local/bin/sparc64-linux-gcc -D__KERNEL__ -DMODULE -O -Wall -I/usr/include
-c hello.c 
In file included from /usr/include/asm/system.h:12,
                 from /usr/include/asm/atomic.h:19,
                 from /usr/include/linux/module.h:23,
                 from hello.c:12:
/usr/include/asm/page.h:31: warning: `clear_page' redefined
/usr/include/linux/modules/sparc64_ksyms.ver:120: warning: this is the location
of the previous definition

bash-2.01# /etc/rc.d/init.d/syslog stop  
Shutting down system loggers: syslogd klogd 

/* I do not want to mess with them right now. I should be able to
   get the messages with /proc/kmsg, shouldn't I? */

bash-2.01# /sbin/insmod hello.o
bash-2.01# cat /proc/kmsg 

/* I had to return with C-C */

bash-2.01# cat /proc/modules 
hello                    280   0 (unused)
bash-2.01# /sbin/rmmod hello
bash-2.01# cat /proc/kmsg 

/* like before C-C to exit */
bash-2.01# cat /proc/modules 
bash-2.01# 

A last thing 
bash-2.01# ls -l /sbin/*mod*
 (...)
lrwxrwxrwx   1 root     root            8 Jan 13 18:46 /sbin/insmod -> insmod64
-rwxr-xr-x   2 root     root        33232 May  8  1998 /sbin/insmod.old
/* It is not so old but it did the same thing that insmod64. By the way, which
is the difference between insmod64 and the insmod (now insmod.old) that was
installed with UP 1.1.9 (kernel 2.1.106) */
-rwxr-xr-x   1 root     root       243892 May  8  1998 /sbin/insmod.static
-rwxr-xr-x   1 root     root        37168 May  8  1998 /sbin/insmod64
-rwxr-xr-x   1 root     root       245324 May  8  1998 /sbin/insmod64.static
 (...)
-rwxr-xr-x   2 root     root        33232 May  8  1998 /sbin/rmmod
bash-2.01# 

/* :-( I have to change those flags */


If someone can give me a hint about what is wrong I will apreciate very much. I
really don't think printk is buggy but I hadn't no other subject.

Regards,
Marc

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: A problem with printk?
  1999-01-14  4:37 A problem with printk? Durantez, Marc
@ 1999-01-14  4:49 ` David S. Miller
  0 siblings, 0 replies; 2+ messages in thread
From: David S. Miller @ 1999-01-14  4:49 UTC (permalink / raw)
  To: ultralinux

   Date: 	Thu, 14 Jan 1999 13:37:29 +0900
   From: "Durantez, Marc" <durantez@is.s.u-tokyo.ac.jp>

   If someone can give me a hint about what is wrong I will apreciate
   very much. I really don't think printk is buggy but I hadn't no
   other subject.

Pay attention to the cflags given to the compiler when the sparc64
kernel build compiles the modules... some are different on every
platform, but most are the same.

For sparc64 with module symbols you'd do something like:

export KSRC_PATH=/path/to/kernel/src

#if defined(ULTRAPENGUIN_1_1_9) || (SPARC64_GCC_IS_EGCS)
sparc64-linux-gcc -D__KERNEL__ -I$(KSRC_PATH)/linux/include -Wall \
                  -Wstrict-prototypes -O2 -fomit-frame-pointer -m64 \
                  -pipe -mno-fpu -mcpu=ultrasparc -mcmodel=medlow \
	          -ffixed-g4 -fcall-used-g5 -fcall-used-g7 \
                  -Wno-sign-compare -DMODULES -DMODVERSIONS \
                  -include $(KSRC_PATH)/linux/include/linux/modversions.h \
                  -c -o mymodule.o mymodule.c
#else
sparc64-linux-gcc -D__KERNEL__ -I$(KSRC_PATH)/linux/include -Wall \
                  -Wstrict-prototypes -O2 -fomit-frame-pointer \
                  -pipe -mno-fpu -mtune=ultrasparc -mcmodel=medlow \
	          -ffixed-g4 -fcall-used-g5 -fcall-used-g7 \
                  -Wno-sign-compare -DMODULES -DMODVERSIONS \
                  -include $(KSRC_PATH)/linux/include/linux/modversions.h \
                  -c -o mymodule.o mymodule.c
#endif

Later,
David S. Miller
davem@dm.cobaltmicro.com

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~1999-01-14  4:49 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
1999-01-14  4:37 A problem with printk? Durantez, Marc
1999-01-14  4:49 ` David S. Miller

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.