|
SIOCSIFFLAGS: Invalid argument
操作系统:Slackware-current 2008年2月下载
安装方式:硬盘
内核:2.6.24.3自己编译
网卡:ADMtek nc100 tulip系
上网方式:上海电信ADSL,自己改中兴的modem为路由模式,加交换机,家里四台电脑都能上网。
问题起因:
昨天晚上(3月4日)还能上网的,今天想装个mldonkey做下载专用机的,可惜Ocaml和Mldonkey一个都不能编译成功,下了二进制的包,12.0的,说是glibc版本2.5,与现在系统里的glibc2.7不配。然后想上网找找白天在办公室里下过的那个mldonkey的包,发现还没有装zhcon,于是自己下0.2.5的,编译后segment fault,下fedora的二进制包,说缺少libtinfo.so.5,原来要在编译ncurses库时加参数的,决定先找0.2.6的源码,于是lynx www.google.com,找不到网站 ... 1,问题来了:
Network is unreachable
在init后运行udevd的命令后有警告:
SIOCSIFFLAGS: Invalid argument
用ifconfig只看见lo,ifconfig all有eth0,但TX、RX等参数都是零,反正不正常,而且MAC地址都变了,前天安装时我记过的,因为udev自作主张改eth0为eth1,后来在rulse.d的文件中绑定过,才好的。
/etc/rc.d/rc.inet1 restart
仍然是invalid
重新编译内核,安装。老样子。
用原来自带的2.6.23的huge、smp的那个内核启动,找得到网卡,ping得通另一台主机,但网关不通,而且还是改网卡序号。绑定序号,问题照旧。
rc.udev reload 没有用
rc.udev force-reload 没有用
上网搜,发现许多老外的帖子,都没有结论,google翻了二十几页了,以本人的经验,前五页没有,就没有了。想起来开机时曾去掉/etc/rc.d/rc.wireless的可执行属性,因为没有无线网卡嘛。再检查etc/rc.d/里的启动文件,觉得rc.modules好像很可疑,改了不执行,没有用,再恢复。然后删掉udev的rules.d里所有关于net的文件,没有用。一气之下删掉rules.d下所有的文件(我恨rules),结果开机后出错,什么/dev/null没有,gpm Oops什么的。
关机,洗脚,准备明天重装系统。洗完脚,不死心,开另外一台机,一模一样的配置和系统,把里面的rules.d里的文件用软盘拷贝到这台机器上(因为usb键盘也不能用了,说明usb挂了),重启,正常了,MAC地址又改了!还不是最初的那个!序号也不对,再绑定一下,没出问题。赶紧备份这次的rules。
困惑:难道udev在别的地方有缓存什么的?非要rules文件被覆盖了再重新载入?
时间有限的原因,我睡觉去了。接下来我要好好和udev玩玩,争取再现一下案发现场,把真正的症结找出来。也希望论坛里的兄弟们一起来研讨。 |
|