KERNEL MODULE PROGRAMS

KERNEL MODULE PROGRAMS

/////////////////////////////////////////////////////////////////
Program No. : 1
-----------------------------------------------------------------------

// hello-1.c
-----------------------------------------------------------------------

// This header file is require for all kernel module.
#include<linux/module.h>

// This header file is require for KERN_INFO macro.
#include<linux/kernel.h>

// This function gets called automatically when module gets loaded by insmod command

// This function returns 0 if it successfully executed otherwise it returns non zero value

int init_module(void)
{
printk(KERN_INFO "Jay ShreeKrishna: module inserted 1\n");
return 0;
}

// This function gets called automatically when module gets removed from memory by rmmod.

void cleanup_module(void)
{
printk(KERN_INFO "Hare Ram: module removed 1\n");
}

-----------------------------------------------------------------------
// Makefile
-------------------------------------------------------------------------

obj-m += hello-1.o

all:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules

clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean

-----------------------------------------------------------------------
// readme
----------------------------------------------------------------
module name : hello-1
build makefile
$ make

if there is any problem in our kernel then download requred linux headers as
apt-get install build-essential linux-headers-$(uname -r)

get information of our module using modinfo .ko

insert module using sudo insmod .ko

get list of all installed module as lsmod

check kernel log using /var/log/syslog file

remove kernel module using sudo rmmod  .ko

-------------------------------------------------------------------------

/////////////////////////////////////////////////////////////////
Program No. :- 2
-------------------------------------------------------------------------
// hello-2.c
-------------------------------------------------------------------------

// This header file is required by all kernel modules
#include <linux/module.h>

// This header file is required for KERN_INFO
#include <linux/kernel.h>

// This header file is required macroes
#include <linux/init.h>

// This function gets called automatically when module gets loaded by insmod

// This function returns 0 if it successfully executed otherwise it returns non zero value

static int __init hello_2_init(void)
{
printk(KERN_INFO "Jay ShreeKrishna: module inserted 2\n");
return 0;
}

// This function gets called automatically when module gets removed from memory by rmmod //command
static void __exit hello_2_exit(void)
{
printk(KERN_INFO "Hare Ram: module removed 2\n");
}

// Register our init function
module_init(hello_2_init);

// Register our cleanup function
module_exit(hello_2_exit);

-------------------------------------------------------------------------
// Makefile
-------------------------------------------------------------------------
obj-m += hello-2.o

all:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules

clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean

-------------------------------------------------------------------------
// readme
-------------------------------------------------------------------------
module name : hello-2
build makefile
$ make

if there is any problem in our kernel then download requred linux headers as
apt-get install build-essential linux-headers-$(uname -r)

get information of our module using modinfo .ko

insert module using sudo insmod .ko

get list of all installed module as lsmod

check kernel log using /var/log/syslog file

remove kernel module using sudo rmmod  .ko

-------------------------------------------------------------------------

/////////////////////////////////////////////////////////////////
Program No. :- 3
-------------------------------------------------------------------------
// hello-3.c
-------------------------------------------------------------------------

// This header file is required by all kernel modules
#include <linux/module.h>

// This header file is required for KERN_INFO
#include <linux/kernel.h>

// This header file is required macroes
#include <linux/init.h>

// This is used to declare variable named as hello3_data
static int hello3_data __initdata = 0;

// This function gets called automatically when module gets loaded by insmod

// This function returns 0 if it successfully executed otherwise it returns non zero value

static int __init hello_3_init(void)
{
printk(KERN_INFO "Jay ShreeKrishna: module inserted with data %d\n", hello3_data);
return 0;
}

// This function gets called automatically when module gets removed from memory by rmmod
static void __exit hello_3_exit(void)
{
printk(KERN_INFO "Hare Ram: module removed\n");
}

// Register our init function
module_init(hello_3_init);

// Register our cleanup function
module_exit(hello_3_exit);

-------------------------------------------------------------------------
// Makefile
-------------------------------------------------------------------------
obj-m += hello-3.o

all:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules

clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean

-------------------------------------------------------------------------
// readme
-------------------------------------------------------------------------
module name : hello-3
build makefile
$ make

if there is any problem in our kernel then download requred linux headers as
apt-get install build-essential linux-headers-$(uname -r)

get information of our module using modinfo .ko

insert module using sudo insmod .ko

get list of all installed module as lsmod

check kernel log using /var/log/syslog file

remove kernel module using sudo rmmod  .ko

-------------------------------------------------------------------------
/////////////////////////////////////////////////////////////////
Program No. :- 4
-------------------------------------------------------------------------
// hello-4.c
-------------------------------------------------------------------------

// This header file is required by all kernel modules
#include <linux/module.h>

// This header file is required for KERN_INFO
#include <linux/kernel.h>

// This header file is required macroes
#include <linux/init.h>

