关于hello world的问题

内核编译和嵌入式产品的设计与开发
回复
小左
帖子: 55
注册时间: 2008-05-09 22:00
联系:

关于hello world的问题

#1

帖子 小左 » 2008-05-28 21:03

小弟刚开始接触潜入式系统,写了一个程序,请大侠们指点一下:
/*hello.c*/
#include<linux/init.h>
#include<linux/module.h>
#include<linux/moduleparam.h>
MODULE_LICENSE("Dual BSD/GPL");
static int hello_init(void)
{
printk(KERN_ALERT "hello,world\n");
return 0;
}
static int hello_exit(void)
{
printk(KERN_ALERT "goodbye,world\n");
return 0;
}
module_init(hello_init);
module_exit(hello_exit);

之后写了一个makefile程序
ifeq ($(KERNELRELEASE),)
KERNELDIR ?= /lib/modules/$(shell uname -r)/build
PWD :=$(shell pwd)
modules:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
modules_install:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules_install
clean:
rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions
.PHONY:modules modules_install clean
else
obj-m:=hello.o
endif

在根目录下执行make,结果如下:
root@wuyi:/home/wuyi/hello# make
make -C /lib/modules/2.6.24-16-generic/build M=/home/wuyi/hello modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.24-16-generic'
Building modules, stage 2.
MODPOST 1 modules
make[1]: Leaving directory `/usr/src/linux-headers-2.6.24-16-generic'
在此目录下执行:insmod hello.ko,结果什么都看不到,恳请大侠指点,这是怎么回事阿,谢谢
yiqinchen
帖子: 19
注册时间: 2008-05-22 20:29

#2

帖子 yiqinchen » 2008-05-28 22:05

.ko
这后缀 有点问题吧
zclever
帖子: 4
注册时间: 2008-05-29 8:39

#3

帖子 zclever » 2008-05-29 9:48

请问楼主,加载的时候报错了吗?
如果没有报错那就成功了,你可以cat /var/log/syslog |grep hello
查看日志,如果有hello,world就说明成功了。

我的情况和你一样。需要查看日志 :D
May 29 09:39:11 localhost kernel: [17182948.844000] Hello world!
zclever
帖子: 4
注册时间: 2008-05-29 8:39

#4

帖子 zclever » 2008-05-29 10:00

或者用lsmod查看是否有你刚刚加载的模块
小左
帖子: 55
注册时间: 2008-05-09 22:00
联系:

#5

帖子 小左 » 2008-06-01 21:45

谢谢3楼的zclever,成功了,我看到hello,world了
回复