建立内核树:
从www.kernel.org下载了linux-2.6.32.11的源码
开始配置:#make oldconfig
出现大量需要配置的新属性,由于本人E文较差,对于配置项的意思基本靠蒙,实在梦不出来就按y
惨痛的经历开始了:
开始#make,出现了大量的警告
一个多小时之后终于make完了,然后#make modules_install,失败!
分析原因:我现在用的系统是fedora core11,内核为linux-2.6.30.10,
而我下载的源码比系在的版本高,所以出现了大量的需要配置的新选项
于是我又重新下载了linux-2.6.30.10的源码,
#make oldconfig
竟然没有任何需要手动配置的
#make
一个小时以后
#make modules_install
然后#make install
#reboot
成功进入新编译的系统!
照书写了一段代码:
//module_hello.c
#include
#include
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);
写Makefile:
obj-m :=module_hello.o//照书上写的!
#make -C /usr/src/linux-2.6.30.10 M='pwd' module_hello
然后#make,失败,毫无头绪之下,上网搜
重写Makefile:
obj-m :=module_hello.o
KERNELDIR:=/lib/modules/2.6.30.10/build
PWD:=$(shell pwd )
modules:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
modules_install:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules_install
#make
# ls -l|grep module_hello.ko
-rw-r--r--. 1 root root 67847 04-23 21:40 module_hello.ko
#telinit 3 切换到文本控制台
#insmod module_hello.ko
哈哈!果然输出hello,world!
成功!
总结:对内核结构了解太少,所以此情况下,最好不要从源码编译太新的内核,因为那样会让你载配置的时候遇到大量困难,同时应该进一步学习内核相关知识
对make和Makefile了解太少,需要进一步了解make的使用方法和make的过程,以及Makefile的编写规则,还有内核模块的编译方法和过程
以上是我的实践经历,希望对打算开始学习linux驱动程序的朋友有所帮助,同时我认为不能像我这样太浮躁,一定要打好基础再开始,


lanlinux2012 于 2012-07-30 13:23:55发表:
路过
happynail1989 于 2012-07-28 11:35:56发表:
难啊
5644 于 2011-03-15 19:56:42发表:
这个以后的目标
373622116 于 2011-03-14 22:30:12发表:
干干开始
pallana 于 2010-09-03 21:19:00发表:
学习学习
dengt 于 2010-09-03 08:41:33发表:
刚开始,呵呵
glxin1982 于 2010-05-14 17:16:52发表:
:0wpoi2
bujiaxue 于 2010-05-14 16:58:02发表:
学习!学习
lwj19872002 于 2010-05-14 16:44:43发表:
万事开头难~~~我正迈步向Linux的世界~
1106194350 于 2010-05-14 00:42:47发表:
该好好学习make和makefile。。。。。刚学习,离内核还有很大距离....
a3670503 于 2010-05-12 06:22:27发表:
刚开始学,不知道什么时侯有实力编内核
sony7019 于 2010-05-04 12:20:43发表:
先标记个 过两天我就要来研究研究这个了
太阳之光 于 2010-05-04 12:19:27发表:
看不明白????????
dreamsshell 于 2010-05-04 11:39:05发表:
sdulqs 于 2010-05-02 20:15:25发表:
佩服
瀚海孤帆 于 2010-05-02 09:24:43发表:
新手,刚开始
cdp 于 2010-05-02 08:46:25发表:
太让人敬佩了
hujunhu 于 2010-05-01 23:00:04发表:
刚开始,呵呵
naruto01 于 2010-04-25 21:01:38发表:
学好Linux的使用我就阿弥陀佛了
puyan111 于 2010-04-25 20:55:58发表:
????????
wangchao_ 于 2010-04-25 16:25:13发表:
能深入内核才是linux的独特之处
wangchao_ 于 2010-04-25 16:24:25发表:
想学
hantu 于 2010-04-24 12:35:23发表:
想玩内核的话最好还是有点点C编程及编译软件的基础,不然满屏满屏都是看不懂的内容,一点意思都没有.
wangyu 于 2010-04-24 10:33:57发表:
原来是用老内核
loife 于 2010-04-24 08:46:49发表:
佩服
yuliuliu777 于 2010-04-24 01:32:13发表:
不太明白