【问题标题】:linux/module.h No such file or Directorylinux/module.h 没有这样的文件或目录
【发布时间】:2015-03-05 04:10:14
【问题描述】:

对于我的论文,我正在使用 ARAN 协议创建一个马奈特。安装协议我用的是this manual,但是第一步,创建trace_route,收到如下错误:

-linux/module.h: No such file or directory

-linux/procs_Fs: No such file or directory

-linux/skbuff: No such file or directory

我在网上搜索,发现问题出在标题中,但我没有找到解决方案......

附:我正在使用 Ubuntu 10.04 LTS 内核 2.6.33 重新编译

【问题讨论】:

    标签: linux module linux-kernel ubuntu-10.04 adhoc


    【解决方案1】:

    您缺少允许您针对 Linux 内核编译代码的 Linux 内核头文件。

    Ubuntu 中仅安装标头:

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

    Ubuntu 中安装整个 Linux 内核源代码:

    $ sudo apt-get install linux-source
    

    请注意,您应该使用与您正在运行的内核匹配的内核头文件。

    【讨论】:

      【解决方案2】:
      **/*source file name is basic.c */**
      
      #include <linux/init.h>
      #include <linux/module.h>
      /*MODULE_LICENSE("Dual BSD/GPL");*/
      static int hello_init(void)
      {
          printk(KERN_ALERT "Hello, world\n");
          return 0;
      }
      static void hello_exit(void)
      {
          printk(KERN_ALERT "Goodbye, cruel world\n");
      }
      module_init(hello_init);
      module_exit(hello_exit);
      

      ======================================

      现在为 ubuntu 制作文件

      /*首先在你的终端上输入 $(uname -r) 然后你会得到版本.. 在你的系统上使用 */

      obj-m +=basic.o
      
      KDIR =//usr/src/linux-headers-3.13.0-44-generic
      
      all:
       $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
      clean:
       rm -rf *.o *.ko *.mod.* *.symvers *.order
      

      ================================================ =

      运行代码

      $sudo insmode basic.ko
      $dmesg
      u will get the output
      $sudo rmmod basic.ko
      $dmesg
      

      【讨论】:

      • “Linux 设备驱动程序,第三版”中示例的不错的工作示例 - 谢谢。
      • 谢谢@SimonPeverett先生
      猜你喜欢
      • 2012-04-24
      • 1970-01-01
      • 2022-07-12
      • 2015-04-10
      • 1970-01-01
      • 1970-01-01
      • 2014-04-12
      • 2013-07-17
      • 1970-01-01
      相关资源
      最近更新 更多