2010年9月21日 星期二

替 PS3 的 YDL6.2 做瘦身 ( 下篇 )。

這次先從一些原由說起,
由於 PS3 於 YDL 下並沒有太多的記憶體 ( 約 230MB 左右 ),
所以 Shady 大多以跨平台編譯來撰寫程式。

最後 YDL 下的 PS3 都是跑程式時使用,
所以記憶體的節省也很重要,
要不然程式 Port 到 PS3 時就會因記憶體不夠而慢下來...,
故 Shady 在此有一些建議:

1. 請撰寫兼編譯程式於 x86 電腦上。
2. 因 1. 的關係,請將 PS3 當作程式測試平台,
    所以 PS3 最好於文字模式下節省記憶體。
3. 若得於圖型模式下測試程式時,
    請將解析度降低到 720p 以下確保記憶體夠用。

所以當撰寫大型或資料量大的程式時,
記憶體多寡就是我們首要考慮的問題了,
以下是 Shady 對 YDL 做的一些調整,
希望對大家有幫助。

1. 將 YDL 預設為文字模式,
    輸入 vi /etc/inittab,
    將 id:5:initdefault: 更改為 id:3:initdefault:。
   
2. 將 YDL 的虛擬終端機預設開啟設為一個,
    輸入 vi /etc/inittab,
    將
        1:2345:respawn:/sbin/mingetty tty1
        2:2345:respawn:/sbin/mingetty tty2
        3:2345:respawn:/sbin/mingetty tty3
        4:2345:respawn:/sbin/mingetty tty4
        5:2345:respawn:/sbin/mingetty tty5
        6:2345:respawn:/sbin/mingetty tty6
    改為
        1:2345:respawn:/sbin/mingetty tty1
        2:2345:off:/sbin/mingetty tty2
        3:2345:off:/sbin/mingetty tty3
        4:2345:off:/sbin/mingetty tty4
        5:2345:off:/sbin/mingetty tty5
        6:2345:off:/sbin/mingetty tty6
    。

3. 調整解析度為 720p,
    輸入 vi /boot/etc/yaboot.conf,
    將 append="video=ps3fb:mode:3 ps3fb root=LABEL=/1",
    改為 append="video=ps3fb:mode:3747 ps3fb=8M root=LABEL=/1"。
    其他解析度設置請參考此網頁
    ps3fb=8M 是為了配合 720p 設置的,
    因為 1280 * 720 * 4bytes * 2framebuffer / 1048576 = 7.03152MBytes,
    但只能填整數,故因而填 8M。

若非得有圖型模式,
可參考這裡
當中有教導安裝 fluxbox,
而 Shady 使用後,
未開啟任何應用程式的情況下,
還可以擁有 170MB 以上的記憶體容量。

到此,Shady 已將 YDL 的安裝和調校教導完畢,
下次開始就是程式的心得與分享了,
所以請大家多觀看 IBM 的 Cell SDK 的相關文件,
因為 Shady 之後並不會有太多 Cell SDK 相關工具的教導文章,
還請多多包涵。

2010年9月20日 星期一

替 PS3 的 YDL6.2 做瘦身 ( 上篇 )。

老實說,
瘦身工作最好從 YDL6.2 安裝時做起,
當然沒有也沒關係,
以下是從安裝時就開始瘦身的步驟,
已安裝者可從完成 YDL6.2 安裝後的步驟開始。

安裝時請選擇手動選擇套件,
將所有套件勾選成非勾選狀態,
也就是不要安裝所有套件,
如此,YDL6.2 將會自動安裝最基礎的套件,
當然,以上是於 install_ps3_720p 更高的解析度模式安裝,
雖然安裝結果是文字模式,
但卻是以高解析度安裝完成。

接下來就是安裝完成之後的步驟。

進入 YDL6.2 之後,
請以 root 登入,
然後輸入 yum update 更新套件,
若有出現 expat、readline、util-linux 時,
請勿更新套件,
請個別輸入套件名稱更新,
例如:yum update kernel,
以上例子是只有更新 YDL6.2 的核心。

