若您在 90 年代初期曾接觸電腦、當時就讀資訊科學,或對電腦有濃厚興趣,那麼 Sun Microsystems 這個名字您一定不陌生,其工作站更是令人夢寐以求的設備。當時個人電腦正迅速成為主流桌面電腦,外觀幾乎大同小異;若您在創意產業工作,或許有幸使用 Mac,但即便如此,差異也並非那麼顯著。
然而,有一類電腦脫穎而出,不僅外觀更具未來感,在效能和功能上也遙遙領先——那就是 UNIX 工作站。當時大多數人還在使用 Windows 3.x,並為有限的資源、缺乏真正的多工處理能力以及不穩定的系統而苦惱,而 UNIX 工作站則提供了更先進、功能更豐富且更穩健的環境。這包括了真正的多工處理、通常更大的記憶體、更強大的 CPU、更先進的顯示卡,以及更高效能的硬碟等。當然,這一切都伴隨著高昂的代價,一台 UNIX 工作站的價格可能輕鬆是典型個人電腦的十倍。
市面上有眾多競爭的 UNIX 廠商,許多都在特定領域表現卓越。例如 Silicon Graphics,正如其名,專精於強大的圖形工作站,在 3D 可視化、電影和電視等應用領域廣受歡迎。
Sun Microsystems 的硬體有許多不同的用途,但尤其在萌芽中的網際網路產業中廣受歡迎,「無頭」(headless,無顯示器等)版本的工作站和較大的伺服器機箱配置,常被用作 DNS、FTP、電子郵件和網頁伺服器。
作為我第一台接觸的 UNIX 電腦,我對 Sun SPARCstation IPX 有著特別的情感。它採用緊湊的「午餐盒」外型設計,在當時將強大的效能濃縮在小巧的空間內,並具備吸引人的工業設計。
SPARC 是一種由 Sun 和 Fujitsu 開發的 RISC 指令集架構(ISA),於 1987 年首次發布,至今仍由 Fujitsu 開發。早期 Sun 電腦基於 Motorola 68K 處理器,而第一款 SPARC 工作站則於 1989 年推出。
現在看來,處理器時脈速度可能低得令人難以置信,但當時 Intel 的 CPU 時脈速度也差不多。然而,SPARC CPU 是為 UNIX 設計的,IPX 配備了具有 8 個硬體上下文的 MMU,這對多工處理大有裨益。
SPARCstation IPX 在 1991 年推出時的價格約為 15,000 美元,包含一台 19 吋 CRT 顯示器、鍵盤和滑鼠。因此,其使用通常僅限於專業應用,我當時使用的就是一台用於行動數據網路合規性測試的設備。
本文所述的這台 SPARCstation IPX 安裝了一顆幾百 MB 的硬碟,並配備了 32MB 的記憶體。我擁有它多年,它曾經能夠正常工作,但某個時候電源供應器出現了故障。
規格不符和完全失效的電解電容是老舊電子產品的常見問題,而對於 Sun SPARCstation 的所有型號來說,這似乎是 IPX 和 IPC 電源供應器特別容易出現的問題。這表明原廠安裝的電容品質可能不佳或來自不良批次,或者電源供應器設計中的某些因素導致了它們失效。
SPARCstation IPC 和 IPX 共用相同的電源供應器,這網頁描述了如何更換 IPC 電源供應器中的電解電容。有趣的是,該作者在其他地方提到,他有兩台 IPC 的電源供應器都壞了,而一台裝在 IPX 上的卻能正常工作。然而,IPC 是較早的型號,這可能僅僅是因為它們更老舊,或者純粹是巧合。無論如何,我有兩台 IPX,它們的電源供應器都出現了故障。
除了頂部帶有橡膠蓋的物理上較大的線路側濾波電容外,所有的電解電容都已更換。使用的 RS 料號如下:
原廠安裝的是 25V 和 50V 額定的 47uF 電容,但為了方便起見,僅訂購了 50V 額定的零件,並將它們安裝在原有的位置上。
如上圖所示,原廠電容已洩漏電解液,這絕非好兆。
這導致電路板底部出現了類似腐蝕的痕跡。
更換完電容後,電源供應器被重新組裝並裝回機箱。
之後,可以接通電源,這是決定成敗的時刻。
不幸的是,SPARCstation 並未恢復正常,接通電源時,PSU 風扇僅輕微轉動了一下。此時,PSU 被拆下,重新檢查了焊接點是否有短路等問題,但沒有明顯異常。除了上述的腐蝕痕跡。
鑑於更換電容並未花費太長時間,且還有第二台故障的 IPX,因此決定繼續更換其電源供應器的電容。這台的狀況好得多,電路板頂部沒有電解液,底部也沒有腐蝕。
不幸的是,在拆卸舊電容時,一塊焊盤/走線被剝離,但問題不大,在安裝新電容時很容易處理。
重新安裝電容並組裝後,將其裝入第一台 SPARCstation,接通電源,幸運的是,它隨即恢復了生機。
首要任務是讓一台系統正常工作,我稍後會回到第一個 PSU,嘗試追蹤故障原因,有了第二台正常工作的電源供應器,進行測量和比較會更容易。
類似於 PC 有 BIOS 用於初始化硬體和載入作業系統,Sun 電腦有 OpenBoot PROM (OBP) 韌體。它與 BIOS 類似,可用於進行組態更改,例如設定預設的開機裝置,這些設定會儲存在非揮發性記憶體 (NVRAM) 中。
然而,PC 通常有可充電電池或可更換的鈕扣電池,用於在關機時保留組態設定和維持時間,而 Sun 硬體則使用整合了 SRAM、RTC 和電池的 TIMEKEEPER 裝置。因此,當電池失效時,整個裝置都必須更換。
上面可以看到開機時顯示的錯誤訊息,OBP 偵測到 NVRAM 晶片的電池已失效。不幸的是,它也用於儲存乙太網路 MAC 位址及其 Sun hostid,這是一個用於將授權軟體鎖定到特定機器的唯一 ID。
可以查閱經典的 Sun NVRAM/hostid FAQ 以找到更換零件的詳細資訊,IPX 指定的零件為 M48T02 (310-9655)。安裝後,我們需要程式設計 MAC 位址和 hostid。然而,如果我們沒有這些記錄,就必須自行設定,並確保 MAC 位址不會與我們網路上的其他裝置衝突。上述連結的 FAQ 提供了 hostid 的格式細節,它有一個特定於機器型號的前綴,而 MAC 位址的前綴則是分配給 Sun Microsystems 的。
在重新程式設計 IDPROM 之前,我們需要先在 OBP 的「ok」提示符下輸入以下指令,將 NVRAM 重設為預設值並禁用 diag 選項:
OBP 監視器實際上是一個 Forth 解譯器,`mkp` 指令可用於重新程式設計 NVRAM 的 IDPROM 部分。幸運的是,FAQ 中有一個基於 SPARCstation IPX 硬體的範例,其中 hostid 使用 57c0ffee,MAC 位址為 08:00:20:c0:ff:ee。
第一個指令設定位元組 0,它包含格式/版本號,為 01。位元組 2-7 包含 MAC 位址。位元組 c-e 儲存 hostid。位元組 f 用於儲存校驗和,並使用上述最後一個指令進行計算和程式設計。詳細資訊請參閱 FAQ。
此時,我們可以在提示符下輸入 reset。
現在我們發現 MAC 位址和 hostid 已設定,但遺憾的是,仍然有一個錯誤警告需要更換 NVRAM,儘管組態更改在關機後仍然保留。這似乎並不少見,網路上有各種討論,其中一個討論串建議改用 M48T12 零件來解決問題。
這個錯誤持續存在的缺點是機器無法自動開機,因此為了解決這個問題,訂購了 M48T12 零件 (829-4073) 並重複了 IDPROM 的程式設計。不幸的是,結果相同,因此需要進一步研究,但至少 SPARCstation 可以保持時間,並且不必每次開機時都程式設計 MAC 位址和 hostid;無法自動開機只是一個小小的惱人問題。
要從內部硬碟開機,只需在 OBP 提示符下輸入:
之後,載入了 Solaris 7 (SunOS 5.7)。
現在我們有了可工作的機器,接下來可以清理外殼,去除一些污漬,如果可能的話,去除塑膠的泛黃。還需要進一步研究以清除 NVRAM 錯誤。最後,Solaris 7 於 1998 年底發布,對於 SPARCstation IPX 來說可能有點太新了,因此更適合安裝大約在 1991-1994 年間發布的 Solaris 1.x 版本,這更接近系統推出的時間。