Operating Systems 2014F: Tutorial 7: Difference between revisions

From Soma-notes
No edit summary
Line 36: Line 36:
===Makefile (for simple)===
===Makefile (for simple)===


<source lang="makefile">
<source lang="make">
obj-m := simple.o
obj-m := simple.o
KDIR := /lib/modules/$(shell uname -r)/build
KDIR := /lib/modules/$(shell uname -r)/build

Revision as of 18:32, 11 November 2014

In this tutorial you will be learning about the basics of Linux kernel modules and character devices.

  1. Download the source for [this simple module].


Source

simple.c

#include <linux/module.h>
#include <linux/init.h>
#include <linux/kernel.h>

static int __init simple_init(void)
{
        printk ("Hello kernel world!\n");
        return 0;
}

static void __exit simple_exit(void)
{
        printk ("Goodbye kernel world.\n");
        return;
}

module_init(simple_init);
module_exit(simple_exit);

MODULE_LICENSE("GPL");
MODULE_AUTHOR("Anil Somayaji <soma@scs.carleton.ca>");
MODULE_DESCRIPTION("A simple module");


Makefile (for simple)

obj-m := simple.o
KDIR := /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
default:
	$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules