博客
关于我
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/

    你可能感兴趣的文章
    openstack下service和endpoint
    查看>>
    【Docker知识】重定向 Docker 的根目录
    查看>>
    Openstack企业级云计算实战第二、三期培训即将开始
    查看>>
    OpenStack创建虚拟机实例实战
    查看>>
    OpenStack安装部署实战
    查看>>
    OpenStack实践系列⑨云硬盘服务Cinder
    查看>>
    OpenStack架构
    查看>>
    OpenStack版本升级与故障排查实战
    查看>>
    Openstack的HA解决方案【替换原有的dashboard】
    查看>>
    OpenStack的基本概念与架构详解
    查看>>
    Openstack的视频学习
    查看>>
    OpenStack自动化安装部署实战(附OpenStack实验环境)
    查看>>
    openstack虚拟机迁移live-migration中libvirt配置
    查看>>
    OpenStack项目管理实战
    查看>>
    OpenStreetMap初探(一)——了解OpenStreetMap
    查看>>
    openSUSE 13.1 Milestone 2 发布
    查看>>
    openSUSE推出独立 GUI 包管理工具:YQPkg,简化了整个软件包管理流程
    查看>>
    OpenVP共用账号 一个账号多台电脑登录
    查看>>
    OpenVSwtich(OVS)Vlan间路由实战 附实验环境
    查看>>
    Openwrt LuCI模块练习详细步骤
    查看>>