cjjnjust 发表于 2010-09-06 22:10

新手,问基础问题。

本帖最后由 cjjnjust 于 2010-09-13 14:23 编辑

最近学习LINUX驱动程序开发,我看的是《精通Linux 驱动程序开发》有下面几个问题哈:
1.驱动编写后放到内核中,如何编译,链接,调试?
好像是要设置成模块,再编译。然后取出.KO文件,放到某个地方?再insmod。
但是具体怎么操作不懂。望好心人出来教下。谢谢拉


十楼的同志,希望快速回复是每个上网发贴者的心情,那并不代表我不看书,浮躁。
象我这样的初学者很多。要是能够回答,不就让更多的初学者受益。
看看这个帖子,居然能够排在第一个这么久。我不信大家驱动开发的过程中都没遇到问题。这是一个氛围问题。
难道你不是从初学者过来,或者你初学的时候看书都没遇到问题。

我是希望牛人们能给点入门的捷径。毕竟万事开头难。还有Linux社区不是本来就是应该有更多这种的讨论的,或者请教的吗?

accessory 发表于 2010-09-07 00:02

read <linux device drivers> 3rd edition.

cjjnjust 发表于 2010-09-07 10:02

拜托,你就当做你复习一遍拉。
我看了LDD3拉,问题是里面描述的很乱。。。
比如23页的那段代码。为什么Entering directory `/usr/src/linux-2.6.10`后就会
CC /home/ldd3/src/misc-modules/hello.o
希望给点经验阿。。。

klanet 发表于 2010-09-07 22:17

这个问题很基础 建议google
或者查看一些linux驱动开发书籍

cjjnjust 发表于 2010-09-09 21:04

虽然说简单,但希望能给点提示,这样效率会高点,不是没看书。毕竟说的不是很清楚。
花一分钟的时候解决的问题,要看一堆东西。觉的不值得。如果国内的人,都这么学习Linux,估计一百年都不会有系统出现,大家都在找资料,学习、查资料。当学会windows的时候,学Linux,如果有一天 量子计算机出来了。所有的东西都更新换代了。是不是我们又得重头开始学习。
难道我们就不能站在巨人的肩膀上?

ifneq ($(KERNELRELEASE),)
obj-m := module.o
module-objs := file1.o file2.o
else
    PWD := $(shell pwd)
    KVER ?= $(shell uname -r)
    KDIR := /lib/modules/$(KVER)/build
modules:
    $(MAKE) -C $(KDIR) M=$(PWD) modules
modules_install:
    $(MAKE) -C $(KDIR) M=$(PWD) modules_insall
clean:
    rm -rf .*.cmd *.o *.mod.c *.ko .tmp_versions
endif

这样的速度 ,怪不得国人只会生产汉芯。

lelee007 发表于 2010-09-09 22:31

晕翻,驱动的编译有两种方式,一种是静态编译进内核,一种是编译成模块

静态编译进内核的话,找到合适的目录,将驱动源码放到下面,修改Makefile和Kconfig文件,然后编译整个内核

模块就是你说的编译成.ko,然后insmod啦

atiansk 发表于 2010-09-10 17:04

quote:

1.驱动编写后放到内核中,如何编译,链接,调试?
好像是要设置成模块,再编译。然后取出.KO文件,放到某个地方?再insmod。
但是具体怎么操作不懂。望好心人出来教下。谢谢拉

我来试着回答一下:

编写驱动有它的模式,驱动运行在 kernel space, 首先你得在自己的 linux 系统上建立 kernel tree, 源码可以从 www.kernel.org上down.

驱动需要在编译好的内核源码的环境下进行编译,编成.ko文件,然后再 insmod, 至于调试,确保代码无误的情况下,需要自己写user space 的code 进行 test 驱动。

atiansk 发表于 2010-09-10 17:09

补充一下,具体怎么操作:

刚开始可能觉得不知道如何具体操作,那就多看源码吧,或者别人的驱动代码,或者简单的驱动框架。

从 module_init(...); 开始.

cjjnjust 发表于 2010-09-11 10:48

谢谢了。{:3_190:} 记得当初学C++的时候。有个论坛叫vckbase,当时那个回复的速度阿,只能用两个字形容。神速。
就算CSDN也还可以。
不知道Linux这边,有什么神论坛?

lelee007 发表于 2010-09-11 12:30

本帖最后由 lelee007 于 2010-09-11 12:31 编辑

chinaunix应该是中文论坛里边算NB的了

LZ觉得不爽去逛外文论坛呗

自己不下功夫好好看书,光指着别人快速回复,这根本不是个认真的治学态度
页: [1] 2
查看完整版本: 新手,问基础问题。