• «
  • 1
  • 2
  • »
  • Pages: 1/2     Go
主题 : 请教关于menuconfig后相应模块不显示的问题 复制链接 | 浏览器收藏 | 打印
级别: 侠客
UID: 3241
精华: 0
发帖: 57
金钱: 435 两
威望: 327 点
综合积分: 114 分
注册时间: 2009-01-01
最后登录: 2017-05-18
楼主  发表于: 2009-04-06 17:34

 请教关于menuconfig后相应模块不显示的问题

问驱动模块menuconfig后显示的问题:
自己写一驱动模块后,源码加到char目录;修改drivers/ char中的kconfig makefile...然后menuconfig不能显示相应的模块。只有把友善给的config_n35配置文件加载后才能显示相应的模块...
为什么呢???
如果是一个新的内核没有存有类似config_n35的配置文件,怎么才能让相应模块显示呢?


最近在给2.6.29的内核打yaffs2的补丁,补丁打好后,fs目录下生成了yaffs2文件,其中相应的Kconfig和Makefile也被添加了相应代码。menuconfig后老是不显示yaffs选项,一直找不到解决的办法。

敬请前辈指点
级别: 侠客
UID: 3241
精华: 0
发帖: 57
金钱: 435 两
威望: 327 点
综合积分: 114 分
注册时间: 2009-01-01
最后登录: 2017-05-18
1楼  发表于: 2009-04-06 20:18
相应驱动模块显示的问题解决了,要先确定CPU选项,但yaffs的问题,找不到模块依赖关系....还是没显示出来...
级别: 侠客
UID: 3241
精华: 0
发帖: 57
金钱: 435 两
威望: 327 点
综合积分: 114 分
注册时间: 2009-01-01
最后登录: 2017-05-18
2楼  发表于: 2009-04-06 20:39
depends on MTD_BLOCK的相应选项也选了 的 还是不行
谁给指点指点吧
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
3楼  发表于: 2009-04-06 20:49
把内核源代码目录下的fs/Kconfig文件和.config文件贴出来
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
级别: 侠客
UID: 3241
精华: 0
发帖: 57
金钱: 435 两
威望: 327 点
综合积分: 114 分
注册时间: 2009-01-01
最后登录: 2017-05-18
4楼  发表于: 2009-04-06 21:22
整出来了 OY
级别: 侠客
UID: 3241
精华: 0
发帖: 57
金钱: 435 两
威望: 327 点
综合积分: 114 分
注册时间: 2009-01-01
最后登录: 2017-05-18
5楼  发表于: 2009-04-06 21:28
我换了参考的资料用的内核就是2.6.22.6的,然后多了下面这步:
先拷贝s3c2410开发板的默认配置到内核根目录下,以简化配置过程
       # cp arch/arm/configs/s3c2410_defconfig .config
       # make menuconfig
结果再弄就行了
我用别的内核的时候,没做这一步,我看到“以简化配置过程”觉得可有可无,就没做,是这个的关系吗?
级别: 侠客
UID: 3241
精华: 0
发帖: 57
金钱: 435 两
威望: 327 点
综合积分: 114 分
注册时间: 2009-01-01
最后登录: 2017-05-18
6楼  发表于: 2009-04-06 21:35
我用了2.6.29的内核试了下,结果还真的需要# cp arch/arm/configs/s3c2410_defconfig .config
才能显现yaffs,原来这样不是为了简化配置过程,而是必须的?????
级别: 侠客
UID: 3241
精华: 0
发帖: 57
金钱: 435 两
威望: 327 点
综合积分: 114 分
注册时间: 2009-01-01
最后登录: 2017-05-18
7楼  发表于: 2009-04-06 21:44
可是我打开看了arch/arm/configs/s3c2410_defconfig 里的内容,查找了下也没发现对yaffs有定义的词眼啊,好奇怪,为什么要做# cp arch/arm/configs/s3c2410_defconfig .config 这一步才会显示yaffs选项呢?
版主前辈能给我说说其中的问题所在吗?
级别: 侠客
UID: 3241
精华: 0
发帖: 57
金钱: 435 两
威望: 327 点
综合积分: 114 分
注册时间: 2009-01-01
最后登录: 2017-05-18
8楼  发表于: 2009-04-06 21:51
说到这还想顺便问个问题,就是.config是在最顶层的目录吧,可是.....似乎是个虚拟的东西吧,没找到具体的文件啊!
不要笑我哈!我这没人带我,问题特别多,呵呵!
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
9楼  发表于: 2009-04-06 22:05
.config文件是内核当前使用的默认配置,对于内核的编译系统来说, menuconfig看到的菜单是各个子目录下Kconfig文件和.config文件的解析结果,其中很多菜单选项都是依赖于特定的配置的,如果这些依赖的配置没有在.config中定义,那对应的菜单项是不会被解析的,也就不会被显示。
那yaffs来说, fs/yaffs2/Kconfig中应该有

复制代码
  1. config YAFFS_FS
  2.         tristate "YAFFS2 file system support"
  3.         default n
  4.         depends on MTD_BLOCK

这样的描述,也就是说,要菜单里出现“YAFFS2 file system support”, .config文件里就必须有CONFIG_MTD_BLOCK=y或者CONFIG_MTD_BLOCK=m这样的配置。

其实menuconfig的过程本身就是通过用户的选择生成.config的过程, 因此,配置内核最简单也最安全的办法,就是复制一个和你的目标开发板最接近的内核配置(一般为arch/arm/configs/XXXX_defconfig, 其中XXXX为硬件平台名称)为当前配置,然后根据需要手动修改一些特定的部分,比如

$cp arch/arm/configs/s3c2410_defconfig .config
$make ARCH=arm oldconfig (使.config生效)
$make ARCH=arm menuconfig
(手动修改...)
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
  • «
  • 1
  • 2
  • »
  • Pages: 1/2     Go