QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1368|回复: 6

[求助]Hello World模块载入的错误

[复制链接]
发表于 2004-12-9 13:58:45 | 显示全部楼层 |阅读模式
最近在网上看了编写内核模块的教程,自己写了一个Hello World模块试试。结果编译通过而insmod失败。
以下是Hello World代码:
[code:1]
#include <linux/kernel.h>
#include <linux/module.h>

int init_module()
{
   printk("Hello, my first module!\n");
   printk("Now running in kernel mod!\n");
   return 1;
}

void cleanup_module()
{
   printk("Now I'm shutting down!\n");
}
[/code:1]

这是我的Makefile文件:
[code:1]
CC = gcc
MODCFLAGS = -O2 -Wall -D__KERNEL__ -DMODULE -I /usr/src/linux-2.6.9/include
modu.o: modu.c
$(CC) $(MODCFLAGS) -c modu.c
[/code:1]

编译通过后,运行  #insmod modu.o   显示:
insmod: error inserting 'modu.o': -1 Invalid module format

请教一下这是什么原因?
ps: 我的Linux是Magic Linux 1.2 beta 4 ,内核是2.6.9,原来用默认的/usr/include头文件路径编译无法通过,提示缺少autoconf.h。查了一下,似乎要配置一下内核才有,所以下载了2.6.9内核源代码,配置了内核并修改了头文件路径。
发表于 2004-12-9 15:33:05 | 显示全部楼层
2.6和2.4的区别很大。

http://www.linuxfans.org/nuke/modules.php?name=Forums&file=viewtopic&t=42871
回复

使用道具 举报

 楼主| 发表于 2004-12-10 15:47:16 | 显示全部楼层
谢谢版主回复!
不过问题是,magic linux 1.2 beta 4 的 /lib/modules/`uname -r`/build 指向的是一个不存在的目录!是不是制作小组没有把编译好的内核的所有内容都刻到光盘的映像里?
看来还是要自己编译一个2.6.9的内核并安装后才行了?
回复

使用道具 举报

发表于 2004-12-11 02:36:00 | 显示全部楼层
[quote:8744de284f="archerzz"]谢谢版主回复!
不过问题是,magic linux 1.2 beta 4 的 /lib/modules/`uname -r`/build 指向的是一个不存在的目录!是不是制作小组没有把编译好的内核的所有内容都刻到光盘的映像里?
看来还是要自己编译一个2.6.9的内核并安装后才行了?[/quote]

u can install a source code from magic linux or recompile u own 2.6.9 one.
回复

使用道具 举报

发表于 2004-12-11 10:58:13 | 显示全部楼层
楼上的图很漂亮啊!
回复

使用道具 举报

 楼主| 发表于 2004-12-17 18:19:42 | 显示全部楼层
编译通过,不过insmod的时候没有显示hello world,rmmod的时候也是如此,这时为什么呢?
回复

使用道具 举报

发表于 2004-12-19 12:03:27 | 显示全部楼层
cat /proc/kmsg就能看到了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-16 09:45 , Processed in 0.085389 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表