红联Linux门户
Linux帮助

网卡设备识别的疑惑

发布时间:2011-01-11 13:07:10来源:红联作者:wucongdonglai
我的工控机上有2个网卡接口,用lspci -x,可以在其中找到2个和网卡有关设备,如下:

01:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 02)
00: ec 10 68 81 07 04 10 00 02 00 00 02 10 00 00 00
10: 01 ee 00 00 00 00 00 00 04 f0 cf fd 00 00 00 00
20: 0c 00 9f fd 00 00 00 00 00 00 00 00 ec 10 68 81
30: 00 00 00 00 40 00 00 00 00 00 00 00 05 01 00 00
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 02)
00: ec 10 68 81 07 04 10 00 02 00 00 02 10 00 00 00
10: 01 ce 00 00 00 00 00 00 04 f0 ef fd 00 00 00 00
20: 0c 00 df fd 00 00 00 00 00 00 00 00 ec 10 68 81
30: 00 00 00 00 40 00 00 00 00 00 00 00 0b 01 00 00
显然红色的为vendorID,绿色的是deviceID ,紫色的是subsystem vendorID ,黄色的是subsystem deviceID ,两个网卡的这些参数显然都是相同的;仔细比较,除了基地址不同外,其他都相同,唯一的区别就是挂载在总线的位置不同,linux是如何分辨这2个设备的?根据外设地址?
文章评论

共有 8 条评论

  1. lyc2010 于 2011-01-20 14:38:29发表:

    这个还真不知道

  2. 相思爱文 于 2011-01-12 20:24:43发表:

    引用:
    2# 相思爱文
    之前看到一篇关于可热插拔的设备识别的文章,现在找不到了,郁闷
    wucongdonglai 发表于 2011-1-12 16:06

    我也忘了在哪看过

  3. wucongdonglai 于 2011-01-12 16:06:50发表:

    2# 相思爱文
    之前看到一篇关于可热插拔的设备识别的文章,现在找不到了,郁闷

  4. wucongdonglai 于 2011-01-12 16:05:49发表:

    3# deepwhite
    我估计也是,不然2个一模一样的网卡怎么区分呢

  5. sleeyoyo 于 2011-01-11 23:09:16发表:

    linux应该是先探测连接到网络接口上的设备,识别设备后载入设备驱动程序。对于设备,linux是用主设备号和次设备号来标识的,主设备号用于指定设备所用的驱动,次设备号用于指定设备的编号

  6. sxmt1999 于 2011-01-11 19:32:44发表:

    linux识别设备肯定根据总线位置区别的

  7. deepwhite 于 2011-01-11 18:44:59发表:

    对,他们在系统总线中的地址不同。

    [color=Red]01:00.[/color]0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 02)

    02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 02)

  8. 相思爱文 于 2011-01-11 18:12:18发表:

    不清楚。

    eth0和eth1命名顺序,重启后也可能不一定。