Solaris 10 发行版中存在以下与硬件相关的问题和错误。
使用 Solaris Live Upgrade 从 Solaris 10 8/07 发行版升级到 Solaris 10 5/08 发行版后,有些桌面系统可能会丢失对磁盘(其根磁盘除外)的访问。这是电源管理系统中的一个错误造成的。
将显示以下错误消息:
System can't access disk. |
解决方法:对系统禁用电源管理功能。请执行以下步骤:
编辑 /etc/power.conf 配置文件,并将 autopm 项从 default 更改为 disable。
使用 pmconfig -r 命令更新电源设置。
重新引导系统。
在使用 LSI SAS PCI-E 主机总线适配器 (host bus adapter, HBA)(如 SG-XPCIE8SAS-E-Z、SG-XPCIE4SAS-Z、SG-XPCIE4SAS3-Z 和 SG-PCIE8SAS-Z)的 x64 系统上,如果安装了 4 GB 以上的 RAM,将无法启用 MPxIO。
要确认系统是否受到影响,请键入 prtpicl- v 命令。在该命令的输出中搜索符合以下条件的设备:使用 pci1000,56 或 pci1000,58 兼容属性,存在 pcie-capid-reg 属性并且 revision-id 属性小于或等于 2。例如:
pci1000,56 AND pcie-capid-reg exists AND revision-id <= 2 |
或
pci1000,58 AND pcie-capid-reg exists AND revision-id <= 2 |
解决方法:从 http://sunsolve.sun.com 下载安装修补程序 125082-13。
涉及最低 CPU ID 的动态重新配置 (Dynamic reconfiguration, DR) 操作可能会导致域出现紧急情况。将显示以下错误消息:
panic[cpu40]/thread=2a1008ebca0: BAD TRAP: type=10 rp=xxxxxxx addr=xxxxxxx mmu_fsr=0 |
解决方法:不使用 DR 标识具有最低 CPU ID 的 CPU 所在的系统板。使用 prtdiag 命令标识具有最低 CPU ID 的 CPU。
在装有 Solaris 10 5/08 发行版的 Sun SPARC® Enterprise T5220 计算机上,Niagara Crypto Provider (NCP) 设备驱动程序出现性能降低。不会显示任何错误消息。
解决方法:将下行添加到 /platform/sun4v/kernel/drv/ncp.conf 配置文件中:
ncp-threads-per-core=6; |
当存在下面任一情况时,deleteboard(8) 和 moveboard(8) DR 命令可能会挂起:
双列直插式内存模块 (dual in-line memory module, DIMM) 已降级。
域中包含具有不同内存大小的系统板。
不会显示任何错误消息。
解决方法:如果 DR 命令挂起,请重新引导域来恢复。
如果存在上面列出的任一情况,请避免执行 DR 操作。
要确定系统中是否包含已降级的内存,请使用 XSCF showstatus 命令。要确定域中是否包含具有不同内存大小的系统板,请使用 XSCF showdevices 命令。还可以对域使用 prtdiag 命令来显示系统板的内存大小列表。
在具有极大内存配置的系统上,ZFS 可能在所有系统板上分配内核内存。进行动态内存重新配置需要有一个空闲系统板,这样,系统板上要进行动态重新配置的内存便能复制到空闲系统板。动态内存重新配置意味着,在具有极大内存配置且运行 ZFS 的系统上不能动态重新配置内存。高端 SunFireTM 服务器可以重定位内核页,因此避免了该问题。对于有 32 个以上内核的域,这些服务器必须启用内核页重定位 (kernel page relocation, KPR)。不会显示任何错误消息。
解决方法:通过在 /etc/system 文件中设置 zfs_arc_max 参数,减少 ZFS 可分配的内核内存量。以下示例将最大大小设置为 512 MB。
set zfs_arc_max = 0x20000000 |
执行 mpathadm show logical-unit 子命令时列出的是 Current Load Balance 属性的负载平衡全局配置值。但 csi_vhci.conf 中更改特定产品的负载平衡类型的条目并不会反映在 mpathadm 输出中,即使该设置处于活动状态也是如此。
如果注册工具的后台进程仍在运行,Elite3D 和 Creator3D 帧缓存器会停止电源管理。当系统处于电源管理状态时,该故障会降低省电效果。在某些情况下,系统暂停时可能也会挂起。不会显示任何错误消息。在系统暂停或恢复操作期间,系统可能会挂起。
解决方法:
在每次登录后大约 60 秒,运行以下命令:
# pkill -f basicreg.jar # pkill -f swupna.jar |
Solaris 10 OS 提供新的加密框架。不过,Sun Crypto Accelerator 4000 卡版本为 1.0 和 1.1 的软件和固件不使用此框架。因此,Solaris 10 OS 不支持这些版本。
2.0 发行版使用新框架。此发行版是对计划使用 Solaris 10 OS 的当前 Sun Crypto Accelerator 4000 用户提供的免费升级。因为 Sun Crypto Accelerator 4000 是导出控制的产品,您必须与 Sun Enterprise Services 或本地销售渠道联系以获得免费升级。有关其他信息,请参见 Sun 的 产品站点的 Sun Crypto Accelerator 4000 Web 页。
由于这些设备与 EHCI 驱动程序不兼容,对某些 USB 2.0 控制器的支持已被禁用。将显示以下消息:
Due to recently discovered incompatibilities with this USB controller, USB2.x transfer support has been disabled. This device will continue to function as a USB1.x controller. If you are interested in enabling USB2.x support please refer to the ehci(7D) man page. Please refer to www.sun.com/io for Solaris Ready products and to www.sun.com/bigadmin/hcl for additional compatible USB products. |
有关 USB 设备的最新信息,请参见 http://www.sun.com/io_technologies/USB-Faq.html。
本 Solaris 发行版支持 USB 1.1 和 USB 2.0 设备。下表是工作于特定配置下的 USB 设备的摘要。连接类型可以是直接连接到计算机或通过 USB 集线器连接到计算机。注意,USB 1.1 设备和集线器是低速或全速的。USB 2.0 设备和集线器是高速的。有关操作的端口和速度的详细信息,请参见《系统管理指南:设备和文件系统》。
表 2–1 USB 设备和配置
USB 设备 |
连接类型 |
---|---|
USB 2.0 存储设备 |
直连,USB 1.1 集线器,USB 2.0 集线器 |
USB 1.1 设备(音频设备除外) |
直连,USB 1.1 集线器,USB 2.0 集线器 |
USB 1.1 音频设备 |
直连,USB 1.1 集线器 |
USB 2.0 音频设备 |
不支持 |
以下列表介绍对用于 x86 平台的此 Solaris 10 发行版中某些驱动程序和接口的限制:
已为所有设备类型关闭此功能。在 detach() 函数的 DDI_SUSPEND 代码中,应返回 DDI_FAILURE。
此功能不可用于 USB 设备。不要创建电源管理组件。请编写驱动程序,以便仅在创建电源管理组件时调用 pm_raise_power() 和 pm_lower_power()。
交互式设备(如可拆卸介质)的电源管理与监视器和驱动监视器显卡的电源管理相联系。如果屏幕活动,则 CD-ROM 驱动器和软盘等设备仍然处于全电模式。在没有监视器的系统上,这些设备可切换到低电模式。要恢复 CD 或软盘的电源,键入 volcheck 以便从每个可拆卸设备获得最新状态。
或者,您可以使用 Dtpower GUI 禁用系统的电源管理。通过禁用电源管理,这些设备将始终处于全电模式。
在缺省情况下,kdmconfig 程序指定 Generic US-English(104-Key) 作为连接到系统的键盘类型。如果系统键盘不是美国英语键盘,则必须在安装期间手动指定键盘类型。否则,会使用与系统的实际键盘类型不一致的缺省键盘规范继续安装。
解决方法 1:如果系统键盘不是美国英语键盘,请在安装期间执行以下步骤:
当显示“为安装建议的窗口系统配置”时,按 Esc 键。
“为安装建议的窗口系统配置”中的信息(包含键盘类型)仅显示 30 秒。如果希望更改配置设置,必须在 30 秒之内按 Esc 键。否则,会继续按照所显示的设置进行安装。
将键盘类型更改为与系统键盘对应的类型。
按 Enter 键接受更改,然后继续安装。
解决方法 2:如果想更改已在运行 Solaris 10 OS 的系统的键盘类型,请使用 kdmconfig 程序。选择适用于系统所运行的 X 服务器的类型的选项。
如果系统正在运行 Xsun 服务器,请执行以下步骤:
运行 kdmconfig。
使用“更改键盘”选项更改键盘类型。
保存配置。
如果系统正在运行缺省 Xorg 服务器,请执行以下步骤:
运行 kdmconfig。
选择 Xsun 服务器。
使用“更改键盘”选项更改键盘类型。
保存配置。
再次运行 kdmconfig 以切换到 Xorg 服务器。
下列主机总线适配器 (HBA) 的 jfca 在这些 HBA 连接到磁带设备时可能导致系统出现紧急情况或引起 I/O 故障:
SG-PCI1FC-JF2
SG-PCI2FC-JF2
在运行特定操作时,这些 HBA 的 jfca 驱动程序容易出现竞争情况,从而导致错误。相应操作如下所示:
链接复位
循环复位
切换复位
重复链接故障
可能显示与下例相似的错误消息:
I/O 故障消息
jfca: [ID 277337 kern.info] jfca4: Sequencer-detected error. Recover immediately. last message repeated 18376 times jfca: [ID 716917 kern.notice] jfca4: ExgWarning: SendVerify(1): SHOULD ABORT THE ORIG I/O PKG=30007520bd8! scsi: [ID 107833 kern.warning] WARNING: /pci@1e,600000/SUNW,jfca@3,1/fp@0,0/st@w2100001086108 628,1 (st3): SCSI transport failed: reason 'timeout': giving up |
系统紧急情况消息
panic[cpu1]/thread=2a100497cc0: BAD TRAP: type=31 rp=2a1004978d0 addr=a8 mmu_fsr=0 occurred in module "jfca" due to a NULL pointer dereference |
解决方法:不要将磁带设备连接到 SG-PCI1FC-JF2 或 SG-PCI2FC-JF2 HBA。
如果 Quad 快速以太网 (QFE) 卡与下列任何适配器共享同一总线,会出现总线争用:
Sun GigaSwift 适配器
Sun 双千兆位以太网和双 SCSI/P 适配器
Sun Quad Gigaswift 以太网适配器
这些适配器使用的 ce 驱动程序的无限成组传送参数在缺省情况下启用。因此,仅很少或无总线时间可用于共享同一总线的 QFE 端口。
解决方法:不要使 QFE 卡与列表中的网络适配器共享同一总线。
hat_getkpfnum() DDI 函数已过时。开发者应更新他们的设备驱动程序,以便不使用 hat_getkpfnum() DDI 接口。如果驱动程序使用 hat_getkpfnum(),会显示与下例相似的警告:
WARNING: Module mydrv is using the obsolete hat_getkpfnum(9F) interface in a way that will not be supported in a future release of Solaris. Please contact the vendor that supplied the module for assistance, or consult the Writing Device Drivers guide, available from http://www.sun.com for migration advice. --- Callstack of bad caller: hat_getkpfnum_badcall+93 hat_getkpfnum+6e mydrv_setup_tx_ring+2d mydrv_do_attach+84 mydrv_attach+242 devi_attach+6f attach_node+62 i_ndi_config_node+82 i_ddi_attachchild+4a devi_attach_node+4b devi_attach_children+57 config_immediate_children+6e devi_config_common+77 mt_config_thread+8b |
要确定驱动程序是否在使用 hat_getkpfnum(),请参阅驱动程序源代码,或者使用 nm() 检查驱动程序的符号。使用驱动程序 mydrv 为例,键入以下语法:
% nm /usr/kernel/drv/mydrv | grep hat_getkpfnum |
有关从 hat_getkpfnum() 迁移出驱动程序的指南,请参阅《编写设备驱动程序》中的附录 B “Solaris DDI/DKI 服务汇总”。
SunSwiftTM PCI 以太网/SCSI 主机适配器 (X1032A) 卡的 SCSI 部分的缺省超时值不符合 Sun 的 SCSI DVD-ROM 驱动器 (X6168A) 的超时要求。使用特殊介质,DVD-ROM 会偶尔出现超时错误。唯一的例外是 Sun Fire 6800、4810、4800 和 3800 系统。这些系统以 OpenBoot PROM 的方式覆写 SCSI 超时值。
解决方法:对于其他平台,使用与板上 SCSI 接口或 DVD-ROM 兼容的 SCSI 适配器,如下例所示:
X1018A (SBus: F501-2739-xx)
X6540A (PCI: F375-0005-xx)