目錄

簡介

必要條件

需求

採用元件

慣例

識別匯流排錯誤崩潰

匯流排錯誤崩潰故障排除

排除在CPU平台上發生的總68000錯誤故障

排除RISC處理器平台上的匯流排錯誤崩潰故障

特殊型別的匯流排錯誤崩潰

匯流排錯誤異常引導環路故障排除技術

載入的Cisco IOS軟體不支援已安裝的硬體

軟體故障

硬體安裝錯誤

硬體故障

開啟服務請求時要收集的資訊

相關資訊

簡介

本文說明如何識別匯流排錯誤崩潰，以及如何根據您在Cisco路由器中擁有的處理器型別對這些崩潰進行故障排除。

必要條件

需求

思科建議您先閱讀路由器崩潰故障排除，然後再繼續本文檔。

採用元件

本文中的資訊係根據以下軟體和硬體版本：

- 所有Cisco IOS®軟體版本

- 所有思科路由器

註：本檔案不適用於Cisco Catalyst交換器或MGX平台。

本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除（預設）的組態來啟動。如果您的網路正在作用，請確保您已瞭解任何指令可能造成的影響。

慣例

請參閱思科技術提示慣例以瞭解更多有關文件慣例的資訊。

識別匯流排錯誤崩潰

當處理器嘗試訪問記憶體位置時，系統遇到匯流排錯誤，該記憶體位置要麼不存在（軟體錯誤），要麼沒有正確響應（硬體問題）。如果沒有重新啟動電源或手動重新載入，則可以從路由器提供的show version命令的輸出中識別出匯流排錯誤。

如果您的Cisco裝置具有show version或show technical-support指令（從啟用模式）的輸出，您可以使用它顯示潛在問題和修正程式。要使用該指令碼，您必須是註冊客戶，必須登入並啟用JavaScript。

Router uptime is 2 days, 21 hours, 30 minutes

System restarted by bus error at PC 0x30EE546, address 0xBB4C4

System image file is "flash:igs-j-l.111-24.bin", booted via flash

.........

在控制檯提示符下，匯流排錯誤期間也會出現以下錯誤消息：

*** System received a Bus Error exception ***

signal= 0xa, code= 0x8, context= 0x608c3a50

PC = 0x60368518, Cause = 0x20, Status Reg = 0x34008002

.........

之後，路由器重新載入。但是，在某些情況下，路由器會進入崩潰和再載入的循環，需要手動干預才能打破該循環。

另一個相關問題是多功能介面處理器(VIP)故障。如果發生此問題，則會記錄類似以下錯誤消息：

%VIP2 R5K-1-MSG: slot0 System reloaded by a Bus Error exception

%VIP2 R5K-1-MSG: slot0 caller=0x600BC974

%VIP2 R5K-1-MSG: slot0 System exception: sig=10, code=0x408,

context=0x605B51E0

最後，另一種匯流排錯誤崩潰型別是Cisco 12000系列Internet路由器上的線卡崩潰。如果發生此問題，show context輸出中會記錄與以下內容類似的錯誤消息：

Router#show context

...

CRASH INFO: Slot 1, Index 1, Crash at 11:27:15 utc  Wed May 16 2001

VERSION:

GS Software (GLC1-LC-M), Version 12.0(16.5)S, EARLY DEPLOYMENT MAINTENANCE

INTERIM SOFTWARE

TAC Support: http://www.cisco.com/pcgi-bin/ibld/view.pl?i=support

Compiled Thu 29-Mar-01 17:12 by ninahung

Card Type: 3 Port Gigabit Ethernet, S/N

System exception: SIG=10, code=0x2008, context=0x40D8DF44

System restarted by a Bus Error exception

STACK TRACE:

-Traceback= 40165800 4038D0FC 4025C7BC 4026287C 4029581C 402EECF8 400C0144

CONTEXT:

$0 : 00000000, AT : 00000000, v0 : 00000044, v1 : 0FE00020

a0 : 00000000, a1 : 0FE00000, a2 : 00000000, a3 : 39EC6AAB

t0 : 00000030, t1 : 34008D01, t2 : 34008100, t3 : FFFF00FF

t4 : 400C01E8, t5 : 00000001, t6 : 00000001, t7 : 00000001

