您的位置:首页 > 运维架构 > Linux

linux加载mod初学

2016-03-04 13:07 495 查看
主要是给自己看的

1.准备源文件

起名叫mymod.c

#include <linux/init.h>

#include <linux/module.h>

MODULE_LICENSE("Dual BSD/GPL");

static int hello_init(void)

{

printk(KERN_ALERT "Hello, world\n");

return 0;

}

static void hello_exit(void)

{

printk(KERN_ALERT "Goodbye, cruel world\n");

}

module_init(hello_init);

module_exit(hello_exit);

2.编写Makefile文件

这是抄别人的http://blog.csdn.net/hanchaoman/article/details/6962293,但是注意在default和clean下面要有tab分隔符,不能用空格代替,会出错,博客上打不出来tab...

还有Makefile,M要大写

Makefile

obj-m := modules.o

modules-objs:= mymod.o

KDIR := /lib/modules/`uname -r`/build

PWD := $(shell pwd)

default:

        make -C $(KDIR) M=$(PWD) modules

clean:
       rm -rf *.o .* .cmd *.ko *.mod.c .tmp_versions

3编译

进入终端,需要进入你的Makefile和源文件的目录

输入make

4加载卸载模块

用insmod和rmmod,要root权限

insmod modules.ko

rmmod modules

这个“modules”名字就是makefile第一行的那个。

我用的ubuntu14.04,输出可以在/var/log/syslog中找到

Dec  8 15:15:59 syj-Inspiron-5520 kernel: [ 6730.734175] Hello, world

Dec  8 15:17:01 syj-Inspiron-5520 CRON[5589]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)

Dec  8 15:18:33 syj-Inspiron-5520 AptDaemon: INFO: Quitting due to inactivity

Dec  8 15:18:33 syj-Inspiron-5520 AptDaemon: INFO: Quitting was requested

Dec  8 15:20:13 syj-Inspiron-5520 kernel: [ 6984.808345] Goodbye, cruel world
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: