Woody on RS/6000 F50 - Success!
I've finally managed to net-install Debian woody on the IBM
RS/6000 7025 F50. Here are some details for what they're worth.
I've had to compile a kernel from sources obtained via rsync from the
rsync -avz source.mvista.com::linuxppc_2_4_devel
This tree is based on kernel 2.4.20-pre5. I previously tried 2.4.15,
2.4.18 and 2.4.19 from kernel.org, with and without the powerpc patches
from the same source (2.4.19 unpatched only), but I couldn't compile an
image that would boot on this machine from any of them.
I am net-booting via DHCP/BOOTP; I have not yet had much of a stab at
making the machine bootable from the disk.
The system console is on the serial port, because configuring all the
graphical-console stuff out of the kernel was the only way the previous
kernel sources I used would even attempt to boot. I don't know yet if the
sources I'm using now will fix that problem, too, if I configure the
graphical-console stuff back in.
I used minicom on another woody machine to connect to the serial console
on the RS/6000 via null-modem cable. The serial port used with minicom
was set to 9600 8N1 and the modem initialisation string used was ~^M~ .
The kernel was given the boot parameter console=ttyS0,9600 .
The original kernel was cross-compiled on an Intel Debian woody machine.
Building the cross-compiler was simple (in retrospect); here's the drill I
followed for any interested party:
- Compile binutils for a ppc-linux target:
apt-get source binutils
Find the original binutils source tarball in the directory where apt
extracts the sources and untar it in /usr/local/src. Then make a
separate build directory for binutils in /usr/local/src.
./<binutils source dir>/configure --target=ppc-linux
- Compile a gcc cross-compiler for a linux-ppc target, for the C language
only, without libc support:
apt-get source gcc-2.95
Find the original gcc tarball in the directory where apt extracts the
sources, untar it in /usr/local/src, and edit the file
gcc/config/t-linux in the gcc source tree to change the line
TARGET_LIBGCC2_CFLAGS = -fPIC
TARGET_LIBGCC2_CFLAGS = -fPIC -Dinhibit_libc
so that an already cross-compiled libc is not required to build gcc. The
gcc build process will complain at the end that the compiled libc cannot
create executables, but we don't care because we're going to use it to
build a kernel, not executables. Then make a separate build directory for
gcc in /usr/local/src:
../<gcc-source-dir>/configure --target=ppc-linux --enable-languages=c
(so we only build a C compiler, which is all we need for a kernel, and
not a complete suite)
You can now get your kernel sources, edit the top-level Makefile and
change the lines setting the two following variables so that they read:
ARCH := ppc
CROSS_COMPILE := ppc-linux-
(note the dash at the end of ppc-linux-)
Then configure and compile a kernel as usual: make (menu)config, dep,
zImage etc. To start the Debian installer, I used the root.bin floppy
image from the powerc-chrp Debian woody floppy set as suggested by Rolf
Brudeseth (copied to arch/ppc/boot/images/ramdisk.image.gz in the kernel
source tree and made into a combined image with the kernel using make
After compiling a kernel and getting it to net-boot, the Debian
net-installation is routine. As I was net-booting, I skipped the steps
about installing the kernel and about making the system bootable from
disk. I also compiled everything I needed for the net install into the
kernel, so I skipped the step about installing the modules, too.
A modular kernel with more features was successfully compiled and
installed on the machine itself after installation, using the make-kpkg
utility from the kernel-package Debian package and the same sources.
I will keep the list posted of further developments.
Many thanks to all those who gave me various insights on the RS/6000 and
who shared their own experiences installing Debian woody on these
| George Karaolides Planitis Communications Ltd., |
| tel: +357 22 45 65 00 Office 102, 11 Florinis Street, |
| web: www.planitis.net Nicosia CY 1065, |
| email: firstname.lastname@example.org Republic of Cyprus. |