s0 : 40DCDD20, s1 : 0FE00000, s2 : 00000000, s3 : 000005DC

s4 : 00000000, s5 : 0FE00020, s6 : 00000004, s7 : 414CF120

t8 : 41680768, t9 : 00000000, k0 : 00000000, k1 : FFFF8DFD

gp : 40CB9780, sp : 4105BFE8, s8 : 41652BA0, ra : 4038D0FC

EPC : 0x40165800, SREG : 0x34008D03, Cause : 0x00002008

ErrorEPC : 0xBFC22B94

-Process Traceback= No Extra Traceback

如需詳細資訊，請參閱疑難排解Cisco 12000系列Internet路由器上的線路卡崩潰。

如果您的Cisco裝置輸出了show context命令，則可以使用Cisco CLI Analyzer顯示潛在問題和修復程式。要使用Cisco CLI Analyzer，您必須是已註冊的客戶，必須登入並啟用JavaScript。

匯流排錯誤崩潰故障排除

首先要做的是找出發生匯流排錯誤時路由器嘗試訪問的記憶體位置（也稱為「地址」或「地址運算元」）。通過此資訊，您可以指示故障是屬於Cisco IOS軟體還是路由器硬體。在示例「System restarted by bus error at PC 0x30EE546, address 0xBB4C4」中，路由器嘗試訪問的記憶體位置為0xBB4C4。不要將此值與上面的程式計數器(PC)值混淆。

第二件事是確定路由器中的處理器型別。路由器的記憶體地址位置因處理器型別而異。Cisco路由器中有兩種主要型別的處理器：

- 68000處理器

以下是show version輸出的一部分，該輸出表示路由器具有68000處理器：

cisco 2500 (68030) processor (revision D) with 8192K/2048K bytes of memory.

配備英特爾處理68000的路由器平台包括：

- Cisco 1000系列路由器

- Cisco 1600系列路由器

- Cisco 2500系列路由器

- Cisco 4000系列路由器

- Cisco 7000(RP)系列路由器上的路由處理器(RP)模組

- 精簡指令集計算(RISC)處理器

以下是show version輸出的一部分，表示路由器具有RISC處理器：

cisco 3640 (R4700) processor (revision 0x00) with 49152K/16384K bytes of memory.

R in(R4700)表示RISC處理器。

具有RISC處理器的路由器平台包括：

- Cisco 3600系列路由器

- Cisco 4500系列路由器

- Cisco 4700系列路由器

- Cisco 7500系列和Cisco 7000(RSP7000)系列路由器上的路由交換處理器(RSP)模組

- Cisco 7200系列路由器上的網路處理器引擎(NPE)模組

- Cisco 7600系列路由器或Catalyst 6000交換器上的多層交換器功能卡(MSFC)

- Cisco 10000系列Internet路由器上的效能路由引擎(PRE)模組

- Cisco 12000系列Internet路由器上的Gigabit路由處理器(GRP)模組

一旦您確定了地址和處理器型別，就可以開始進行更詳細的故障排除。

排除在CPU平台上發生的總68000錯誤故障

使用發生匯流排錯誤時路由器訪問的地址，使用show region命令確定地址對應的記憶體位置。如果匯流排錯誤報告的地址不在show region輸出中顯示的範圍內，則表示路由器嘗試訪問無效的地址。這表示這是Cisco IOS軟體問題。使用Cisco CLI Analyzer(僅供已註冊客戶使用)解碼show stacks命令的輸出，並識別導致匯流排錯誤的Cisco IOS軟體錯誤。

另一方面，如果地址在show region輸出中的某個範圍之內，則表示路由器訪問了一個有效的記憶體地址，但與該地址對應的硬體沒有正確響應。這表示存在硬體問題。

以下是show region輸出的範例：

Router#show region

Region Manager:

Start         End     Size(b)  Class  Media  Name

0x00000000  0x007FFFFF     8388608  Local  R/W    main

0x00001000  0x0001922F       98864  IData  R/W    main:data

0x00019230  0x000666B3      316548  IBss   R/W    main:bss

0x000666B4  0x007FEFFF     7965004  Local  R/W    main:heap

0x007FF000  0x007FFFFF        4096  Local  R/W    main:flhlog

0x00800000  0x009FFFFF     2097152  Iomem  R/W    iomem

