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版本的内核,驱动程序都未必通用? 展开
#-----------------------------------------------------------------
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版本的内核,驱动程序都未必通用? 展开
3个回答
展开全部
编译前当然要配置一下内核啊,make menuconfig ,生成默认配置文件 .config ,这个文件是设置 cpu 体系,及很多驱动选项的,你没配置这个,怎么可能编译那
前面那个说 linux 和微软竞争是扯淡的那位,我只能说你根本不懂内核编译,无知
新下载的内核都是没有默认 .config 需要你找到一个默认的config 文件,比如 arch/arm/configs/ 下是 arm cpu 很多的默认配置,当然你也可以把你以前的 config 文件拷贝到新内核目录下。
.config 是配置编译内核的最初步骤,你要编译驱动程序,就必须要了解这个,多上网查下资料
然后重新编译
前面那个说 linux 和微软竞争是扯淡的那位,我只能说你根本不懂内核编译,无知
新下载的内核都是没有默认 .config 需要你找到一个默认的config 文件,比如 arch/arm/configs/ 下是 arm cpu 很多的默认配置,当然你也可以把你以前的 config 文件拷贝到新内核目录下。
.config 是配置编译内核的最初步骤,你要编译驱动程序,就必须要了解这个,多上网查下资料
然后重新编译
展开全部
你将驱动编译成模块的形式,你想kernel启动能加载该驱动模块,就要先通知kernel有这个模块存在,让kernel为加载它做一些准备。所以要配置内核。。。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
linux不同发行版、甚至同发行版但不同内核之间的驱动都很难兼容的。
从这点上说,windows做得更好一些。比如95和98之间兼容就很好,而NT5.0内核的2000、XP、2003之间的驱动兼容性也很好。
不解决驱动的问题,linux跟微软竞争桌面简直是扯蛋。
从这点上说,windows做得更好一些。比如95和98之间兼容就很好,而NT5.0内核的2000、XP、2003之间的驱动兼容性也很好。
不解决驱动的问题,linux跟微软竞争桌面简直是扯蛋。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询