class="21038">
;
當索尼首次宣布 PlayStation 3 將能夠直接運行 Linux 的時候,非常令人興奮。最初,直接安裝 Linux 會有些困難。PS 3 支持的安裝程序運行自定義腳本,手工將 Fedora Core 5 或 6 安裝 DVD 改造成使用特殊 PS3 內核運行的系統。人們花了許多時間來讓其他系統(例如 Ubuntu)工作。Terrasoft 的黃狗(Yellow Dog)Linux 帶有真正能在 PS3 上運行的圖形安裝程序。
隨著時間流逝,許多事都已經發生了變化。現在能夠將 Fedora 7 直接安裝到 PS3 上,安裝過程最難的部分就是,選擇 PS3 的存儲驅動器以便讓它能夠找到安裝 DVD,還要記得在初始安裝命令行中指定視頻模式以便能夠看到安裝程序。
所以,在 PS3 上是能夠運行 Linux 的。問題是目前運行得還不太好。如果將 PS3 作為便宜的 Cell 開發系統,那麼您肯定會有點失望地發現:執行默認安裝過程之後,在進入 shell 提示符之前就已經用去了數百兆甚至更多的交換空間。
獲取 Fedora 7(Fedora 8 可能也適合,但在寫作本系列的時候,我手上用的是 Fedora 7)。顯然,如果使用經過專門調優的或者針對小巧和效率進行構建的發行版,那麼可能會得到更佳的效果,但是 Fedora 7 有一個巨大的優勢:它受 Cell/B.E. SDK 支持(也支持 RHEL 5.1,但對 Fedora 7 的支持更好)。
PlayStation 2 也能運行 Linux,但是比較麻煩。為此,索尼發布了專門的工具包,但是只能在更早的厚重的 PS2 機器上運行,而且要求使用附加硬盤。不支持後來的(更普遍的)“苗條” PS2 機器,所以這個工具包很快就消失了。但是,它消失的主要原因是它幾乎只是個概念證明;PS2 系統上沒有足夠的內存,也沒有專門的編譯工具,CPU 只是標准的 MIPS 內核。除了索尼專用的工具之外,矢量單元沒有得到廣泛支持,也沒有充足的文檔。
對比之下,在 PS3 推出之前,就已經有運行 Linux 的支持,而且索尼還大量提供了支持代碼和支持包。在系統發布前後推出的 “Cell addons” 光盤上包含對 Fedora 5 和 6 的直接支持,而且還提供了其他 Linux 發行版開發 PS3 移植所需的所有文件。所以,不用單獨的光盤就能在 PS3 上運行 Fedora 7,不過仍然需要從索尼下載並安裝引導加載程序。增值軟件光盤(請參閱 參考資料)將繼續用新版內核進行更新。
理解 hypervisor
PS3 的基本規格是 256MB 主內存,一個 Cell/B.E. 處理器,有線以太網卡(有些型號上有 802.11b/g 無線網卡),稱為 RSX 的圖形處理單元(自帶 256MB 內存)和一塊 SATA 硬盤。還有些外部設備,包括 USB 端口、藍牙,某些型號上還有讀卡器。但是,這並不是運行 PS3 Linux 的機器。
在 PS3 上,Linux 在 hypervisor 控制下運行 — 實際上,PS3 Linux 是在與 Xen 類似的虛擬機上運行的。hypervisor 提供了對 PS3 硬件的受約束和經過過濾的訪問。例如,Linux 代碼不能直接訪問 RSX 圖形處理器,但是可以使用其提供的專門設備對 RSX 進行有限訪問,從而實現不錯的 2D 幀緩沖效率。
hypervisor 提供了許多轉換。例如,正如前面提到的,hypervisor 為 Linux 提供了一個虛擬的幀緩沖設備,是 hypervisor 隨後用 RSX 圖形內核實現的。類似的,Linux 不能訪問 SATA 硬盤,只能訪問 SCSI 驅動程序,由後者映射到內部驅動器中分配給 “其他操作系統” 分區的區域。不能從物理上訪問 PS3 游戲軟件使用的磁盤部分。
網絡硬件可能是最有趣的部分。PS3 Linux 既能夠訪問千兆以太網絡,也能夠訪問 802.11g 無線網絡,但不能同時訪問。在配置網絡接口時,如果用 SSID 將其指定為無線接口,那麼 hypervisor 就使用無線接口,否則使用有線接口。
下面我們討論修訂的規格。PS3 Linux 在虛擬機上運行,虛擬機有一顆帶 6 個 SPE 的 Cell/B.E. 處理器,大約 212MB 主內存,一個網絡接口,一個 SCSI 磁盤(如果有讀卡器,則會有更多 SCSI 磁盤),一個 SCSI 設備(可能是 DVD-ROM、CD-ROM,也可能是藍光光驅),USB 和藍牙端口。圖形是通過特殊的幀緩沖設備提供的,支持各種視頻模式(請參閱 理解消費者電子視頻模式)。
規劃開發環境
為了更好地利用 PS3 進行開發,首先要確定需要什麼樣的開發環境。如果願意完全取消 X,那會節省大量內存(Fedora 默認運行 Gnome,這可能不是最省內存的策略)。許多系統設置工具都可以通過 X 訪問,但是運行的時間很長。我在 Gnome 下運行圖形包更新程序時花了幾個小時才完成。這可能是因為該過程總共需要 375MB 的內存,嚴重超出了可用的物理內存。大多數時間都花在等待交換磁盤上,就像 VAX 上的 Emacs 一樣。
由此得到的教訓是:可用內存將是 PS3 上的最大弱點。請盡快關閉那些不需要的服務。用 xterm 代替 gnome 終端。如果需要多個窗口,可以考慮運行 screen 而不是多個 xterm。
顯示選項
如果只是玩玩,那麼不用對這些問題太過擔心。但是如果在運行的時候需要查看顯示結果,那就需要考慮顯示選項。PS3 的 HDMI 輸出質量最好。如果有計算機監視器,那麼 HDMI 轉 DVI 線很便宜,但是要確定監視器支持高帶寬數字內容保護(High-bandwidth Digital Content Protection,HDCP)。如果監示器不支持,那麼只會看到一個黑色屏幕,或者可能是一片明亮的彩色狀態。如果正在使用 KVM 開關,請注意開關也必須支持 HDCP!不幸的是,似乎無法關閉這項 “功能”;無法得到未加密的信號。雖然這種做法是為了保護高清晰電影,但是查看 X 桌面也需要特殊許可還是有點討厭。HDMI/DVI 支持 PS3 提供的每種視頻模式,包括消費者電子模式(例如 720p)和 PC 模式(例如 WXGA)。
如果沒有 HDCP,也沒有支持 DVI 的監視器,那麼只能改用分量視頻。大多數電視都接受分量視頻,有些計算機監視器也支持。分量視頻的效果與早期的 VGA 類似,只是它帶有三個 RCA 連接器,一個輸出紅色,一個輸出綠色,一個輸出藍色。分量視頻線要單獨收費 — 不過與 PS2 的分量視頻線相同,如果有 PS2 的線,可以繼續用。分量視頻支持 720p 和 1080i 顯示,但是可能不支持 1080p(如果不知道這些是什麼,請參閱 理解消費者電子視頻模式)。分量視頻提供的分辨率和清晰度比下面兩個選項高。
如果沒有分量視頻,那麼可以使用支持 S-video 的設備。S-video 支持 480i,但是要將信號分解到兩個獨立通道中,一個通道傳輸亮度,一個通道傳輸色度(即 “亮度” 和 “顏色” )。他的清晰度比最後一個選項 —— 復合視頻 —— 要好些。復合視頻是舊式的 RCA 接頭,通常是黃色,幾乎與任何電視兼容。如果能不用復合視頻,就不要用。
注意,Fedora 7 安裝程序實際上不能在 720p 下使用,除非采用它的文本模式。實際上,如果打算采用 PS3 作為開發系統,最好是使用更高的分辨率模式。Linux 系統適合於較大的顯示器,Fedora 的窗口環境在低分辨率顯示器上的效果非常差。而且,低分辨率顯示 —— 特別是通過復合視頻線傳輸時 —— 很難看清楚,界面非常模糊。