Re: How to enable printk

Chris Wright
2002-04-29T06:52:38Z

* Wanghong Yuan (wyuan1@ews.uiuc.edu) wrote:
> Hi,
>
> It may be a simple question. But I cannot see the result of printk in
> console like the following. Do i need to enable it somewhere? Thanks

Take a look a man 8 dmesg. Also Documentation/sysctl/kernel.txt.

> /*-O2 -Wall -DMODULE -D__KERNEL__ -DLINUX -c testsys.c */
>
> #include <linux/sys.h>
> #include <linux/mm.h>
> #include <linux/module.h>
> #include <linux/kernel.h>
> #include <linux/sched.h>
> #include <sys/syscall.h>
> #include <asm/uaccess.h>
>
>
> /* The system call number we attempt to install ourselves as. */
> static int syscall_num = 165;

I hope you know this can't be done safely (race free).

> asmlinkage int sys_test(int pid, int period, int cycles, int* ptr)
>
> {
>
> put_user(current->pid, ptr);
> return pid-10000;
>
> }
>
> extern int sys_call_table[];
>
> #ifdef MODULE
> int init_module(void)
> {
> printk("yes\n");
> sys_call_table[syscall_num] = (int)sys_test;
> return 0;
> }
>
> void cleanup_module(void)
> {
> sys_call_table[syscall_num] = 0;

this could cause a problem. you should save the original entry when you
insmod and restore it here ;-)

> }
>
> #endif /* MODULE */

btw, take a look at how the module_init() and module_exit() macros are used
in the kernel.

hope that helps,
-chris