• centos6.5下编译hello.ko驱动程序


    说明:

      该驱动编译过程是在虚拟机中,安装完centos 6.5系统后:

    A:默认make为用的自带的内核版本,我的centos 6.5系统 版本为(命令uname -r):2.6.32-431.el6.x86_64时:

    A1、cd /usr/src/kernel/下;
    A2、将2.6.32-431.el6.x86_64的kernel文件夹复制到/usr/src/下;
    A3、在/usr/src/2.6.32-431.el6.x86_64/drivers/下创建存放hello测试程序的目录:mkdir test;
    A4、进入到test下,创建hello.c和Makefile
    A5、其中hello.c如下:
    /*****************************/
    #include <linux/init.h>
    #include <linux/module.h>
    MODULE_LICENSE("Dual BSD/GPL");

    static int hello_init(void)
    {
    printk(KERN_ALERT " Hello world enter ");
    return 0;
    }

    static void hello_exit(void)
    {
    printk(KERN_ALERT " Hello world exit ");
    }

    module_init(hello_init);
    module_exit(hello_exit);

    MODULE_AUTHOR("zzz");
    MODULE_DESCRIPTION("A simple Hello world module");
    MODULE_ALIAS("a simplest module");
    /*****************************************/

    而Makefile中只有一句:obj-m := hello.o

    A6、在当前test目录下,执行:
    make -C /usr/src/2.6.32-431.el6.x86_64 M=$(pwd) modules

    完成后,则在当前目录下能够看到hello.ko驱动文件。

    执行modinfo hello.ko将看到该模块的信息如下:
    /****************************/
    filename: hello.ko
    alias: a simplest module
    description: A simple Hello world module
    author: zzz
    license: Dual BSD/GPL
    srcversion: 5AB83CD37662439404D5EE3
    depends:
    vermagic: 2.6.32-431.el6.x86_64 SMP mod_unload modversions
    /*****************************/

    A7、执行insmod hello.ko,将驱动模块加载到内核中

    A8、执行cat /var/log/messages | tail
    将在屏幕上看到系统打印的信息:Apr 2 18:02:51 localhost kernel: Hello world enter。

    A9、执行rmmod hello.ko 从内核中移除hello驱动模块和 cat /var/log/messages |tail
    将在屏幕上看到系统打印信息:Apr 2 18:04:33 localhost kernel: Hello world exit。

    A10、至此,在自带的centos 6.5下的hello.ko驱动编译结束。

  • 相关阅读:
    PHP $_GET 获取 HTML表单(Form) 或url数据
    dedecms {dede:php}标签用法介绍
    php 连接mysql实例代码
    php 常量、变量用法详细介绍
    mysql出现too many connections错误提示
    支持中文字母数字、自定义字体php验证码程序
    我的LinqToSql学习笔记(1)
    使用Git新建项目 (命令行)
    使用SQL Server Profiler
    sqlserver2008 中使用 表值 参数
  • 原文地址:https://www.cnblogs.com/paladinzxl/p/4787128.html
Copyright © 2020-2023  润新知