免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3121 | 回复: 11
打印 上一主题 下一主题

新手,问基础问题。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-09-06 22:10 |只看该作者 |倒序浏览
本帖最后由 cjjnjust 于 2010-09-13 14:23 编辑

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



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

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

论坛徽章:
0
2 [报告]
发表于 2010-09-07 00:02 |只看该作者
read <linux device drivers> 3rd edition.

论坛徽章:
0
3 [报告]
发表于 2010-09-07 10:02 |只看该作者
拜托,你就当做你复习一遍拉。
我看了LDD3拉,问题是里面描述的很乱。。。
比如23页的那段代码。为什么Entering directory `/usr/src/linux-2.6.10`后就会
CC [M] /home/ldd3/src/misc-modules/hello.o
希望给点经验阿。。。

论坛徽章:
0
4 [报告]
发表于 2010-09-07 22:17 |只看该作者
这个问题很基础 建议google
或者查看一些linux驱动开发书籍

论坛徽章:
0
5 [报告]
发表于 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

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

论坛徽章:
3
卯兔
日期:2013-08-26 22:14:57未羊
日期:2013-09-08 19:16:05未羊
日期:2014-10-23 10:34:12
6 [报告]
发表于 2010-09-09 22:31 |只看该作者
晕翻,驱动的编译有两种方式,一种是静态编译进内核,一种是编译成模块

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

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

论坛徽章:
0
7 [报告]
发表于 2010-09-10 17:04 |只看该作者
quote:

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


我来试着回答一下:

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

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

论坛徽章:
0
8 [报告]
发表于 2010-09-10 17:09 |只看该作者
补充一下,具体怎么操作:

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

从 module_init(...); 开始.

论坛徽章:
0
9 [报告]
发表于 2010-09-11 10:48 |只看该作者
谢谢了。{:3_190:} 记得当初学C++的时候。有个论坛叫vckbase,当时那个回复的速度阿,只能用两个字形容。神速。
就算CSDN也还可以。
不知道Linux这边,有什么神论坛?

论坛徽章:
3
卯兔
日期:2013-08-26 22:14:57未羊
日期:2013-09-08 19:16:05未羊
日期:2014-10-23 10:34:12
10 [报告]
发表于 2010-09-11 12:30 |只看该作者
本帖最后由 lelee007 于 2010-09-11 12:31 编辑

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

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

自己不下功夫好好看书,光指着别人快速回复,这根本不是个认真的治学态度
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP