博客
关于我
4.【linux驱动】hello_world
阅读量:680 次
发布时间:2019-03-17

本文共 854 字,大约阅读时间需要 2 分钟。

hello_world模块开发指南

模块开发

我们需要将一个简单的内核模块开发出来,模块名称为hello_world。以下是实现步骤:

  • 创建与模块相关的C文件
  • 包含必要的头文件
  • 定义模块的初始化和卸载函数
  • 使用 printk输出日志信息
  • 代码示例如下:

    #include 
    #include
    #include
    MODULE_LICENSE("GPL");static int __init hello_init(void) { printk("hello init\n"); return 0;}static void __exit hello_exit(void) { printk("hello exit\n");}module_init(hello_init);module_exit(hello_exit);

    Makefile编译

    这部分将介绍如何使用Makefile来编译内核模块。我们将使用Kconfig机制来进行配置。

  • 打开终端,进入内核源码目录
  • 执行编译命令:
  • make -C /home/minicoco/Dev/Dev/nanopi/kernel/linux-3.4.y M=`pwd`
    1. Makefile中添加以下配置:
    2. hello: make -C ${KERNEL_DIR} M=`pwd` hello_world.oclean: make -C ${KERNEL_DIR} M=`pwd` cleanobj-m += hello_world.o

      这样模块将会在当前目录输出。

      加载与卸载测试

      在完成编译后,我们需要测试模块的加载与卸载过程。

    3. 使用以下命令加载模块:
    4. insmod hello_world.ko
      1. 模块加载成功后,查看日志以确认是否成功加载:
      2. dmesg | tail
        1. 卸载模块使用以下命令:
        2. rmmod hello_world

          在卸载后,再次查看日志以确认模块是否成功卸载。

    转载地址:http://ypzhz.baihongyu.com/

    你可能感兴趣的文章
    oracle 使用leading, use_nl, rownum调优
    查看>>
    oracle 修改字段类型方法
    查看>>
    Oracle 写存储过程的一个模板还有一些基本的知识点
    查看>>
    Oracle 创建 DBLink 的方法
    查看>>
    oracle 创建双向备份,Materialized View 物化视图实现 Oracle 表双向同步
    查看>>
    oracle 创建字段自增长——两种实现方式汇总
    查看>>
    Oracle 升级10.2.0.5.4 OPatch 报错Patch 12419392 Optional component(s) missing 解决方法
    查看>>
    oracle 可传输的表空间:rman
    查看>>
    Oracle 启动监听命令
    查看>>
    Oracle 在Drop表时的Cascade Constraints
    查看>>
    Oracle 在Sqlplus 执行sql脚本文件。
    查看>>
    Oracle 如何处理CLOB字段
    查看>>
    oracle 学习
    查看>>
    oracle 定义双重循环例子
    查看>>
    ORACLE 客户端工具连接oracle 12504
    查看>>
    Oracle 常用命令
    查看>>
    Oracle 序列sequence 开始于某个值(10)执行完nextval 发现查出的值比10还小的解释
    查看>>
    Oracle 权限(grant、revoke)
    查看>>
    oracle 查询clob
    查看>>
    Oracle 比较 B-tree 和 Bitmap 索引
    查看>>