Solaris10 for x86网卡替换配置
我用于测试的pc机安装了solaris 10 for x86 u3,在安装系统的时候,很顺利的识别了intel网卡。昨天,我的同事,把我机器上的intel网卡拔走了,后来他还我一个3com 3c905的网卡,我把它插在主板PCI插槽上;然后加电,开机引导solaris,系统起来以后,出现报错信息:大概意思是说网卡有问题。我用
#ifconfig –a 查看,只有环回接口lo0,新插的网卡没有被正确的设置。
#ifconfig –a 查看,只有环回接口lo0,新插的网卡没有被正确的设置。
先看看系统里是否有3com网卡的驱动程序。Solaris10的驱动程序一般在系统自带驱动目录/kernel/drv下,这个目录下有好多默认安装上来的驱动程序。怎么知道哪个驱动是什么厂家的呢?打开驱动的配置文件可以看出来。进入目录/kernel/drv,可以看见许多驱动程序和其配置文件成对出现,见下图:
这里随便打开一个.conf 文件,
很容易就看出是intel的芯片了。当然我们不需要逐个浏览这些配置文件,我们需要在这里查找有没有3com 3c509的驱动程序。
![]() |
许多驱动程序和其配置文件成对出现 |
-bash-3.00# more e1000g.conf # Driver.conf file for Intel e1000g Gigabit Ethernet Adapter # # Copyright (c) 2002, by Intel, Inc. //intel公司的东东 # All Rights Reserved. # #ident "@(#)e1000g.conf 1.1 98/09/22 Intel" # # Copyright 2006 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # # ident "@(#)e1000g.conf 1.4 06/03/06 SMI" ……………..(省略若干) |
在目录/kernel/drv执行命令
#grep “3Com” * ,我的输出结果如下:
可以看出我的系统已经有了这套驱动程序。如果运行上面的命令没有输出行,那么就需要自己下载相关的驱动程序手动进行安装了。
-bash-3.00# grep "3Com" * //注意厂商的第一个字母大写 elxl.conf:# Driver.conf file for the 3Com 3C90x //记住elxl这个名字,它就是我们要找的模块名。 |
网卡驱动是以模块的方式加载到内核的,尽管在上面我们找到了网卡驱动的藏身之处,但如果不把它加载到内核,是一点作用都没有的。先来看看网卡驱动是否被加载,运行命令#modinfo | grep elxl
观察其输出,看有无被加载。如果没有,我们然后手动加载执行加载模块命令
观察其输出,看有无被加载。如果没有,我们然后手动加载执行加载模块命令
#modload elxl
再回头来执行
#modinfo | grep elxl 这回该看见elxl被加载了。下图给出一个例子(eri模块):
接下来,执行命令
#devfsadm –i elxl ,完成物理设备名与逻辑设备名之间的映射。可以在目录/dev 里找到文件elxl,它是一个链接文件,用ls –al elxl 可知道其具体的文件位置。
![]() |
给出一个eri模块的例子 |
#devfsadm –i elxl ,完成物理设备名与逻辑设备名之间的映射。可以在目录/dev 里找到文件elxl,它是一个链接文件,用ls –al elxl 可知道其具体的文件位置。
执行命令
#ifconfig elxl0 plumb 几秒钟就完毕,这步的作用是初始化物理接口elxl0(第一个物理接口为“0”)。然后把先前intel网卡的接口名更名为3com的接口名称。具体的做法是:
#mv /etc/hostname.ipbr0 /etc/hostname.elxl0 完成后重启系统,然后运行
#ifconfig –a 看网络接口是否被激活,在用ping 命令测试一下网络的连通性。
提示:做配置的时候可能会出现一些错误信息,最可能的原因是执行的操作顺序不对。以上这个过程,对sparc架构和intel x86架构都基本是相同的。