高性能计算

gentoo上安装cell sdk(zz)

2009年4月8日 阅读(265)

Cell B.E. 是一個相當有趣的 architecture,而且 IBM 也提供相當多的資源想要推廣它,其中也包含免費的 SDK,但是 IBM 卻只有提供 RHEL 或 Fedora 兩種環境下安裝,這點對於非 Red Hat 系 distro. 的使用者而言真的是相當不方便,一般的安裝程序必須先在 virtual machine 上安裝一份fedora 然後才能安裝 SDK,不然就是直接在機器上安裝 fedora 然後雙重開機。

我本身之前有使用過 fedora core 5 大約兩個月,對於 fedora 的套件管理程式 – yum 有著相當不愉快的使用經驗,也因此才會轉用 Gentoo。有點扯遠了,其實我要說的是,我就是不想為了 Cell SDK 還要再去使用 fedora,因此找了一下有沒有直接在 Gentoo 上 native 安裝 SDK 而不需要使用 VM 的方法,結果在 Gentoo 的 forum 上面就有人寫安裝 SDK 3.0 的教學。大致上照著這份文件即可安裝完成,不過有些小地方不太一樣,因此稍稍整理一下把我安裝的方式紀錄一下。

首先,在安裝之前先確定一些需要用到的程式是否已經裝在系統上了,會需用到的套件為

virtual/glut
x11-libs/libXmu
x11-libs/libXext

其中 glut 有不只一個選擇,我的系統上是安裝 media-libs/freeglut,如果沒有安裝的話,就先 emerge 一下吧。

另外因為 IBM 提供的套件只有 RPM 格式,因此不管有多討厭還是得安裝 rpm 工具,可以在安裝完 SDK 後將這些工具移除。 😉

# emerge -av rpm rpm2targz

接下來要先到 IBM 的網站上將 SDK 下載下來,請至這裡下載(要先註冊 IBM ID,免費)。將「CellSDK-Devel-Fedora_3.0.0.1.0.iso 」、「CellSDK-Extras-Fedora_3.0.0.1.0.iso」兩個檔案下載回來。

接著建立工作所需的目錄,這裡以 /home/cell 為例,假設剛下載的兩個 iso 檔都在這裡面。用以下指令將 SDK 的套件取出。這邊都是以 x86 為例子,如果是 x86_64 或 ppc64 微架構,請自行代換。

# mkdir -p /home/cell/tars
# cd tars
# mkdir /mnt/iso
# mount -o loop /home/cell/CellSDK-Devel-Fedora_3.0.0.1.0.iso /mnt/iso
# for x in /mnt/iso/x86/*.rpm
> do
> rpm2tar $x
> done
# umount -d /mnt/iso
# mount -o loop /home/cell/CellSDK-Extras-Fedora_3.0.0.1.0.iso /mnt/iso
# for x in /mnt/iso/x86/*.rpm
> do
> rpm2tar $x
> done
# umount -d /mnt/iso

接下來還要下載開發 Cell 所需用到的 toolchains。

# mkdir /home/cell/rpms
# cd /home/cell/rpms

再來執行以下 script 抓取。(x86_64 及 ppc64 的檔案跟 x86 有點不一樣,這要注意一下,不能直接拿這個 script 來用)

#!/bin/sh
BASE="http://www.bsc.es/projects/deepcomputing/linuxoncell/cellsimulator/sdk3.0/CellSDK

Open-Fedora"
ARCH="x86"
URL="${BASE}/${ARCH}"
wget -c ${URL}/libspe2-cross-devel-2.2.0-91.noarch.rpm
wget -c ${URL}/netpbm-cross-devel-10.35-12.fc7.noarch.rpm
wget -c ${URL}/numactl-0.9.10-1.i686.rpm
wget -c ${URL}/numactl-cross-devel-0.9.10-1.noarch.rpm
wget -c ${URL}/ppu-binutils-2.17.50-32.i686.rpm
wget -c ${URL}/ppu-binutils-debuginfo-2.17.50-32.i686.rpm
wget -c ${URL}/ppu-gcc-4.1.1-57.i686.rpm
wget -c ${URL}/ppu-gcc-c++-4.1.1-57.i686.rpm
wget -c ${URL}/ppu-gcc-debuginfo-4.1.1-57.i686.rpm
wget -c ${URL}/ppu-gcc-fortran-4.1.1-57.i686.rpm
wget -c ${URL}/ppu-gcc-gnat-4.1.1-57.i686.rpm
wget -c ${URL}/ppu-gdb-6.6.50-28.i686.rpm
wget -c ${URL}/ppu-gdb-debuginfo-6.6.50-28.i686.rpm
wget -c ${URL}/ppu-sysroot-f7-2.noarch.rpm
wget -c ${URL}/ppu-sysroot64-f7-2.noarch.rpm
wget -c ${URL}/spu-binutils-2.17.50-33.i686.rpm
wget -c ${URL}/spu-binutils-debuginfo-2.17.50-33.i686.rpm
wget -c ${URL}/spu-gcc-4.1.1-107.i686.rpm
wget -c ${URL}/spu-gcc-c++-4.1.1-107.i686.rpm
wget -c ${URL}/spu-gcc-debuginfo-4.1.1-107.i686.rpm
wget -c ${URL}/spu-gcc-fortran-4.1.1-107.i686.rpm
wget -c ${URL}/spu-gdb-6.6.50-12.i686.rpm
wget -c ${URL}/spu-gdb-debuginfo-6.6.50-12.i686.rpm
wget -c ${URL}/spu-newlib-1.15.0-82.i686.rpm
wget -c ${URL}/spu-newlib-debuginfo-1.15.0-82.i686.rpm
wget -c ${URL}/sysroot_image-3.0-7.noarch.rpm
 
因為這個網站似乎不太穩,很容易抓到一半卡住,如果卡住的話先把正在執行的 wget 砍掉,然後多執行幾次這個 script 直到完全抓完為止。

再來就是將這些抓來的 rpm 檔轉成 tar。

# cd /home/cell/tars
# for x in /home/cell/rpms/*.rpm
> do
> rpm2tar $x
> done

然後就可以正式開始安裝 SDK 囉!

# cd /
# for x in /home/cell/tars/*.tar
> do
> tar xvf $x
> done

但是我在這邊有出一點小問題,就是剛剛抓取的「sysroot_image-3.0-7.noarch.rpm」沒有正確轉為tar 檔,因此要多作一道手續。先把轉換失敗的 sysroot_disk 檔案刪除,然後再由 rpm2cpio 及 cpio 直接解出來安裝。

# rm /opt/ibm/systemsim-cell/images/cell/sysroot_disk
# cd /
# rpm2cpio /home/cell/rpms/sysroot_image-3.0-7.noarch.rpm | cpio -i –make-directories

這樣子安裝就算是完成了,然後是執行的部份。因為剛剛都是使用 root 操作的,但是因為安全性考量,當然是希望一般的使用者就可以執行。

# cd /opt/ibm/systemsim-cell/run/cell
# chown root.users linux/
# chmod g+rwX linux/

然後就可以登出 root。現在可以以一般使用者直接執行 systemsim-cell 了。

$ cd /opt/ibm/systemsim-cell/run/cell/linux/
$ ../run_gui

 

 

You Might Also Like