0x03000000  0x037FFFFF     8388608  Flash  R/O    flash

0x0304033C  0x037A7D3F     7764484  IText  R/O    flash:text

注意：在某些早期的Cisco IOS軟體版本中，此命令不可用。show region輸出是Cisco IOS軟體版本12.0(9)的show tech-support輸出的一部分。

地址以十六進位制格式顯示。屬於「開始」和「結束」範圍的地址是有效的記憶體地址。

Main對應於主記憶體或動態RAM(DRAM)。

iomem對應輸入/輸出(I/O)記憶體，這意味著不同的平台有不同的部件。例如，Cisco 2500的DRAM、Cisco 4000的共用RAM(SRAM)。

仍使用先前的示例，System restarted by bus error at PC 0x30EE546, address 0xBB4C4，此匯流排錯誤崩潰來自具有show region輸出的Cisco 2500路由器。地址0xBB4C4相當於0x000BB4C4。使用show region輸出，此地址在「main」的範圍內，更具體地說是「main:heap」或0x000666B4-0x007FEFFF。如前所述，「main」對應於主儲存器或DRAM，因此需要檢查DRAM晶片。

如果是新路由器，或者路由器已經從一個位置移動到另一個位置，記憶體晶片經常會變得鬆動。最好將記憶體晶片重新拔插或穩固地推入插槽中。在大多數情況下，這足以解決此類故障。

對於地址不在show region地址範圍內的匯流排錯誤崩潰，請使用Cisco CLI Analyzer解碼show stacks命令的輸出，並識別導致匯流排錯誤的Cisco IOS軟體錯誤。如果您不確定哪個錯誤ID可能匹配，或者哪個Cisco IOS軟體版本包含此問題的修補程式，則將Cisco IOS軟體升級到發行版系列中的最新版本是一個通常可以解決此問題的選項，因為此選項通常包含大量錯誤的修補程式。

如果您的Cisco裝置具有show stacks或show technical-support（從啟用模式）命令的輸出，可以使用Cisco CLI Analyzer顯示潛在問題和修正程式。要使用Cisco CLI Analyzer，您必須是已註冊的客戶，必須登入並啟用JavaScript。

排除RISC處理器平台上的匯流排錯誤崩潰故障

建議您在繼續本節之前，先閱讀處理器平台上匯流排錯誤68000障故障排除一節。

在RISC處理器上，Cisco IOS軟體通過使用轉換後備緩衝區(TLB)使用虛擬地址，該緩衝區可將虛擬地址轉換為實體地址。因此，RISC處理器上的匯流排錯誤所報告的地址是虛擬地址，而不是RISC處理器使用的物68000地址。

show region命令的輸出必須用於檢查匯流排錯誤報告的地址。為了說明此情況，我們舉一個例子：

System was restarted by bus error at PC 0x60104864, address 0xC

使用下面的show region命令輸出，您可以驗證0xC不是有效的虛擬地址，並且您可以斷定匯流排錯誤是由軟體問題導致的。使用Cisco CLI Analyzer(僅供註冊客戶使用)解碼show stacks或show technical-support（從啟用模式）命令的輸出，並識別導致匯流排錯誤的Cisco IOS軟體錯誤。

使用show region命令的另一個優點是記憶體對映取決於路由器上安裝的記憶體量。例如，如果您有64 MB的DRAM(64 x 1024 x 1024 = 67108864 bytes = 0x4000000 bytes)，則64 MB的DRAM範圍是0x60000000 - 0x63FFFFFF。這可透過show region命令確認：

Router#show version | i of memory

cisco RSP2 (R4700) processor with 65536K/2072K bytes of memory.

Router#show region

Region Manager:

Start         End     Size(b)  Class  Media  Name

0x40000000  0x40001FFF        8192  Iomem  REG    qa

0x40002000  0x401FFFFF     2088960  Iomem  R/W    memd

0x48000000  0x48001FFF        8192  Iomem  REG    QA:writethru

0x50002000  0x501FFFFF     2088960  Iomem  R/W    memd:(memd_bitswap)

0x58002000  0x581FFFFF     2088960  Iomem  R/W    memd:(memd_uncached)

0x60000000  0x63FFFFFF    67108864  Local  R/W    main

