自從XBOX推出之後,很多的人開始對於XBOX的這台機器的定位有許多不同的看法,因為就XBOX的規格來看,基本上它就是一台小型x86的電腦,只是被Microsoft"包"成一台個人的家庭遊樂器,也因為這樣,就有一群人專門HACK XBOX的硬體,使之能夠在上面跑一些原來在電腦上跑的一些程式,像是模擬器啦,Mp3的播放器等等啦,開發不少的工具,也有人希望在XBOX上跑一些作業平台,像是Linux,也因為有這樣的計劃,才讓這個原來只是遊戲的"X盒子"變成有像電腦的無限可能。
說起來也是無聊,也因為有人在XBOX上開發Linux這樣的計劃,讓我有一個莫名其妙的想法,就是如果能在XBOX上跑Maya該有多好,因為這樣,也許可以讓一台相當於PIII-733CPU的XBOX充當算圖機器,便可以發揮不只遊樂器的功能而將XBOX的極限推到最高。這只是一個玩CG動畫的人的一個想法,也因為這樣,便開始這樣的改造任務。
第一步
機器運作原理:
要知道本身XBOX的啟動的時候只會依循機器本身的BIOS去讀取CD中的資料並進入遊戲,要讓XBOX能夠啟動指定的磁碟區,就必須要HACK本身的機器BIOS(注意,本改機的部分純為測試用途,本人並不建議修改機器硬體以導致機器損毀或保固失效),因為預設的XBOX磁碟分割使用特殊的FATX的格式,而且不能直接讀取檔案,修改之後使用特殊的啟動程式便可以在機器上面可以透過網路使用ftp程式去直接讀取XBOX磁碟資料,編輯XBOX可以讀取特定的磁碟區的Boot File,而且將XBOX啟動的磁區另外指定,這樣便可以讀取特別的啟動檔案。
改造機器:
因為原始XBOX的內建的是WD,8GB的IDE硬碟,分為C,D,E,F,X,Y,Z,七個磁槽,X,Y,Z分別是儲存遊戲讀取暫存的部分,C,D,E,F是存放啟動資料與一般資料的部分,但是因為灌Linux是使用E槽來灌,大概灌完需要2GB的容量,避免容量的不足,我換了一顆Seagate 10GB的硬碟。使用ASUS 8X DVD還有一顆Seagate 10GB的硬碟
格式化先前準備
因為要在XBOX上格式化硬碟,必須要有開機光碟來執行格式化的程式,可以去下載EVOX的開機BIOS ISO,燒到光碟裡面就可以了。
關於XBOX的硬體相容的問題,XBOX因為版本的問題1.1版本的XBOX的光碟機相容度對CDR還有CDRW的光碟片相容度很低,為了解決這樣的問題,我直接使用一條電源分接線接一台華碩的DVD光碟機來當作預設讀取的光碟機。
因為XBOX所使用的是特殊的FATX的檔案格式,一般電腦無法辨認,便要使用開機EVOX的BIOS來在XBOX開機時Format硬碟,Format好了,把EVOX BIOS 利用Ftp傳到C槽,使XBOX可以用新硬碟開機,再來便可以再進行下一步啦。
使用evox開機光碟格式化硬碟
當然我們也要使用USB的鍵盤與滑鼠,我是去網路上購買的轉接線
安裝Linux
我們所安裝的是由Debian Linux為base的Linux Distribution,稱為"Xebian",所以以這個平台,可以使用所有的Debian所有超過8000個Application,或應用元件。
關於Xebian Linux Distribution 1.0.1可以到下面下載
http://xbox-linux.sourceforge.net/docs/download.html
下載的安裝是一個叫做dist-1.0.1.tar.bz2的檔案,使用rar解開會有一個dist-1.0.0.tar
再解開有一些檔案
1.0.1.iso是作為安裝光碟的iso檔
boot_fatx_e.iso是使用於Liunx的開機的BIOS
在E:下面建立一個Linux的資料夾,把boot_fatx_e.iso用rar解開的4個檔案全部copy到
E:\Linux的資料夾中。
之後在C:下面修改evox.ini的檔案加入這一行
Item "Linux OS","E:\Linux\default.xbe"
重新開機放入Linux的安裝光碟,讓開機的選單可以增加Linux OS選項這時應該系統就可以進入Linux的作業環境了.....出現Linux OS字樣
到進入登入畫面的時候,輸入Username:root,Password:xbox登入,
在Xterm輸入安裝命令XBOXLinuxInstall(注意大小寫)
之後的選項大部分都直接按Enter就可以跳過啦。
詳細的安裝可以去參考下列網站
http://xbox.egchina.com/JIANJIE/87.htm
安裝完成之後輸入reboot重新開機,就可以看到xvm的登入畫面啦,輸入使用者與密碼登入
就可以使用基本的X Window的介面了。
開啟console使用vi編z/etc/apt/source.list 加入下列server
deb http://opensource.nchc.org.tw/apt/kde/3.1 woody main
存檔後就可以使用#apt-get install kdebase 安裝Kde 3.1的桌面環境
安裝完成之後,XBOX就擁有漂亮的KDE桌面了。
這時候XBOX已經擁有可以運作的Linux的作業系統了,現在要開始安裝我們最重要的Maya啦
安裝Maya
Maya的軟體,基本上是要在Redhat Linux的版本上安裝運行的,因為Redhat是使用RPM的安裝程式進行安裝,所以在Debian Linux會有一些問題,因為Debian預設的安裝封包是以deb為主,所以在Debian上要安裝Maya的rpm安裝封包時要先做一個轉換的動作
基本上Maya只需要安裝兩個檔案
AWcommon-5.3-5.i386.rpm
Maya5_0-5.0.1-135.i686.rpm
轉換RPM檔
alien -d AWcommon-5.3-5.i386.rpm
alien -d Maya5_0-5.0.1-135.i686.rpm (將RPM轉換成deb的安裝檔案)
安裝deb檔
dpkg -i AWcommon-5.3-5.i386.deb
dpkg -i Maya5_0-5.0.1-135.i686.deb
Maya會安裝在/usr/aw/裡面
Maya的License會放在/var/flexlm裡面
這時啟動前必須要修改/etc/X11/XF86Config-4裡面
在section "Module"下把
# Load "glx"
的前面的#字號去掉,存檔
這樣Maya就可以正常啟動囉
任務完成,XBOX可以啟動Maya囉
Render測試
Render Scene
我測試是用Highend3d上的公用測試場景來作測試,如果想要測試的人可以到下面網址下載
http://www.highend3d.com/tests/maya/testcenter/download.3d測試結果
Render時間6分16秒
這樣的Render時間反映的是XBOX的主機記憶體只有64MB,導致使用SWAP而造成讀取的執行效率的降低,如果有兩到三倍以上的RAM,應該可以有更好的效能,繪圖硬體其實有相當的水準,因為是相當於Geforce 3 MX的整合式顯示晶片,只是輸出的介面是使用電視來顯示,電視的解析度遠遠不如電腦的操作,在開啟Maya的全視窗時,有一半的Maya介面被擋住了,造成使用上的不順暢,而且硬體並不支援OpenGL的Depth,像Hardware Fog都無法使用,而且使用Hypershade會因為切換視窗頻繁而使整個X-window掛掉,還是在相容上有一些問題存在。
這樣的任務,只是從一個無聊的討論中間想出來的,原因是因為有人說XBOX就是一台電腦,而且可以掛Linux架伺服器,而且一台XBOX才5千多就有啦,比一台準系統還要便宜,看看XBOX的規格也是有PIII-C733的CPU在撐,雖然RAM少了一些,也可以做一些運算的工作,拿來架個Renderfarm也是不錯的啊,呵呵(開玩笑的)....,最重要的也是完成一種想法,像有很多人都認為Linux的環境很穩定,在很多遊戲主機上有些人都想盡辦法在上面Run Linux,Linux的優勢就是吃硬體資源比較少而且是Open Source的開發環境,讓很多的開發資源都共享,XBOX的Linux便讓我有這樣的想法,讓一些支援Linux的環境的CG Application可以在上面執行,雖然顯示的畫面是在電視上,但是卻可以完成一個CG軟體在遊戲機上運行的不可能的任務,呵呵....也希望藉此實驗提起一些更新的想法像是Maya,Shake,XSI還有一些Render引擎(PRMAN,Mentalray)都有Linux的版本,也都可能可以在XBOX Linux上運行,這只是一個起頭而已,之後的想法也可大家提出來討論喔。
硬體支援
感謝MAXX提供XBOX的遊戲主機
技術支援
感謝FAKE3D提供Linux相關技術詢問
Indigo Digital Studio 2004
