转from http://blog.platinum.net.cn/index.php?op=ViewArticle&articleId=34&blogId=1

加载ip_nat_ftp.o模块时,出现下列错误

[root@PT-LINUX 2.4.21-27.0.1.ELsmp]# modprobe ip_nat_ftp
modprobe: Too deep recursion in module dependencies!
modprobe: Circular dependency? ip_nat_core ip_nat_proto_udp ip_conntrack ip_nat_ftp
Aborted
[root@PT-LINUX 2.4.21-27.0.1.ELsmp]#

调用-j MASQUERADE时,也无法自动载入ipt_MASQUERADE.o模块,现象很奇怪

查阅很多资料后,没有得到答案

问题出在modprobe上,于是modprobe --help

[root@PT-LINUX 2.4.21-27.0.1.ELsmp]# modprobe --help
modprobe 2.4.27
Load/Unload modules with dependencies

Load module(s):
modprobe [-a -n -v ] [-C config ] [ -t type ] pattern OR module1 module2 ...
List modules:
modprobe [-l ] [-C config ] [ -t type ] pattern
note: wildcard patterns should be escaped
Show configuration:
modprobe [-C config ] -c
Remove module(s) or autoclean:
modprobe [-C config ] -r [ module ...]

options:
-a, --all Load _all_ matching modules
-c, --showconfig Show current configuration
-d, --debug Print debugging information
-h, --help Print this message
-k, --autoclean Set 'autoclean' on loaded modules
-l, --list List matching modules
-n, --show Don't actually perform the action
-q, --quiet Quiet operation
-r, --remove Remove module (stacks) or do autoclean
-s, --syslog Use syslog to report
-t, --type moduletype Only look for modules of this type
-v, --verbose Print all commands
-V, --version Show version
-C, --config configfile Use instead of /etc/modules.conf
[root@PT-LINUX 2.4.21-27.0.1.ELsmp]#

发现了-c参数,于是modprobe -c,发现/lib/modules/xxxxx/modules.dep文档可疑,于是打开了modules.dep

哈哈,问题就在那里

删除了几行,但是ip_nat_ftp在启动的时候还是不能自动加载,后来又根据lsmod的结果,添加了一行,OK了

modprobe是要查询modules.dep来确定依赖性的...