0x60010908  0x60C80B11    13042186  IText  R/O    main:text

0x60C82000  0x60F5AF1F     2985760  IData  R/W    main:data

0x60F5AF20  0x610E35FF     1607392  IBss   R/W    main:BSS

0x610E3600  0x611035FF      131072  Local  R/W    main:fastheap

0x61103600  0x63FFFFFF    49269248  Local  R/W    main:heap

0x80000000  0x83FFFFFF    67108864  Local  R/W    main:(main_k0)

0x88000000  0x88001FFF        8192  Iomem  REG    QA_k0

0x88002000  0x881FFFFF     2088960  Iomem  R/W    memd:(memd_k0)

0xA0000000  0xA3FFFFFF    67108864  Local  R/W    main:(main_k1)

0xA8000000  0xA8001FFF        8192  Iomem  REG    QA_k1

0xA8002000  0xA81FFFFF     2088960  Iomem  R/W    memd:(memd_k1)

如果您在0x65FFFFFF處發生匯流排錯誤，show region輸出會考慮記憶體大小，並通知您這是非法地址（軟體錯誤）。

總而言之：

- 使用show region命令驗證匯流排錯誤所指示的地址是否在路由器使用的地址範圍內。

- 如果地址屬於虛擬地址範圍，請更換與此範圍對應的硬體。

- 如果地址不在虛擬地址範圍內，請使用Cisco CLI Analyzer(僅供註冊客戶使用)對show stacks或show technical-support（從啟用模式）命令的輸出進行解碼，然後識別導致匯流排錯誤的Cisco IOS軟體錯誤。

- 認真考慮安裝您當前運行的Cisco IOS軟體系列的最新維護版本。

特殊型別的匯流排錯誤崩潰

當崩潰是由損壞的程式計數器(PC)導致時，便是一種特殊型別的匯流排錯誤崩潰。 PC值是發生匯流排錯誤時處理器執行的指令的位置。當PC損壞引起匯流排錯誤時，控制檯上將顯示以下消息：

%ALIGN-1-FATAL: Corrupted program counter

pc=0x0, ra=0x601860BC, sp=0x60924540, at=0x60224854

在這種情況下，PC跳轉到地址0x0（可能是由於空指標），但這不是指令所在的位置。這是一個軟體問題，因此不需要使用show region指令進行檢查。

在其他RISC平台（Cisco 3600、4500等）上，跳到非法PC時出現SegV異常，而不是匯流排錯誤。

另一種不時發生的匯流排錯誤崩潰型別是PC值等於地址值。例如：

System returned to ROM by bus error at PC 0x606B34F0, address 0x606B34F0

在crashinfo檔案中：

Unexpected exception, CPU signal 10, PC = 0x606B34F0

$0 : 00000000, AT : A001A24A, v0 : 00000000, v1 : 00000000

a0 : 00000000, a1 : 429CC394, a2 : 00000000, a3 : 62544344

t0 : 6069F424, t1 : 3400FF00, t2 : FFFFFFFB, t3 : 00000000

t4 : 606B8E68, t5 : 80000000, t6 : AA5C1022, t7 : 62FDE9D4

s0 : 62300000, s1 : 6281A1B8, s2 : 80007E20, s3 : 00000001

s4 : 00000001, s5 : 00000000, s6 : 62310000, s7 : 62544344

t8 : 62FDEA1C, t9 : 0D0D0D0D, k0 : 623079C0, k1 : 00000014

gp : 620B9E20, sp : 61E7E300, s8 : 00000000, ra : 606B8E68

EPC : 606B34F0, ErrorEPC : 606B8E68, SREG : 3400FF02

Cause 00004018 (Code 0x6): Instruction Bus Error exception

-Traceback= 606B34F0 606B8E68

請注意，k1暫存器值為0x14（十六進位制），以十進位制表示等於20。這指向快取奇偶校驗異常。在這種情況下，奇偶校驗錯誤沒有正確處理，並且被匯流排錯誤掩蓋。由於處理快取奇偶校驗異常的函式中的軟體匯流排錯誤，路由器已崩潰。

您應該將此崩潰視為常規的處理器記憶體奇偶校驗錯誤崩潰，並按照處理器記憶體奇偶校驗錯誤(PMPE)中給出的建議執行。

