Linux Kernel 2.6.22 for the Cell/B.E.™
In this section we provide the Linux operating system kernel with Cell Broadband Engine Architecture support that is part of the IBM SDK 3.0 for the Cell/B.E.™. We provide a pre-built kernel binary package intended for IBM BladeCenter QS20 and IBM BladeCenter QS21 hardware but also the sources and instructions how to build it. Even new versions could be made available, only the kernel level hosted here would be the one supported in IBM SDK 3.0.
The IBM SDK provides a guide that helps you installing IBM BladeCenter QS21 where this zImage file is needed (see Installation Guide for the SDK for Multicore Acceleration v3.0 )
zImage to boot over the network
BladeCenter QS21 does not provide on-board disk space, if there is no SAS-attached storage, a NFS network boot must be performed. We provide a zImage that supports booting from NFS in order to boot and install new IBM BladeCenter QS21 hardware. The zImage has been built using the binary kernel provided below. You will need different zImages for different kernels but blade servers that run the same kernel and same NFS root can all boot using the same zImage.
|zImage.initrd-2.6.22-5.20070920bsc||zImage that contains a boot kernel and a suitable initial RAM disk..|
zImage should be copied to the exported TFTP directory on the TFTP server and a Dynamic Host Configuration Protocol (DHCP) server that supports the Bootstrap Protocol (BOOTP) properly configured for each blade server. See the Installation Guide for the SDK for Multicore Acceleration v3.0 for a detailed explanation.
Kernel binary and source package
The pre-compiled kernel build was built with the default kernel configuration file that comes with the patches. We provide both the pre-compiled kernel build and the source rpm which includes the patches and the 2.6.22 Linux kernel tarball.
Packages are provided as-is. The kernel should boot on the IBM BladeCenter QS20 or BladeCenter QS21.
|kernel-2.6.22-5.20070920bsc.ppc64.rpm||Pre-compiled Kernel binaries that enables Linux kernel on a Cell BE-based System.|
|kernel-2.6.22-5.20070920bsc.src.rpm||Patched kernel sources to enable Linux kernel on cell platforms.|
If you are installing Fedora 7 on BladeCenter hardware, the kernel must be manually installed. To install the kernel first download the previous binary kernel rpm and as root user type:
rpm -ivh --force kernel-2.6.22-5.20070821bsc.ppc64.rpm
You must reboot to activate the new kernel.
|kernel-devel-2.6.22-5.20070920bsc.ppc64.rpm||Kernel devel rpm.|
|kernel-headers-2.6.22-5.20070920bsc.ppc64.rpm||Kernel headers rpm.|
RPMs for debugging kernel data related to SPUs
SDK provide a means of debugging kernel data related to SPUs through specific crash commands, by using a dumped kernel image. This functionality is based on the use of kdump, and the documentation can be found in the Documentation/kdump/kdump.txt file from the Linux kernel sources.
The Programmer's Guide to the IBM SDK for Multicore Acceleration contains some information about how to analyze Cell/B.E.™ SPUs with kdump and crash.
You will need two environments:
- A production system, which runs the kernel where problems can occur.
- An analysis system, where the information (dump file) captured by the production system is analyzed and the possible problems are identified.
The production system must be a Cell/B.E.™ hardware. Otherwise, SPU-specific data that is used by crash is not available in the dump file. The analysis system can be any PowerPC hardware, either 32 or 64-bit.
We provide the following SDK packages that are necessary to have a complete environment to make use of SPU crash commands:
- crash-spu-commands – SPU-specific commands for crash tool
- crash – crash tool for dump analysis (dependency of crash-spu-commands)
- kernel-debuginfo – kernel vmlinux image compiled with debug symbols
- kernel-debuginfo-common – a dependency of kernel-debuginfo
- kernel – kernel image that starts dump capture kernel on a crash event
- kexec-tools – tool used for warm boot of the dump capture kernel
- kernel-kdump – dump capture kernel image
- busybox-kdump – optional package that allows to reserve less memory for booting dump capture kernel.
All these packages must be installed manually.
We also provide a kernel that uses by default 4k pages, you can find the rpms at http://www.bsc.es/projects/deepcomputing/linuxoncell/cellsimulator/sdk3.0/
|kernel-debuginfo-2.6.22-5.20070920bsc.ppc64.rpm||Kernel vmlinux image compiled with debug symbols|
|kernel-debuginfo-common-2.6.22-5.20070920bsc.ppc64.rpm||A dependency of kernel-debuginfo.|
|kernel-kdump-2.6.22-5.20070920bsc.ppc64.rpm||Dump capture kernel image.|
|kernel-kdump-debuginfo-2.6.22-5.20070920bsc.ppc64.rpm||Dump capture kernel image debuginfo.|
|kernel-kdump-devel-2.6.22-5.20070920bsc.ppc64.rpm||Dump capture kernel image devel.|
|kexec-tools-debuginfo-1.101-72.fc7.ppc64.rpm||Kexec tools debuginfo.|
|kexec-tools-1.101-72.fc7.src.rpm||Kexec tools source rpm|
busybox-kdump provides a custom initrd that allows to reduce the amount of reserved memory for the dump capture kernel and it is recommended for the production system.
|busybox-kdump-debuginfo-1.5.1-1.ppc.rpm||Busybox debuginfo kdump.|
|busybox-kdump-1.5.1-1.nosrc.rpm||Busybox spec file.|
Kernel compiled with debug
|kernel-debug-2.6.22-5.20070920bsc.ppc64.rpm||Kernel with debug.|
|kernel-debug-devel-2.6.22-5.20070920bsc.ppc64.rpm||Kernel devel with debug.|
|kernel-debug-debuginfo-2.6.22-5.20070920bsc.ppc64.rpm||Kernel with debug debuginfo rpm.|
Building your own kernel
If you want to built your own kernel for IBM Bladecenter hardware you can use the src rpm provided in this section or download the sources and kernel tree that supports the Cell Broadband Engine Architecture directly from kernel.org. The source tree that is part of the IBM SDK 3.0 can be found at http://kernel.org/pub/linux/kernel/people/arnd/patches/2.6.22-arnd3/ . Newer kernel releases can be found there but these are not supported by IBM SDK 3.0 level and could include unstable and in deveopment kernel releases.
To download and build your own kernel, you need to run the following commands found at http://kernel.org/pub/linux/kernel/people/arnd/patches/2.6.22-arnd3/fedora/README . This would download and built kernel rpms.
Building your zImage
To build zImage file you need a Fedora 7 powerpc machine with updated libdhcp, mkinitrd and nash packages, a fstab file and the kernel level from where you want to built that zImage installed. It is not needed to have the kernel booted so any powerpc machine with Fedore Core 7 installed could be used to built zImage, you need the kernel only installed.
To install the kernel first you must type root user:
rpm -ivh --force kernel-2.6.22-5.20070821bsc.ppc64.rpm
This will install the kernel in your machine. If the machine it is not a IBM BladeCenter QS20 or IBM BladeCenter QS21, we would recommend to delete the entry that have been added to your yaboot.conf to not boot this Cell/B.E.™-enabled kernel on a future machine reboot.
Download following fstab and copy it to /root/fstab. Then, to create zImage just type:
/sbin/mkinitrd --with=tg3 --with=nfs --net-dev=eth0 --fstab=/root/fstab \ /root/initrd-2.6.22-5.20070920bsc.img 2.6.22-5.20070920bsc mkzimage /boot/vmlinuz-2.6.22-5.20070920bsc no no /root/initrd-2.6.22-5.20070920bsc.img \ /usr/share/ppc64-utils/zImage.stub /root/zImage.initrd-2.6.22-5.20070920bsc