Linux驱动开发 前 为什么要配置编译内核?

新下载下来Linux源代码,把驱动程序的xxx.c文件放到该源码的drivers/char/下并在该目录下的Makefile中增加这个obj-m+=xxx.o文件,并在源... 新下载下来Linux源代码,把驱动程序的xxx.c文件放到该源码的drivers/char/下并在该目录下的Makefile中增加这个obj-m += xxx.o文件,并在源码顶层目录下执行make modules。输出结果中有下面几行:
#-----------------------------------------------------------------
scripts/kconfig/conf -s arch/i386/Kconfig
***
*** You have not yet configured your kernel!
*** (missing kernel .config file)
***
*** Please run some configurator (e.g. "make oldconfig" or
*** "make menuconfig" or "make xconfig").
***
make[2]: *** [silentoldconfig] 错误 1
make[1]: *** [silentoldconfig] 错误 2

#--------------------------------------------------------

是不是在编译驱动程序前要配置、编译一下内核?为什么呢?需要它的.config文件?
另外,这样是不是意味着即使是在同一个2.6.xx版本的内核,驱动程序都未必通用?
展开
 我来答
beijingfuqiang
2010-11-30 · 超过24用户采纳过TA的回答
知道答主
回答量:106
采纳率:0%
帮助的人:0
展开全部
编译前当然要配置一下内核啊,make menuconfig ,生成默认配置文件 .config ,这个文件是设置 cpu 体系,及很多驱动选项的,你没配置这个,怎么可能编译那

前面那个说 linux 和微软竞争是扯淡的那位,我只能说你根本不懂内核编译,无知

新下载的内核都是没有默认 .config 需要你找到一个默认的config 文件,比如 arch/arm/configs/ 下是 arm cpu 很多的默认配置,当然你也可以把你以前的 config 文件拷贝到新内核目录下。

.config 是配置编译内核的最初步骤,你要编译驱动程序,就必须要了解这个,多上网查下资料

然后重新编译
yao165671242
2010-12-01
知道答主
回答量:4
采纳率:0%
帮助的人:0
展开全部
你将驱动编译成模块的形式,你想kernel启动能加载该驱动模块,就要先通知kernel有这个模块存在,让kernel为加载它做一些准备。所以要配置内核。。。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dbsrv
2010-11-29 · TA获得超过2574个赞
知道大有可为答主
回答量:2373
采纳率:44%
帮助的人:1134万
展开全部
linux不同发行版、甚至同发行版但不同内核之间的驱动都很难兼容的。

从这点上说,windows做得更好一些。比如95和98之间兼容就很好,而NT5.0内核的2000、XP、2003之间的驱动兼容性也很好。
不解决驱动的问题,linux跟微软竞争桌面简直是扯蛋。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式