[求救]一个最简单的内核模块
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
-
- 帖子: 26
- 注册时间: 2008-03-18 13:23
[求救]一个最简单的内核模块
#include <linux/init.h>
#include <linux/module.h>
MODULE_LICENSE("Dual BSD/GPL");
static int hello_init(void)
{
printk(KERN_INFO " Hello World enter\n");
return 0;
}
static void hello_exit(void)
{
printk(KERN_INFO " Hello World exit\n ");
}
module_init(hello_init);
module_exit(hello_exit);
MODULE_AUTHOR("Song Baohua");
MODULE_DESCRIPTION("A simple Hello World Module");
MODULE_ALIAS("a simplest module");
编译的时候提示
hello.c:7:24: 错误: linux/init.h:No such file or directory
hello.c:8:26: 错误: linux/module.h:No such file or directory
怎么办啊?已经用了sudo apt-get install linux-headers-`uname -r` 之后显示共升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 0 个软件未被升级, 然后还是出同样的错?
#include <linux/module.h>
MODULE_LICENSE("Dual BSD/GPL");
static int hello_init(void)
{
printk(KERN_INFO " Hello World enter\n");
return 0;
}
static void hello_exit(void)
{
printk(KERN_INFO " Hello World exit\n ");
}
module_init(hello_init);
module_exit(hello_exit);
MODULE_AUTHOR("Song Baohua");
MODULE_DESCRIPTION("A simple Hello World Module");
MODULE_ALIAS("a simplest module");
编译的时候提示
hello.c:7:24: 错误: linux/init.h:No such file or directory
hello.c:8:26: 错误: linux/module.h:No such file or directory
怎么办啊?已经用了sudo apt-get install linux-headers-`uname -r` 之后显示共升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 0 个软件未被升级, 然后还是出同样的错?
-
- 帖子: 26
- 注册时间: 2008-03-18 13:23
提示
E: 无效的操作 search
如果把search改成install
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
读取状态信息... 完成
软件包 linux-headers 是一个由下面的软件包提供的虚拟软件包:
linux-headers-2.6.20-16-server-bigiron 2.6.20-16.35
linux-headers-2.6.20-16-server 2.6.20-16.35
linux-headers-2.6.20-16-lowlatency 2.6.20-16.35
linux-headers-2.6.20-16-generic 2.6.20-16.35
linux-headers-2.6.20-16-386 2.6.20-16.35
linux-headers-2.6.20-16 2.6.20-16.35
linux-headers-2.6.20-15-server-bigiron 2.6.20-15.27
linux-headers-2.6.20-15-server 2.6.20-15.27
linux-headers-2.6.20-15-lowlatency 2.6.20-15.27
linux-headers-2.6.20-15-generic 2.6.20-15.27
linux-headers-2.6.20-15-386 2.6.20-15.27
linux-headers-2.6.20-15 2.6.20-15.27
请您明确地选择一个来进行安装。
怎么选择呢?
E: 无效的操作 search
如果把search改成install
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
读取状态信息... 完成
软件包 linux-headers 是一个由下面的软件包提供的虚拟软件包:
linux-headers-2.6.20-16-server-bigiron 2.6.20-16.35
linux-headers-2.6.20-16-server 2.6.20-16.35
linux-headers-2.6.20-16-lowlatency 2.6.20-16.35
linux-headers-2.6.20-16-generic 2.6.20-16.35
linux-headers-2.6.20-16-386 2.6.20-16.35
linux-headers-2.6.20-16 2.6.20-16.35
linux-headers-2.6.20-15-server-bigiron 2.6.20-15.27
linux-headers-2.6.20-15-server 2.6.20-15.27
linux-headers-2.6.20-15-lowlatency 2.6.20-15.27
linux-headers-2.6.20-15-generic 2.6.20-15.27
linux-headers-2.6.20-15-386 2.6.20-15.27
linux-headers-2.6.20-15 2.6.20-15.27
请您明确地选择一个来进行安装。
怎么选择呢?
-
- 帖子: 26
- 注册时间: 2008-03-18 13:23
-
- 帖子: 26
- 注册时间: 2008-03-18 13:23
输入uname -r 后显示liuboadsl 写了:如果你是穿着超短裙的超级可爱美少女,那应该是多么美妙啊..
uname -r
搜索相应的头文件,并且安装它们
2.6.20-16-generic
再输入sudo apt-get install linux-headers-2.6.20-16-generic
显示
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
读取状态信息... 完成
linux-headers-2.6.20-16-generic 已经是最新的版本了。
共升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 0 个软件未被升级。
而且在/usr/src/下没有2.6.20-16-generic这个,只有linux-headers-2.6.20-15,linux-headers-2.6.20-15-generic,linux-headers-2.6.20-16,linux-headers-2.6.20-16-generic这四个文件
该怎么办啊?
-
- 帖子: 26
- 注册时间: 2008-03-18 13:23
PWD = $(shell pwd)kinwin 写了:show your Makefile
KERNEL_SRC = /usr/src/linux-headers-2.6.20-15
obj-m := test.o
module-objs := test.o
all:
$(MAKE) -C $(KERNEL_SRC) M=$(PWD) modules
clean:
rm *.ko
rm *.o
这样的
make后提示/bin/sh: scripts/mod/modpost: not found
make[2]: *** [__modpost] 错误 127
make[1]: *** [modules] 错误 2
make[1]: Leaving directory `/usr/src/linux-headers-2.6.20-15'
make: *** [all] 错误 2
-
- 帖子: 113
- 注册时间: 2006-08-17 6:10
简单的内核模块没必要makefile
另外,上面的写法适合 2.4 版本的内核 参考linux device drivers
如果还是不行, 具体操作可以参考下两篇文章, 希望能对你有所帮助
http://blog.csdn.net/pottichu/archive/2 ... 92245.aspx
http://blog.chinaunix.net/u2/66806/showart_571450.html
另外,上面的写法适合 2.4 版本的内核 参考linux device drivers
如果还是不行, 具体操作可以参考下两篇文章, 希望能对你有所帮助
http://blog.csdn.net/pottichu/archive/2 ... 92245.aspx
http://blog.chinaunix.net/u2/66806/showart_571450.html