August 11, 2006
For those who already know, CBE SDK is not supported on any other Linux distributions except Fedora Core 5. This article will describe the requirements and process of install the CBE SDK 1.1 on other distributions of Linux, but specifically Ubuntu 6.06 LTS. For those installing on other Linux distributions, it is assumed that you know how to install the required packages or how to compile them for your own Linux distribution.
GCC 4.x
In the documentation, GCC 4.1.1 is required to build 2 samples in the SDK, but any version of GCC 4.x is good enough.
In Ubuntu 6.06, GCC 4.0.3 is available and can be used instead. To get your development environment installed, install the build-essential package.
sudo apt-get install build-essential
GCC 4.1.1 is available in the Edgy Repository, but not required.
glibc 2.4
Specifically, glibc 2.4 is required. Any other versions cannot be used.
In Ubuntu 6.06, glibc 2.3.6 is available but cannot be used. glibc 2.4 is available in the Edgy Repository. This will introduce a locale problem. Installing the locales package from Edgy might fix it.
Make 3.80
Specifically, Make 3.80 is required. Make 3.81, which is the latest version of Make, fails to build the SDK.
For Ubuntu 6.06, Make 3.81 is available but cannot be used. There are a few ways to go around this.
- Reinstall Make 3.80 from the Breezy Repository.
- Download the Make 3.80 sources from the GNU FTP site (http://www.gnu.org/software/make/) and compile it yourself. This way is recommended. There are no problems or changes to be made to compile Make 3.80 from the source on Ubuntu 6.06.
Perl 5.x
In the documentation, Perl 5.8.8 is required for several parts of the SDK.
In Ubuntu 6.06, Perl 5.8.7 is available and can be used instead.
Perl 5.8.8 is available in the Edgy Repository, but not required. This will install glibc 2.4 and will introduce a locale problem. Installing the locales package from Edgy Repository might fix it.
Freeglut and Freeglut Development Files
In the documentation, Freeglut 2.4.0 glut.h is required.
For Ubuntu 6.06, Freeglut 2.4.0 is available and can be used. Install the Freeglut and development files package.
sudo apt-get install freeglut3
sudo apt-get install freeglut3-dev
TCL/TK 8.4.x
In the documentation, TCL/TK 8.4.13 is required to run the simulator. But any version of TCL/TK 8.4.x is good enough. TCL/TK must be built without threads. There are problems running the simulator when pthreads are enabled as described here
In Ubuntu 6.06, TCL/TK 8.4.12 is available but cannot be used because it is built with threads enabled. You can download the i386 debian packages from here.
http://www.cc.gatech.edu/~davidhi/nothreads/tcl8.4_8.4.12-1_i386.deb
http://www.cc.gatech.edu/~davidhi/nothreads/tcl8.4-dev_8.4.12-1_i386.deb
http://www.cc.gatech.edu/~davidhi/nothreads/tk8.4_8.4.12-1_i386.deb
http://www.cc.gatech.edu/~davidhi/nothreads/tk8.4-dev_8.4.12-1_i386.deb
To install these packages, do the following.
sudo dpkg -i tcl8.4_8.4.12-1_i386.deb tcl8.4-dev_8.4.12-1_i386.deb
sudo dpkg -i tk8.4_8.4.12-1_i386.deb tk8.4-dev_8.4.12-1_i386.deb
tk8.4-dev_8.4.12-1_i386.deb requires the following packages to be installed: x-dev, xlibs-dev, libx11-dev, libxt-dev.
RPM
Any version of rpm is suitable, preferably the latest. This is required to install the rpms in the SDK.
In Ubuntu 6.06, RPM 4.4.1 is available and can be used. Install the rpm package.
sudo apt-get install rpm
gawk
Any version of gawk is suitable, preferably the latest. This is required for the build script.
In Ubuntu 6.06, gawk 3.1.5 is available and can be used. Install the gawk package.
sudo apt-get install gawk
mawk is installed by default and cannot be used. In order to find out which awk you are using, type awk --version.
bison
Any version of bison is suitable, preferably the latest. This is required for the build script.
In Ubuntu 6.06, bison 2.1 is available and can be used. Install the bison package.
sudo apt-get install bison
flex
Any version of flex is suitable, preferably the latest. This is required for the build script.
In Ubuntu 6.06, flex 2.5.31 is available and can be used. Install the flex package.
sudo apt-get install flex
libX11
The X11 libraries are not required, but you’ll need them to run some of the applications from the SDK.
In Ubuntu 6.06, libx11-6, libxau6, libdmcp6 is available and installed by default.
1. Mount ISO Image
Mount the ISO image downloaded from http://www.alphaworks.ibm.com/tech/cellsw.
mkdir -p /mnt/cellsdk
mount -o loop CellSDK11.iso /mnt/cellsdk
2. Copy the SDK packages into a directory
We want to copy the packages so that we can edit the cellsdk script provided.
cp -r /mnt/cellsdk/software ~
3. Update the cellsdk script
Because we are not using Fedora Core 5, or any other distributions that rely on rpm as their package manager, we have to change the installation of the rpms to --nodeps in order to install them.
Search for all instances of rpm --ivh --force $RPMLIST in the function install_rpms() and add a --nodep to that line.
Change from:
rpm --ivh --force $RPMLIST
to:
rpm --ivh –force --nodep $RPMLIST
I have provided a patch file that can be downloaded here (http://triplez.sg.gs/cellsdk-1.1/cellsdk.patch).
To patch the cellsdk script:
patch cellsdk cellsdk.patch
4. Updating the cellsdk script to use your make 3.80 (if you use method 2)
If you compiled your own make 3.80 into a directory, we have to change the cellsdk script to use that make instead. There are 3 instances of make called in the script:
function make_libs_samples_gnu()
function make_libs_samples_xlc()
function clean_libs_samples()
Change the line to reflect where your make 3.80 is. For example,
Change from:
make -i
to:
~/make-3.80/make -i
5. Installing the CBE SDK 1.1
Install the CBE SDK 1.1 using the cellsdk script.
sudo ./cellsdk install
And wait. Everything will be automatically downloaded, installed and built.
6. Running the Simulator
Go to /opt/IBM/systemsim-cell/run/cell/linux directory and type sudo ../run_gui.
You can run without root by changing the owner and group.
sudo chown -R /opt/IBM/systemsim-cell
sudo chgrp -R /opt/IBM/systemsim-cell
If it gives you some segmentation fault, that means you've forgotten to install the tcl/tk without pthread versions.
All the updated documentation are provided in the CellSDK11.iso.