LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2194|回复: 3

SIOCSIFFLAGS: Invalid argument 网卡惊魂

[复制链接]
发表于 2008-3-6 13:31:27 | 显示全部楼层 |阅读模式
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玩玩,争取再现一下案发现场,把真正的症结找出来。也希望论坛里的兄弟们一起来研讨。
 楼主| 发表于 2008-3-6 21:54:42 | 显示全部楼层
当我装好所有的软件,拔掉显卡、键鼠之后,重启,在另一台机器上又ping不通下载机了,插上usb键盘,摸黑拷贝下lspci,ifconfig和udev的rules,关机重新装上显卡,再记录lspci的内容时,发现网卡对应的设备号变化了,根据:
http://www.wmfield.idv.tw/544
的提示,把里面的ID改成拔掉显卡后的数字,OK,解决问题,也让我知道udev里面连MAC地址都是靠不住的,还是要用ID好一点,看来我们的小企鹅最近不太喜欢更换硬件什么的说。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-6 22:04:39 | 显示全部楼层
嗯,又认真看了一遍udev的命名规则,感觉下次在网卡的问题上,还是用SYSFS{vendor}靠得住点,反正我只有一块网卡。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-7 08:15:16 | 显示全部楼层
算了,最后还是用SYSFS{vendor}来认网卡吧,it works!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表