本节提供有关热插拔 x86 系统上的 PCI 或 PCIe 适配卡的逐步说明。
除了 cfgadm 命令以外,在热插拔操作过程中,prtconf 命令也非常有帮助。prtconf 命令可以显示与硬件有关的其他配置信息。
添加硬件后,可以使用 prtconf 命令来验证该硬件是否正确配置。例如,在配置操作后,使用 prtconf -D 命令可验证是否已向新安装的硬件设备附加了驱动程序。如果在配置硬件之前未将设备驱动程序添加到系统中,则可以使用 add_drv 命令手动添加该驱动程序。
有关更多信息,请参见 prtconf(1M) 和 add_drv(1M)。
在这些示例中,为了简便起见,仅列出了 PCI 附加点。系统上显示的附加点取决于系统配置。
您可能需要观察系统上的 LED 指示灯,以直观地了解有关插槽热插拔操作的状态。如果使用 PCI Express,则 LED 的行为符合 PCI Express 规范中定义的行为,否则该行为可能与平台相关。
有关具体的详细信息,请参阅平台指南。如果使用 PCI Express,则按“注意”按钮时,电源指示灯将会闪烁,表示状态转换开始。状态转换结束后,即会停止闪烁。
此过程在 Solaris 10 6/06 发行版中已进行了更新,包括 PCIe 配置信息。
cfgadm 命令可显示系统上的 PCI 可热插拔设备和插槽的状态。有关更多信息,请参见 cfgadm(1M)。
成为超级用户。
显示 PCI 插槽配置信息。
例如:
# cfgadm Ap_Id Type Receptacle Occupant Condition pci1:hpc0_slot0 unknown empty unconfigured unknown pci1:hpc0_slot1 unknown empty unconfigured unknown pci1:hpc0_slot2 unknown empty unconfigured unknown pci1:hpc0_slot3 ethernet/hp connected configured ok pci1:hpc0_slot4 unknown empty unconfigured unknown |
显示特定的 PCI 设备信息。
例如:
# cfgadm -s "cols=ap_id:type:info" pci Ap_Id Type Information pci1:hpc0_slot0 unknown Slot 7 pci1:hpc0_slot1 unknown Slot 8 pci1:hpc0_slot2 unknown Slot 9 pci1:hpc0_slot3 ethernet/hp Slot 10 pci1:hpc0_slot4 unknown Slot 11 |
逻辑 Ap_Id pci1:hpc0_slot0 是可热插拔插槽 Slot 7 的逻辑 Ap_Id。组件 hpc0 表示此插槽的可热插拔适配卡,pci1 表示 PCI 总线实例。Type 字段表示插槽中存在的 PCI 适配卡的类型。
显示 PCIe 插槽配置信息。
例如:
# cfgadm pci Ap_Id Type Receptacle Occupant Condition pcie1 unknown empty unconfigured unknown pcie2 unknown empty unconfigured unknown pcie3 unknown empty unconfigured unknown pcie4 etherne/hp connected configured ok pcie5 pci-pci/hp connected configured ok pcie6 unknown disconnected unconfigured unknown |
显示特定的 PCIe 设备信息。
例如:
# cfgadm -s "cols=ap_id:busy:o_state" pci Ap_Id Busy Occupant pcie1 n unconfigured pcie2 n unconfigured pcie3 n unconfigured pcie4 n configured pcie5 n configured pcie6 n configured |
在大多数情况下,逻辑 Ap_Id 都应该与系统机箱上用丝网印花法标记的插槽标签匹配。有关可热插拔插槽的 cfgadm 输出,请参阅平台指南。显示 Busy 字段可确保尝试热插拔操作之前 Ap_Id 未转换为其他状态。
在 Solaris 10 6/06 发行版中,以下过程已经更新,可用于移除 PCIe 适配卡。但是,无论使用 PCI 还是 PCIe,移除适配卡的过程都是相同的。
成为超级用户。
确定 PCI 适配卡所在的插槽。
例如:
# cfgadm pci Ap_Id Type Receptacle Occupant Condition pcie1 unknown empty unconfigured unknown pcie2 unknown empty unconfigured unknown pcie3 unknown empty unconfigured unknown pcie4 etherne/hp connected configured ok pcie5 pci-pci/hp connected configured ok pcie6 unknown disconnected unconfigured unknown |
停止用于打开设备的应用程序。
按照如下方式使用 cfgadm(1M) 命令手动取消配置设备。或者,如果您有 PCIe 适配卡,也可使用自动配置方法,如按平台指南中定义的方式按插槽的“注意”按钮。
# cfgadm -c unconfigure pcie4 |
确认是否已取消配置设备。
例如:
# cfgadm pci Ap_Id Type Receptacle Occupant Condition pcie1 unknown empty unconfigured unknown pcie2 unknown empty unconfigured unknown pcie3 unknown empty unconfigured unknown pcie4 unknown connected unconfigured unknown pcie5 pci-pci/hp connected configured ok pcie6 unknown disconnected unconfigured unknown |
如果取消配置设备,则 Type 和 Condition 也将成为 unknown。
手动断开插槽的电源。如果使用自动配置方法,则此步骤是不必要的。有关更多信息,请参阅平台指南。
# cfgadm -c disconnect pcie4 |
确认是否已断开设备连接。
例如:
# cfgadm pci Ap_Id Type Receptacle Occupant Condition pcie1 unknown empty unconfigured unknown pcie2 unknown empty unconfigured unknown pcie3 unknown empty unconfigured unknown pcie4 unknown disconnected unconfigured unknown pcie5 pci-pci/hp connected configured ok pcie6 unknown disconnected unconfigured unknown |
遵照平台指南中的相应说明移除 PCI 适配卡。移除该卡后,插座状态即为空。
例如:
# cfgadm pci Ap_Id Type Receptacle Occupant Condition pcie1 unknown empty unconfigured unknown pcie2 unknown empty unconfigured unknown pcie3 unknown empty unconfigured unknown pcie4 unknown empty unconfigured unknown pcie5 pci-pci/hp connected configured ok pcie6 unknown disconnected unconfigured unknown |
可以在引导时启用或禁用自动配置方法,具体取决于平台的实现。请针对环境设置合适的自动配置方法。
在 Solaris 10 6/06 发行版中,以下过程已经更新,可用于添加 PCIe 适配卡。但是,无论使用 PCI 还是 PCIe,添加适配卡的过程都是相同的。
成为超级用户。
例如,pcie3。
# cfgadm pci Ap_Id Type Receptacle Occupant Condition pcie1 unknown empty unconfigured unknown pcie2 unknown empty unconfigured unknown pcie3 unknown empty unconfigured unknown pcie4 unknown empty unconfigured unknown pcie5 pci-pci/hp connected configured ok pcie6 unknown disconnected unconfigured unknown |
遵照平台指南中的相应说明将 PCI 适配卡插入插槽。
确定插入 PCI 适配卡后该卡所在的插槽。
例如:
# cfgadm pci Ap_Id Type Receptacle Occupant Condition pcie1 unknown empty unconfigured unknown pcie2 unknown empty unconfigured unknown pcie3 unknown disconnected unconfigured unknown pcie4 unknown empty unconfigured unknown pcie5 pci-pci/hp connected configured ok pcie6 unknown disconnected unconfigured unknown |
使用 cfgadm 命令手动连接插槽的电源。或者,如果您有 PCIe 适配卡,也可使用自动配置方法,如按平台指南中定义的方式按插槽的“注意”按钮。
例如:
# cfgadm -c connect pcie3 |
确认附加点已连接。
例如:
# cfgadm pci Ap_Id Type Receptacle Occupant Condition pcie1 unknown empty unconfigured unknown pcie2 unknown empty unconfigured unknown pcie3 unknown connected unconfigured unknown pcie4 unknown empty unconfigured unknown pcie5 pci-pci/hp connected configured ok pcie6 unknown disconnected unconfigured unknown |
按照如下方式使用 cfgadm 命令手动配置 PCI 适配卡。如果使用自动配置方法,此步骤应该是不必要的。有关更多信息,请参阅平台指南。
例如:
# cfgadm -c configure pcie3 |
验证插槽中的 PCI 适配卡的配置。
例如:
# cfgadm pci Ap_Id Type Receptacle Occupant Condition pcie1 unknown empty unconfigured unknown pcie2 unknown empty unconfigured unknown pcie3 etherne/hp connected configured unknown pcie5 pci-pci/hp connected configured ok pcie6 unknown disconnected unconfigured unknown |
如果此设备为新设备,请配置任何支持的软件。
例如,如果此设备是一块以太网卡,请使用 ifconfig 命令来设置接口。
可以在引导时启用或禁用自动配置方法,具体取决于平台的实现。请针对环境设置合适的自动配置方法。
cfgadm: Configuration operation invalid: invalid transition |
尝试进行无效转换。
检查是否正确发出了 cfgadm -c 命令。使用 cfgadm 命令检查当前的插座和插卡状态,并确保 Ap_Id 正确。