您還應考慮將Cisco IOS軟體版本升級為具有CSCdv68388 — 「Change cache error exception handler to resume not crash」修復程式的版本，該修復程式自Cisco IOS軟體版本12.2(10)起已修復。

匯流排錯誤異常引導環路故障排除技術

本節重點介紹匯流排錯誤異常引導環路的一般故障排除技術：

- 載入的Cisco IOS軟體不支援已安裝的硬體

- 軟體故障

- 硬體安裝錯誤

- 硬體故障

載入的Cisco IOS軟體不支援已安裝的硬體

確認Cisco IOS軟體支援所有網絡卡。Software Advisor(僅供註冊客戶使用)可為您提供硬體所需的最低Cisco IOS軟體版本。此外，如果具有支援引導映像的路由器（例如Cisco 7200或Cisco 7500系列路由器），請驗證bootflash映像是否支援安裝的硬體。

軟體故障

在2600和3600路由器上，路由器的I/O記憶體可配置為主記憶體的百分比。如果I/O記憶體設定不適合安裝的網路模組或WAN介面卡(WIC)，則2600/3600平台在引導時可能會出現問題，並且可能會因匯流排錯誤而崩潰。

如果最近對軟體配置進行了更改，並且路由器處於引導環路中，則可能是軟體錯誤導致了此問題。

如果路由器無法啟動，您可以繞過配置來確定問題是否由它引起。請遵循以下步驟：

1. 在啟動後的前60秒內向路由器傳送break序列，以進入ROMMON。

2. 在ROM Monitor中，使用confreg命令將配置暫存器更改為某個設定（如0x2142），以忽略路由器的配置：

rommon 1 > confreg 0x2142

You must reset or power cycle for new config to take effect

rommon 2 > reset

如果路由器啟動時沒有任何錯誤，則說明配置問題導致了該問題。驗證Cisco IOS軟體和硬體是否支援您的配置。如果支援，請使用Bug工具包(僅供註冊客戶使用)識別可能遇到的任何軟體錯誤。認真考慮安裝您當前運行的Cisco IOS軟體系列的最新維護版本。

硬體安裝錯誤

如果遇到匯流排錯誤異常引導循環，則可能是硬體安裝錯誤導致的。對於3600或4000路由器等低端平台，請重新拔插網路模組/網路處理器。

對於7200或7500路由器等高端平台，請重新拔插由於匯流排錯誤異常而重新載入的處理器、VIP、埠介面卡或線卡。

硬體故障

匯流排錯誤中包含的資訊無助於隔離硬體。因此，卸下並重新插入卡以找到有問題的硬體非常重要。以下是隔離問題的建議步驟：

**如果路由器在按照上述故障排除步驟進行故障排除後未出現持續環路，則問題可能是網路模組安裝錯誤造成的。我們建議您24小時監控路由器，以確保路由器繼續運行，而不會再遇到問題。

開啟服務請求時要收集的資訊

如果在執行上述故障排除步驟後仍需要幫助，並且希望開啟思科技術支援案例，請確保包含以下有關排除匯流排錯誤或匯流排錯誤異常的資訊：

- 開啟案例之前執行的故障排除

- show technical-support output（如果可能，在啟用模式下）

- show log輸出或控制檯捕獲（如果可用）

- crashinfo檔案(如果存在，且尚未包含在show technical-support輸出中)

- show region輸出(如果尚未包含在show technical-support輸出中)

將收集的資料以非壓縮純文字檔案格式(.txt)附加到您的案例。 您可以使用案件查詢工具（僅限註冊客戶）將資訊上傳到您的案件（僅限註冊客戶）。 如果您無法訪問案件查詢工具，可將相關資訊附加到您的案件，方法是將相關資訊傳送到attach@cisco.com，並將您的案件編號填寫在郵件主題行。
註：在收集上述資訊之前，請勿手動重新載入或重新啟動路由器，除非需要排除匯流排錯誤異常，否則可能會導致確定問題根本原因所需的重要資訊丟失。

相關資訊

- 路由器崩潰故障排除

- 多功能介面處理器崩潰疑難排解

- 疑難排解Cisco 12000系列Internet路由器上的線路卡崩潰

- Cisco CLI Analyzer(僅限於註冊客戶)

- 技術支援 - Cisco Systems