linux加载mod初学

主要是给自己看的

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值