zoukankan      html  css  js  c++  java
  • linux/module.h: No such file or directory 内核模块编译过程

    1、缺少Linux kernel头文件

    To install just the headers in Ubuntu:

    sudo apt-get install linux-headers-$(uname -r)

    To install the entire Linux kernel source in Ubuntu:

    sudo apt-get install linux-source

    Note that you should use the kernel headers that match the kernel you are running.

    2、内核模块编译过程ubuntu

    源码 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
    ");
            return 0;
    }
    
    static void hello_exit(void)
    {
            printk(KERN_ALERT "Goodbye, cruel world
    ");
    }
    
    module_init(hello_init);
    module_exit(hello_exit);
    

     

    Makefile文件

     

    # at first type on ur terminal that $(uname -r) then u will get the version.. 
    # that is using on ur system
    
    obj-m += hello.o
    
    KDIR =/usr/src/linux-headers-$(shell uname -r)
    
    all:
            $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
    
    clean:
            rm -rf *.o *.ko *.mod.* *.symvers *.order
    

     

    内核模块运行:

     

    $ sudo insmod hello.ko
    $ dmesg           ==> u will get the output
    $ sudo rmmod hello
    $ dmesg
    

     

    参考链接:http://stackoverflow.com/questions/16919512/linux-module-h-no-such-file-or-directory

     

  • 相关阅读:
    Java实现2048小游戏
    归并排序【代码】
    插入排序【代码】
    选择排序【代码】
    考试系统
    九九乘法表
    万年历
    猜数游戏
    C++知识点(杂)
    Core Data ,inverse
  • 原文地址:https://www.cnblogs.com/zhangjy6/p/5462644.html
Copyright © 2011-2022 走看看