再來就是安裝 CellSDK,
請輸入 yum install glibc* irqbalance,
再輸入 yum install crash* elfspe* libspe* netpbm* oprofile* ppu* spu*,
安裝完成之後就去下載 CellSDK-Devel-Fedora_3.1.0.0.0.iso、CellSDK-Extras-Fedora_3.1.0.0.0.iso、3.1-SDKMA-Linux-ppc-FP01.tar.bz2,
將其放置在 /tmp/cellsdkiso 下,
利用 mount -o loop /tmp/cellsdkiso/CellSDK-Devel-Fedora_3.1.0.0.0.iso /mnt 掛載 iso 檔,
再以 cd /mnt/cbea 進入 cbea 目錄,
輸入 yum localinstall --nogpgcheck *.rpm,
完成後輸入 cd ~,
再輸入 umount /mnt,
接下來 CellSDK-Extras-Fedora_3.1.0.0.0.iso 也是以同樣的方式安裝,
最後以安裝 x86_64 版的方式安裝 3.1-SDKMA-Linux-ppc-FP01.tar.bz2,
自此,CellSDK 已經完成安裝,
由於 YDL6.2 的 tcl 和 tk 套件較舊,
所以沒安裝 Cell 模擬器,
且 PS3 的記憶體較小,
Cell IDE 整合開發環境也盡量使用 x86 版做 cross-compile。

接下來將不需要的系統服務關閉,
請輸入 chkconfig --list 列出所有的服務,
若要關閉 irqbalance 的服務的話,
請輸入 chkconfig --level 01246 irqbalance off,
以上會將 irqbalance 的服務關閉等級 0、1、2、4、6,
所以以上會將 irqbalance 的這五個等級關閉,
而 chkconfig --level 35 irqbalance on 則是開啟 3、5 等級,
最後請確保 elfspe、irqbalance、messagebus、network、sshd、syslog,
以上此六個服務一定開著 3、5 等級,
其餘服務則全部關閉。

上篇到此為止已省下不少記憶體,
而下篇將會替大家做解析度和虛擬終端機等調整來節省記憶體,
當然,於 GUI 使用 YDL6.2 的使用者,
我也會建議轉向文字介面,
所以這些也將會於下篇的教學當中完成。

2010年7月31日 星期六

Yellow Dog Linux For CUDA

PS3 的 YDL6.2 瘦身文章將延後至下一篇,
而這篇是稍微提一提 CUDA 版的 YDL。

什麼是 CUDA?
CUDA 是顯示卡廠商 NVIDIA 所推行的 GPGPU 運算,
預期將有平行運算部分的應用程式往顯示卡,
也就是 GPU 上移植,
其市場有 HPC、PC上的平行運算的應用程式等,
至於詳細內容應該不用 Shady 介紹了吧?
有興趣了解的人可到此處逛逛。

然而 YDL 的發行商 Fixstars
因 SONY 將 PS3 的 Linux 安裝界面 OtherOS 於3.21 版韌體之後就消除了,
又 CUDA 的市場大多與 Fixstars 重疊,
所以 Fixstars 早在 PS3 的 OtherOS 消除前一年左右就注意到 CUDA,
因此 YDL for CUDA 的出現並不意外。

而 Fixstars 已經於 7 月中、下旬左右釋出了 YDL for CUDA 的 iso、LiveDVD
至於安裝流程教學,
由於 Shady 還未安裝,
所以想了解詳細安裝流程的人可參考此處

2010年7月26日 星期一

在 PS3 上安裝 Yellow Dog Linux 6.2 ( YDL6.2 )。

請先準備好 USB 滑鼠、鍵盤,
還有 PS3 必須用 HDMI、色差端子連接顯示器或電視才能使用圖形模式,
顯示器須有 720P 解析度以上較佳,
再來是 PS3 的備份,這邊請參照 PS3 的官方說明
最後是 YDL6.2 的 ISO 檔,將 ISO 燒成 DVD。

再來是 PS3 的設定,
首先請確定 PS3 的韌體為 3.15 之前、2.8 之後,
然後是將 PS3 的硬碟格式化,請參照此網址

第三,將燒錄好的 YDL6.2 的 DVD 放進 PS3,
注意 DVD 會直到 YDL6.2 安裝完畢後自動退出 PS3,
因為 YDL6.2 的 DVD 中已備好 kboot,
所以請按照此網址安裝 kboot 和啟動 kboot。

第四,
啟動 kboot 後,按 Tab 鍵選擇以下選項的其中之一,括號內為說明:
install_ps3_1080i     (解析度為 1080i 的圖示安裝)
install_ps3_1080p     (解析度為 1080p 的圖示安裝)
install_ps3_720p      (解析度為 720p 的圖示安裝)
install_ps3_480i      (解析度為 480i 的文字安裝)
install_ppc32         (無用選項)
install_ppc32_text    (無用選項)
install_ppc64         (無用選項)
install_ppc64_text    (無用選項)

最後參考此網頁安裝 YDL6.2。

如果想要將 PS3 的 Linux 環境做為開發用,
將會於下篇文章描述如何替 YDL6.2 瘦身。

2010年7月24日 星期六

注意 CellSDK 的 License!

CellSDK 的 License 有必須注意的地方,
因為它有些限制。

可能有人會以為 CellSDK 大多為 GPL 或 LGPL 等開放式 License,
但其實不然,當中只有 GCC Toolchain 等少數工具為 GPL、LGPL,
凡舉 IBM 提供的 Librarys、Tools 都是基於 ILAR License,
就 Shady 從一本原文書(注)得知,
其使用期間只有 90 天,於此之後 Tools 將不得使用,
而且若您的產品使用了這些IBM的Librarys、Tools,
亦不得做 modifying、distributing、transferring 等動作,
但有項好消息,
就是你可以販賣給有安裝 IBM 提供的 ILAR 的 Librarys、Tools 的使用者。


注:"PROGRAMMING THE CELL PROCESSOR For Games, Graphics, and Computation",
    Matthew Scarpino著。

2010年7月5日 星期一

如何在 OS 為 Linux 環境的 x86 電腦上安裝 CellSDK。

這次 Shady 要分享在 Fedora 9 x86_64 的電腦 ( PC ) 上安裝 Cell 的開發工具 ( CellSDK ) 之過程,廢話不多說,我們馬上開始吧!

首先請準備好已安裝 Fedora 9 x86_64 的 PC 或已安裝 Fedora 9 x86_64 的虛擬機器,而 Shady 是選擇後者,而且是使用 Oracle VM VirtualBox ( 前生為 Sun VirtualBox )。

第二,請先於 IBM 申請免費帳戶後下載以下檔案:
請至下面網址 http://www.ibm.com/developerworks/power/cell/downloads.html 下載下面三個檔案:
cell-install-3.1.0-0.0.noarch.rpm
CellSDK-Devel-Fedora_3.1.0.0.0.iso
CellSDK-Extras-Fedora_3.1.0.0.0.iso
後於 http://www.alphaworks.ibm.com/tech/cellsystemsim/download 下載下面的檔案:
systemsim-cell-3.1-25.f9.x86_64.rpm
再於右面網址 http://www-933.ibm.com/support/fixcentral/ 下載下面的修正檔:
3.1-SDKMA-Linux-i386-FP01.tar.bz2 ( 請選擇與 Cell 和 i386 有關之選項 )
最後至此 http://www.bsc.es/projects/deepcomputing/linuxoncell/ 下載最後的檔案:
IBM-SDKMA-3.1.0.1-x86.tar.bz2

第三,將之前下載的檔案放在 /tmp/cellsdkiso 路徑下,而 3.1-SDKMA-Linux-i386-FP01.tar.bz2 和 IBM-SDKMA-3.1.0.1-x86.tar.bz2 則放在 /tmp/cellsdkiso/update 路徑下,之後開啟終端機按照以下指令進行:

yum update

yum list xulrunner

如顯示 i386 版和 x86_64 版都安裝,請執行 yum remove xulrunner.i386,如只安裝 i386 版,則執行下一步指令後再往回執行 yum remove xulrunner.i386。

yum install rsync sed tcl wget expat tk blt cairo libXtst xulrunner.x86_64

cd /tmp/cellsdkiso

rpm -ivh cell-install-3.1.0.0.0.noarch.rpm

cd ~

/opt/cell/cellsdk -o --iso /tmp/cellsdkiso install

安裝過程中如遇提問同不同意和接不接受,都請選同意和接受。

cd /tmp/cellsdkiso

rpm -ivh systemsim-cell-3.1-25.f9.x86_64.rpm

cd update

tar xf  IBM-SDKMA-3.1.0.1-x86.tar.bz2

tar xf 3.1-SDKMA-Linux-i386-FP01.tar.bz2

yum localupdate *.rpm ( 如失敗請用 yum --nogpgcheck localupdate *.rpm )

最後,
到 /opt/cell/ide/eclipse/plugins/com.ibm.celldt.simulator.profile.default_3.1.0.200811171424/ 下,用文字編譯器開啟 simulator_init.tcl 此檔案,然後將 704 列按照以下做更改:

原為此三列:
mysim trigger set console "The system is going down for system halt NOW!" CellDT_ShutdownNotified

mysim trigger set console "INIT: Switching to runlevel: 0" CellDT_ShutdownStarted

mysim trigger set console "INIT: no more processes left in this runlevel" CellDT_ShutdownComplete

改為此六列:
#mysim trigger set console "The system is going down for system halt NOW!" CellDT_ShutdownNotified

#mysim trigger set console "INIT: Switching to runlevel: 0" CellDT_ShutdownStarted

#mysim trigger set console "INIT: no more processes left in this runlevel" CellDT_ShutdownComplete

mysim trigger set console "init: rcS main" CellDT_ShutdownNotified

mysim trigger set console "Sending all processes the TERM signal" CellDT_ShutdownStarted

mysim trigger set console "md: stopping all md devices." CellDT_ShutdownComplete

還有 745 列原為此三列:
mysim trigger set console "Starting Linux" CellDT_BootedBios

mysim trigger set console "Welcome to Fedora Core" CellDT_BootedLinux

mysim trigger set console "INIT: Entering runlevel: 2" CellDT_BootNearlyReady

改為此五列:
mysim trigger set console "Starting Linux" CellDT_BootedBios

#mysim trigger set console "Welcome to Fedora Core" CellDT_BootedLinux

#mysim trigger set console "INIT: Entering runlevel: 2" CellDT_BootNearlyReady

mysim trigger set console "Welcome to Fedora" CellDT_BootedLinux

mysim trigger set console "Starting login process" CellDT_BootNearlyReady

到這裡 CellSDK 已安裝完成,以下則提供 Cell 開發環境 eclipse 啟動指令和模擬器啟動指令。

Cell 開發環境 eclipse:
 /opt/cell/ide/eclipse/eclipse -vm /opt/ibm/java2-i386-50/jre/bin

模擬器有兩列,請按順序輸入:
ulimit -s unlimited
PATH=/opt/ibm/systemsim-cell/bin:$PATH systemsim -g

最後提供 Cell 開發環境 eclipse 的更新設置:
開啟 eclipse 後於 eclipse 的視窗上方按照 Help→ Software Update→ Find and Install→ search for new features to install →next→ New local site→ /opt/cell/ide/eclipse 就可以了。

2010年4月3日 星期六

如何保養能安裝 Linux 的 PS3 呢?

由於 PS3 於 3.21 版後的韌體更新將再無支援 OtherOS 安裝的功能,
且維修後的 PS3 亦會以最新的韌體為韌體,
所以能安裝 Linux 的 PS3 的保養就顯得格外重要!

因此在此告知各位保養的方法,
保養的方法很簡單,
那就是啟動 PS3 時是在 GameOS 以外的 OS 啟動,
也就是說有使用 Linux 的使用者於今後盡量在 Linux 下開關機,
而不要在 GameOS 下開關機以避免 RSX 的發熱造成散熱系統耗損。