<linux/init.h>及<linux/module.h>头文件不存在等问题如何解决

这个问题真心是处理了一个下午,还自己去下载了个最新的内核拿来编译,其实是完全没必要的,因为ubuntu系统是可以直接下载新内核的。

你可以在/usr/src/文件夹下找到这些内核文件夹,比如说我自己的系统:

写博客的时候使用的是3.13.0-19的内核。

写一个hello.c的测试文件:

 1 #include <linux/kernel.h> /*Needed by all modules*/
 2 #include <linux/module.h> /*Needed for KERN_* */
 3 #include <linux/init.h> /* Needed for the macros */
 4
 5 MODULE_LICENSE("GPL");
 6
 7 static int year=2014;
 8
 9 static int hello_init(void)
10 {
11   printk(KERN_WARNING "Hello kernel, it's %d!\n",year);
12   return 0;
13 }
14
15
16 static void hello_exit(void)
17 {
18   printk("Bye, kernel!\n");
19 }
20
21 /* main module function*/
22 module_init(hello_init);
23 module_exit(hello_exit);

然后用kbuild标准写一个Makefile文件:

1 obj-m := hello.o
2
3 all :
4     $(MAKE) -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
5
6 clean:
7     $(MAKE) -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean 

obj-m := name.o表示会编译一个模块(-m),生成的name.o文件来自于name.c文件。

本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/OS/Linux/

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索文件
, include
, 内核
, static
, 一个
, Modules
&lt;assert.h&gt;
,以便于您获取更多的相关知识。

时间: 2023-01-06

&lt;linux/init.h&gt;及&lt;linux/module.h&gt;头文件不存在等问题如何解决的相关文章

linux入门之 带你剖析linux目录结构

                   随着Linux的不断发展,越来越多的人开始使用Linux,对于那些刚刚接触的人来说,恐怕最先感到困惑的就是那些"不明不白"的目录了.如果想熟练使用Linux,让Linux听命于自己,就必须掌握这些目录,下面就以Xteam公司的最新产品--XteamLinux 4.0为例,介绍一下在该系统下的目录.   /bin bin是Binary的缩写.这个目录存放着最经常使用的命令.   /boot这里存放的是启动Linux时使用的一些核心文件,包括一些链接文

Linux init详解(转)

Linux init详解 一.什么是INIT: init是Linux系统操作中不可缺少的程序之一. 所谓的init进程,它是一个由内核启动的用户级进程. 内核自行启动(已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等)之后,就通过启动一个用户级程序init的方式,完成引导进程.所以,init始终是第一个进程(其进程编号始终为1). 内核会在过去曾使用过init的几个地方查找它,它的正确位置(对Linux系统来说)是/sbin/init.如果内核找不到init,它就会试着运行/b

Linux init 0-6 启动级别

原文地址:http://blog.sina.com.cn/s/blog_5f8e8d9801010wlr.html 原文地址:[转]Linux init 0-6 启动级别作者:流水清风 init 0-6 (启动级别:init 0,1,2,3,4,5,6) (2011-09-27 11:20:14) 转载 标签: 杂谈 分类: IT技术研究 启动级别:init 0,1,2,3,4,5,6 2010-10-29 15:47:50|  分类: linux之路 阅读376 评论0   字号:大中小 订阅

Linux内核分析(一)---linux体系简介|内核源码简介|内核配置编译安装

原文:Linux内核分析(一)---linux体系简介|内核源码简介|内核配置编译安装 Linux内核分析(一) 从本篇博文开始我将对linux内核进行学习和分析,整个过程必将十分艰辛,但我会坚持到底,同时在博文中如果那些地方有问题还请各位大神为我讲解. 今天我们会分析到以下内容: 1.      Linux体系结构简介 2.      Linux内核源码简介 3.      Linux内核配置.编译.安装   l  Linux体系结构简介 1.       Linux体系结构(linux系统构

十天学Linux内核之第八天---构建Linux内核

原文:十天学Linux内核之第八天---构建Linux内核 今天是腊八节,说好的女票要给我做的腊八粥就这样泡汤了,好伤心,好心酸呀,看来代码写久了真的是惹人烦滴,所以告诫各位技术男敲醒警钟,不要想我看齐,不然就只能和代码为伴了的~~话说没了腊八粥但还是有代码,还有各位读者的支持呀,所以得继续写下去,静下心来,完成Linux内核的学习,坚持,加油~ 到目前为止,我们已经认识了Linux内核子系统,也探究了系统的初始化过程,并且深入探索了start_kernel()函数,同样,了解内核映像的创建也是

在linux内核添加自己写的头文件编译失败

问题描述 在linux内核添加自己写的头文件编译失败 我把一个自己编写的函数放在了自己写的en_decrypt_fun.h头文件中,这个头文件放在了/fs/yaffs2目录下面,现在想在/drivers/mmc/core/sd.c文件中调用这个自己写的函数,然后我就在这个C文件中写了一个include "/fs/yaffs2/en_decrypt_fun.h,结果make的时候编译报错,找不到/fs/yaffs2/en_decrypt_fun.h这个目录或文件. 请问各位linux大神,我是应该

Linux常用开发服务器的代码[Linux zhoulifa ]

经常用到的几个自定义函数:1.开启监听的函数 http://linux.chinaunix.net/bbs/viewthread.php?tid=786283&extra= /*************************关于本函数************************************  *function_name: OpenSCPServer  *参数说明:port整数型监听端口号,total整数型监听个数,sendbuflen整数型发送缓冲区大小  *        

linux目录详解linux目录结构详细分析_unix linux

根文件系统一般应该比较小,因为包括严格的文件和一个小的不经常改变的文件系统不容易损坏.损坏的根文件系统一般意味着除非用特定的方法(例如从软盘)系统无法引导,所以不应该冒这个险.根目录一般不含任何文件,除了可能的标准的系统引导映象,通常叫/vmlinuz .所有其他文件在根文件系统的子目录中. /bin 引导启动所需的命令或普通用户可能用的命令(可能在引导启动后). /sbin 类似/bin ,但不给普通用户使用,虽然如果必要且允许时可以使用. /etc 特定机器的配置文件. /root root

LINUX安全管理的基本技巧_unix linux

LINUX安全管理的基本技巧 中华信息阵地 http://www.cnxxz.net 作者:greeniceLinux作为是一个开放源代码的免费操作系统,以其高效隐定的优秀品质,越来越受到用户们的欢迎,并在全世界不断普及开来.相信在不久的将来Linux还会得到更大更快的发展.虽然,Linux和Unix很相似,但是它们之间还是有不少重要的差别.对于很多习惯了UNIX和Windows的系统管理员来讲,如何保证Linux操作系统的安全可靠将面临许多新的挑战.本文在此将给大家介绍一些Linux管理安全的