Friday, March 7, 2008

Cell SDK 3.0 on IBM's OpenClient Distribution

Today I was finally able to build a simple HelloWorld-Application with and within the TianoCore build environment. This is good news, as it leads me to the next task: Building the same HelloWorld-Application, but this time for Linux on 64-Bit PowerPC.

Since I do not yet have access to a 64-Bit PowerPC machine running Linux, I'm going to use the Cell SDK 3.0 for now. It can be used from an i386 machine and includes a toolchain as well as the full system simulator. The toolchain includes a cross-compiler that is cabable of producing binaries for the Cell BE's PPU, which is essentially a 64-Bit PowerPC processor. The system simulator simulates a Linux-installation running on Cell.

I'm still on IBM's OpenClient Linux distribution, which is apparently based on RHEL 5.1, at least according to /etc/redhat-release
Red Hat Enterprise Linux Client release 5.1 (Tikanga)
This is good on one hand, but made things slightly more complicated on the other hand. But first things first. Here's what I did to prepare the Cell SDK installation:
  • I went to the developerWorks download page for the Cell SDK 3.0 and downloaded the RHEL 5.1 packages.
  • I had to download the "basic libraries and headers for cross-compiling to Cell Broadband Engine's PPU", both the 32-Bit version and the 64-Bit version, from the Barcelona Supercomputer Center (BSC). Note that I could have built those RPMs myself, but only if I had a few other required RPMs like e.g. a glibc for PowerPC. Apparently those required RPMs are provided on the RHEL installation CDs, however, I'm on IBM's OpenClient and thus do not have access to the installation CDs. The good thing is, the Fedora RPMs provided by the BSC turned out to work just fine.
  • For the full system simulator, I had to download the sysroot image from the BSC website.
So that's it for the preparation part, now to actually installing the SDK.
  • I installed the installer RPM like this:
    # rpm -ivh cell-install-3.0.0-1.0.noarch.rpm
    This installs the installer to /opt/cell.
  • Now I needed to install the cross-compilation libraries and headers: # rpm -ivh ppu-sysroot-f7-2.noarch.rpm # rpm -ivh ppu-sysroot64-f7-2.noarch.rpm
  • Next I ran the installer as instructed by the installation manual: # cd /opt/cell # ./cellskd --iso /home/phs/Downloads install
After successfully running the installer, I found a functioning cross-compiler in /opt/cell/toolchain/bin.

For the system simulator, I had to install the sysroot imae RPM like this:
# rpm -ivh sysroot_image-3.0-7.noarch.rpm
Unfortunately, I wasn't able to make the system simulator work because of a missing dependency on a simulation library.

By the way, there's also official documentation available here.

No comments: