這次先從一些原由說起,
由於 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 相關工具的教導文章,
還請多多包涵。
這是有關本人在Cell上設計程式的心得Blog, 將來可能還會朝向CUDA前進, 當然也有其餘無關程式設計的ささやき出現於此, 如果有志同道合的網友瀏覽於此請多多指教、多給意見。
2010年9月21日 星期二
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 的使用者,
我也會建議轉向文字介面,
所以這些也將會於下篇的教學當中完成。
瘦身工作最好從 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 的使用者,
我也會建議轉向文字介面,
所以這些也將會於下篇的教學當中完成。
標籤:
Cell、PS3、Linux
訂閱:
文章 (Atom)