// Macro for name of author
#define DRIVER_AUTHOR "Sunil Bhagwat"

// Macro for module description
#define DRIVER_DESC   "Demo module"

static int __init init_hello_4(void)
{
printk(KERN_INFO "Jay ShreeKrishna: module inserted 4\n");
return 0;
}

static void __exit cleanup_hello_4(void)
{
printk(KERN_INFO "Hare Ram: module removed 4\n");
}

module_init(init_hello_4);
module_exit(cleanup_hello_4);

// Register name of licance
MODULE_LICENSE("GPL");

// Register name of author
MODULE_AUTHOR(DRIVER_AUTHOR);

// Provide module description
MODULE_DESCRIPTION(DRIVER_DESC);
-------------------------------------------------------------------------
// Makefile
-------------------------------------------------------------------------
obj-m += hello-4.o

all:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules

clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean

-------------------------------------------------------------------------
// readme
-------------------------------------------------------------------------
module name : hello-4
build makefile
$ make

if there is any problem in our kernel then download requred linux headers as
apt-get install build-essential linux-headers-$(uname -r)

get information of our module using modinfo .ko

insert module using sudo insmod .ko

get list of all installed module as lsmod

check kernel log using /var/log/syslog file

remove kernel module using sudo rmmod  .ko

-------------------------------------------------------------------------
/////////////////////////////////////////////////////////////////Program No. :- 5
-----------------------------------------------------------------------
// hello-5.c
-----------------------------------------------------------------------
// This header file is required by all kernel modules
#include <linux/module.h>

// This header file is required for KERN_INFO
#include <linux/kernel.h>

// This header file is required macroes
#include <linux/init.h>

// This header file is used to get information about the parameters
#include <linux/moduleparam.h>

// Macro for name of author
#define DRIVER_AUTHOR "Sunil Bhagwat"

// Macro for module description
#define DRIVER_DESC   "Demo module with arguments"

int myint = 21;

/*
This macro is used to to register information about the input argument
First parameter is name of variable
Second parameter is its type
Third parameter is its permission
*/
module_param(myint, int, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);
MODULE_PARM_DESC(myint, "Integer variable");

static int __init hello_5_init(void)
{
printk(KERN_INFO "The Integer Value is:  %d\n", myint);
return 0;
}

static void __exit hello_5_exit(void)
{
printk(KERN_INFO "Hare Ram : Removing module\n");
}

module_init(hello_5_init);
module_exit(hello_5_exit);

// Register name of licance
MODULE_LICENSE("GPL");

// Register name of author
MODULE_AUTHOR(DRIVER_AUTHOR);

// Provide module description
MODULE_DESCRIPTION(DRIVER_DESC);

// we can insert our module as insmod myint=11
-------------------------------------------------------------------------
// Makefile
-------------------------------------------------------------------------
obj-m += hello-5.o

all:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules

clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean

-------------------------------------------------------------------------
// readme
-------------------------------------------------------------------------
module name : hello-5
build makefile
$ make

if there is any problem in our kernel then download requred linux headers as
apt-get install build-essential linux-headers-$(uname -r)

get information of our module using modinfo .ko

insert module using sudo insmod .ko

get list of all installed module as lsmod

check kernel log using /var/log/syslog file

remove kernel module using sudo rmmod  .ko

-------------------------------------------------------------------------
/////////////////////////////////////////////////////////////////Program No. :- 6
-----------------------------------------------------------------------
// first.c
-------------------------------------------------------------------------
// This header file is required by all kernel modules
#include <linux/module.h>

// This header file is required for KERN_INFO
#include <linux/kernel.h>

// This header file is required macroes
#include <linux/init.h>

int init_module(void)
{
              printk(KERN_INFO "Jay ShreeKrishna : Inserting module\n");
              return 0;
}

-------------------------------------------------------------------------
// second.c
-------------------------------------------------------------------------

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

void cleanup_module()
{
            printk(KERN_INFO "Hare Ram : Removing the module\n");
}

-------------------------------------------------------------------------

// Makefile
-------------------------------------------------------------------------
obj-m += firstsecond.o
firstsecond-objs := first.o second.o

all:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules

clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
-------------------------------------------------------------------------
// readme
-------------------------------------------------------------------------
module name : hello-6
build makefile

if there is any problem in our kernel then download requred linux headers as
apt-get install build-essential linux-headers-$(uname -r)

get information of our module using modinfo .ko

insert module using sudo insmod .ko

get list of all installed module as lsmod

check kernel log using /var/log/syslog file

remove kernel module using sudo rmmod  .ko

-------------------------------------------------------------------------

Comments

Popular posts from this blog

First Year Web Technology Practical Slips Solution

SYBSc (CS) Sem III : Data Structure Slip 14 Que - 2

SYBSc (CS) Sem III : Data Structure Slip 20 Que - 2