1:简单代码

#include<linux/init.h>
#include<linux/module.h> MODULE_LICENSE("GPL");
MODULE_AUTHOR("jiuyueguang");
MODULE_DESCRIPTION("SIMPLE MODULE DRIVER"); static int hello_init(void){
printk(KERN_INFO"hello word\n");
return ;
}
static void hello_exit(void){
printk(KERN_INFO"hello word exit\n");
}
module_init(hello_init);
module_exit(hello_exit);

2:查看printk输出信息

 dmesg | tail 

3:带参数类型的模块简单代码

#include<linux/init.h>
#include<linux/module.h> MODULE_LICENSE("GPL");
MODULE_AUTHOR("jiuyueguang");
MODULE_DESCRIPTION("SIMPLE MODULE DRIVER"); static char *name="no name";
static int age=; static int hello_init(void){
printk(KERN_INFO"hello word name=%s and age=%d\n",name ,age);
return ;
}
static void hello_exit(void){
printk(KERN_INFO"hello word exit name=%s and age=%d \n",name ,age);
}
module_init(hello_init);
module_exit(hello_exit);
module_param(name,charp,S_IRUGO);
module_param(age,int,S_IRUGO);

安装带参数的模块:

sudo insmod hello_param.ko    

安装的时候没有加参数,采用程序中的默认值输出:

hello word name=no name and age=

安装的时候加参数:

sudo insmod hello_param.ko name='jiuyueguang' age=

输出:

hello word name=jiuyueguang and age=

4:我自己的Makefile

ifeq ($(KERNELRELEASE),)
KERNELDIR ?= /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
modules:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
modules_install:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules_install
clean:
rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions Module* module* a.out
.PHONY: modules modules_install clean
else
obj-m := hello_param.o //每次修改这里就够了
endif

ubuntu动态加载模块简单模板的更多相关文章

  1. Python3的动态加载模块简单实例

    import os import sys import time import myconfig b = ['123'] a = os.path.abspath(myconfig.__file__) ...

  2. OrchardCore 如何动态加载模块?

    前言 今天,我们再次讨论下OrchardCore,通过初期调研,我们项目采用OrchardCore底层设施支持模块化,同时根据业务场景,额外还需支持二次开发,于是有了本文,若有不同解决方案,欢迎留言探 ...

  3. stevedore动态加载模块

    stevedore动态加载模块,stevedore使用setuptools的entry points来定义并加载插件.entry point引用的是定义在模块中的对象,比如类.函数.实例等,只要在im ...

  4. DevExpress XtraReport - 动态加载报表布局模板

    XtraReport的报表模板文件是.repx,下面的代码演示动态加载报表布局模板. XtraReport mReport = new XtraReport(); mReport.LoadLayout ...

  5. Python_getattr+__import__ 实现动态加载模块、类对象或函数

    __import__() 语法 __import__(name[, globals[, locals[, fromlist[, level]]]]) 参数 name -- 字符串,模块的导入路径 说明 ...

  6. AngularJs 动态加载模块和依赖

    最近项目比较忙额,白天要上班,晚上回来还需要做Angular知识点的ppt给同事,毕竟年底要辞职了,项目的后续开发还是需要有人接手的,所以就占用了晚上学习的时间.本来一直不打算写这些第三方插件的学习笔 ...

  7. [driver]linux内核动态加载模块

    问题: 1. 把编译好的模块放到板子/lib/modules对应文件夹下,并且执行了depmod -a, 比如pl2303.ko, 那么下一次插入pl2303的串口线,是否可以识别,也就是自动加载pl ...

  8. angular-ui-router动态加载模块

    1.定义index.html主页,对于通用的js就不用require依赖加载了,其中main.js作为主模块,用require添加系统路由模块. <!DOCTYPE html> <h ...

  9. nginx平滑升级、在线添加模块(tengine 动态加载模块)

    http://www.orzace.com/how-to-upgrade-nginx/ 下面是nginx替换成tengine再加上lua 模块,(tengine-2.0.1版本暂时无法动态加载lua模 ...

随机推荐

  1. iOS应用内跳转百度高德苹果地图

    移动开发经常用到基于位置的一些导航功能,但是对于对导航功能依赖性不强的的应用,我们直接采用应用外跳转地图APP即可. 但是应用间跳转,首先需要设置白名单, 在iOS 9 下涉及到平台客户端跳转,系统会 ...

  2. 更新YUM源后的arning: rpmts_HdrFromFdno: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY错误

    yum源更新后需要导入key值,否则报错如下,无法安装相关的包. Totalsize:42M DownloadingPackages: warning:rpmts_HdrFromFdno:Header ...

  3. Codeforces 246E Blood Cousins Return(树上启发式合并)

    题目链接 Blood Cousins Return #include <bits/stdc++.h> using namespace std; #define rep(i, a, b) f ...

  4. iNeuOS云操作系统,.NET Core全系打造

    iNeuOS云操作系统,.NET Core全系打造 目录 一.演示地址... 2 二.技术体系... 2 三.iNeuOS整体介绍... 2 四.iNeuView概述... 3 五.iNeuView操 ...

  5. 洛谷——P2701 [USACO5.3]巨大的牛棚Big Barn

    P2701 [USACO5.3]巨大的牛棚Big Barn 题目背景 (USACO 5.3.4) 题目描述 农夫约翰想要在他的正方形农场上建造一座正方形大牛棚.他讨厌在他的农场中砍树,想找一个能够让他 ...

  6. Django-自己写的py文件调用models&Non-ASCII character报错&url接收参数

    1.这个设置是网上能查到的最多的,但是没解决我的问题: Django的models.py在外部独立使用,新建一个文件夹,和monitor1目录平级 import sys,os sys.path.app ...

  7. C#深入学习:泛型修饰符in,out、逆变委托类型和协变委托类型

    在C#中,存在两个泛型修饰符:in和out,他们分别对应逆变委托和协变委托. 我们知道,在C#中要想将一个泛型对象转换为另一个泛型对象时,必须要将一个泛型对象拆箱,对元素进行显式或隐式转换后重新装箱. ...

  8. Android常见的三种内部类

    在java里类中再定义类,这种在其他类内部类叫做内部类,在Android开发里最常见有三种内部类分别是(成员内部类.方法内部类.匿名内部类) 一.成员内部类 1 public class Test { ...

  9. [剑指Offer]2.变态跳台阶

    题目 一仅仅青蛙一次能够跳上1级台阶,也能够跳上2级--它也能够跳上n级. 求该青蛙跳上一个n级的台阶总共同拥有多少种跳法. 思路 用Fib(n)表示青蛙跳上n阶台阶的跳法数,设定Fib(0) = 1 ...

  10. Python中cv2库和matplotlib库色彩空间排布不一致

    今天在python中读如图片时发现以下问题: 1.在from matplotlib import pyplot as plt之后,再import cv2 cv2.imshow()不能正常使用,还不知道 ...