Bringing up interface em2: Device eth1 does not seem to be present, delaying(内核捕捉不到网卡)

时间:2022-05-06 04:29:47

一、首先观察内核取得网卡信息


[root@master001 ~]# dmesg | grep -in eth
1267:tg3 0000:01:00.0: eth0: Tigon3 [partno(BCM95720) rev 5720000] (PCI Express) MAC address xxxxxxxxxx
1268:tg3 0000:01:00.0: eth0: attached PHY is 5720C (10/100/1000Base-T Ethernet) (WireSpeed[1], EEE[1])
1269:tg3 0000:01:00.0: eth0: RXcsums[0] LinkChgREG[0] MIirq[0] ASF[1] TSOcap[1]
1270:tg3 0000:01:00.0: eth0: dma_rwctrl[00000001] dma_mask[64-bit]
1276:tg3 0000:01:00.1: eth1: Tigon3 [partno(BCM95720) rev 5720000] (PCI Express) MAC addressxxxxxxxxxx
1277:tg3 0000:01:00.1: eth1: attached PHY is 5720C (10/100/1000Base-T Ethernet) (WireSpeed[1], EEE[1])
1278:tg3 0000:01:00.1: eth1: RXcsums[0] LinkChgREG[0] MIirq[0] ASF[1] TSOcap[1]
1279:tg3 0000:01:00.1: eth1: dma_rwctrl[00000001] dma_mask[64-bit]
1285:tg3 0000:02:00.0: eth2: Tigon3 [partno(BCM95720) rev 5720000] (PCI Express) MAC address xxxxxxxxxx
1286:tg3 0000:02:00.0: eth2: attached PHY is 5720C (10/100/1000Base-T Ethernet) (WireSpeed[1], EEE[1])
1287:tg3 0000:02:00.0: eth2: RXcsums[0] LinkChgREG[0] MIirq[0] ASF[1] TSOcap[1]
1288:tg3 0000:02:00.0: eth2: dma_rwctrl[00000001] dma_mask[64-bit]
1294:tg3 0000:02:00.1: eth3: Tigon3 [partno(BCM95720) rev 5720000] (PCI Express) MAC address xxxxxxxxxx

从上面地1267行及1268行 ,我们可以查看这部主机四张网卡同时使用模块为tg3.此外这个网卡速度可达到1000Mbps。

除了使用dmesg来查询内核检测硬件产生的信息外,我们也可以通过lspci来查询相关的设备芯片。如下所示:

[root@master001 ~]# lspci | grep -i ethernet
01:00.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5720 Gigabit Ethernet PCIe
01:00.1 Ethernet controller: Broadcom Corporation NetXtreme BCM5720 Gigabit Ethernet PCIe
02:00.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5720 Gigabit Ethernet PCIe
02:00.1 Ethernet controller: Broadcom Corporation NetXtreme BCM5720 Gigabit Ethernet PCIe

二、观察网卡的模块

从上面的dmesg的输出信息中,我们知道这部主机的模块是tg3,那么内核是否已经将其顺利完成加载呢?可以利用lsmod去查看。

此外,这个模块相关信息又是如何?可以使用modinfo来查看。

[root@master001 ~]# lsmod | grep tg3
tg3                   145071 
确实已经加入到内核。

[root@master001 ~]# modinfo tg3
filename:       /lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/net/tg3.ko
firmware:       tigon/tg3_tso5.bin
firmware:       tigon/tg3_tso.bin
firmware:       tigon/tg3.bin
version:        3.122
license:        GPL
description:    Broadcom Tigon3 ethernet driver
author:         David S. Miller (davem@redhat.com) and Jeff Garzik (jgarzik@pobox.com)
srcversion:     278309F3DAB88B371B74BBE
....................................................

一下省略

看了上面的输出信息,重点在于文件名(filename)的部分!这一长串的文件名目录,就是我们驱动程序放置的目录。需要注意的是2.6.32-279.el6.x86_64是内核的版本。

因此不同内核是哦那个的版本驱动是不一样的。所以我们一直强调更改内核后,自己编译的硬件驱动需要自己重新编译。

那么如何知道自己的网卡驱动号呢????

很简单,不管有没有网卡都可以使用ifconfig eth0 来查询网卡卡号。如果你照着上面的信息来做,发现网卡已经有驱动了。恭喜你,可以设置网络了。

如果没有扑捉到网卡????如上面错误提示,Bringing up interface em2: Device eth1 does not seem to be present, delaying...

如果开机的时候能够正确获取这个模块的话,那么网卡就是没问题的。

如果内核还是捕捉不到网卡,那就需要自己处理一下模块的关系才行。怎么处理??很简单,在/etc/modprobe.d/下建立一个名为ether.conf

的文件,内容将模块与卡号代号链接在一起即可了如下处理。

[root@master001 ~]# vim /etc/modprobe.d/ether.conf

alias eth0 th3
alias eth1 tg3

[root@master001 ~]# sync;reboot

为了测试一下刚刚的配置是否生效,通常重启一下系统。在开机完成之后观察启动网卡。并观察一下模块的加载情况,如果一切顺利,那就太完美了。