前段时间公司拿来过来一片工控板,要测测这块板子在Windows下河CentOS下是否正常, 看看是不是少了驱动或者有没有兼容方面的问题。
先装了个XP系统,经过种种测试板子跑起来一切正常。 然后开始装CentOS, 安装的过程也一帆风顺。CentOS安装好以后, 进入系统插上网线发现ping不通网关, 难道是没有网卡驱动?可是在GNOME的网络管理中能够清清楚楚的看到网卡的型号是BCM5787M,两张网卡的MAC地址也读出来了,那驱动应该是正常的啊。工控板都是双网卡口,莫非broadcom的网卡只能插在主网卡口上?于是把网线插在另外一个网口上试了下,网口灯和路由器的灯都正常亮了,网卡能正常激活,命令service network restart重新启动网卡服务也正常,可就是ping不通。输入命令ifconfig看网卡状态,认真看了半天发现确实少了个RUNNING也就是说网卡不工作了。
莫非是驱动不行? 去broadcom的官方网站试试找新版本的网卡驱动,找了半天发现我这款网卡驱动的最新更新时间还是2008年,额的个神那,这个驱动更新速度和Realtek的隔三差五更新驱动真是没的比啊。下下来一试,果然没用。切换到windows下再试试看网卡,发现一个很牛逼的现象:工控板的两个网口,无论把网线插在哪个网口上,在网上邻居里面显示连接和断开的两个网口完全没有变化,以前用过的那些工控板双网卡好歹能分辨哪个口断开,哪个口是连接的。看来应该是broadcom的驱动做了一个让人哭笑不得的人性化设计—-随便你网线插两个网口中的哪个网口,反正我默认都是显示这个网口连通的! 难道Linux下的驱动也有类似的问题?
切换到CentOS下,直接修改/etc/sysconfig/network-script/下面的ech0文件,发现无论怎么设置怎么修改,怎么换网口或,用ifconfig看eth0网卡其他参数一切都正常,除了不RUNNING也就是ping不通路由。到后面实在想不到其他办法了,抱着死马当做活马医的态度,试着把eth0关了,配置好eth1的IP地址和其他参数,然后把eth1起起来,发现竟然ping通了!经过简单测试eth1的网络功能一切正常,而且就算把网线换插到另外一个网口上eth1也照样坚挺又正常的工作! 换回eth0的话,立马趴窝了,这网卡真让人无语。
本来想试试这款broadcom在其他Linux系统下是否也像CentOS这样怪异,因为时间关系作罢。看来Linux下的硬件驱动还是有很长的路要走啊,windows下挺智能的网卡,到Linux下就出现这样让人啼笑皆非的问题,这种问题比Linux系统没有驱动更让人难受。