Red Hat Bugzilla – Bug 118288
kernel freezes at desktop when booting via BootX on "WallStreet II" PowerBook G3
Last modified: 2007-11-30 17:10:38 EST
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040115
Description of problem:
Boot on a "WallStreet II" (I think; definitely some kind of
"WallStreet" anyway) PowerBook G3, via BootX, freezes before the BootX
early text console appears. After I click "Linux", the hard drive
shuts off, the mouse pointer disappears, and the computer freezes (the
Finder desktop is still visible at this point).
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. Install kernel-2.6.4-1.270.ppc.rpm.
2. Copy /boot/vmlinuz-2.6.4-1.270 to the Linux Kernels folder inside
the System Folder on your (hfsplus in my case) Mac OS 9 partition.
(Optionally copy the initrd as well, although I can't get far enough
for that to matter.)
3. Reboot into Mac OS 9.
4. Start the BootX application/control panel/whatever-it-is.
5. Choose the 2.6.4-1.270 kernel.
6. Remove any "video=..." options and select "No video driver".
7. If necessary, configure BootX to not load an initrd.
8. Click "Linux".
Actual Results: BootX closes up, mouse pointer disappears, computer
Expected Results: BootX closes up, mouse pointer disappears, screen
turns black, about half a screenful of white text appears, the screen
is cleared again, and a penguin appears in the upper left corner of
Originally this PowerBook had a 233MHz G3 (*with* backside cache!!)
and 96MB of RAM. In the last several months I've upgraded it to a
500MHz G3 (Sonnet if it matters) and 512MB of RAM, although that
should not be relevant; the machine still works with Yellow Dog 2.4.20
and 2.4.22 kernels, as well as mainline 2.4 kernels (most recently
A few minutes ago I copied a vmlinux over from a PowerMac G4 running
Gentoo and mainline 2.6.1, and repeated the steps here. That got as
far as showing the penguin in the upper-left corner. I stopped the
boot at that point because that kernel's config is *way* too stripped
down for this PowerBook, but at least it proves that a 2.6.x kernel
can get past the early BootX console on this setup.
That still leaves a lot of variables to be eliminated, but I will
begin work on that now.
Mainstream 2.6.4-bk2 boots (at least up to the penguin in the corner;
I'm still using the .config from the PowerMac G4 for now). 2.6.4-1.270
recompiled on the same machine with essentially the same .config as my
2.6.4-bk2 compile still freezes on the desktop.
I guess I'll once again start trying to locate which patch causes the
problem -- if I have time.
(make that "causes or reveals")
it could be a problem in the .config just as well, or the fact that
the kernel gets built with -g and then stripped.....
Unfortionately I have no ppc box to play with this and thus entirely
depend on other people to find such things ;(
The problem happens when patch 10000 (linux-2.6.0-compile.patch) is
applied, and does not happen when that patch is not applied. This is
100% reproducible. Now I just need to figure out which part of that
patch is causing (or revealing) the problem...
looking over that patch I see nothing really suspect that would touch
non-x86..... odd. Maybe the gcc inlining changes :(
Here's the guilty part of the patch:
--- linux-2.6.3/arch/ppc/syslib/Makefile~ 2004-03-09
+++ linux-2.6.3/arch/ppc/syslib/Makefile 2004-03-09
@@ -9,8 +9,6 @@
EXTRA_AFLAGS := -Wa,-m405
-CFLAGS_prom_init.o += -mrelocatable-lib
-CFLAGS_btext.o += -mrelocatable-lib
obj-$(CONFIG_PPCBUG_NVRAM) += prep_nvram.o
obj-$(CONFIG_44x) += ibm44x_common.o
If *either* line is removed, the boot process freezes. As long as both
lines are in, the kernel boots.
There's a comment about this at the top of prom_init.c.
I'm dying to know why this was hunk was in the patch, but anyway, what
I really care about is just getting rid of it for the next kernel, so
that it can actually boot on my system.
I removed those because they made gcc ICE and our gcc maintainer said
they were broken... seems we need to go back to the drawing table on
They don't seem to make gcc (3.3.3-2.1) ICE for me, FWIW...
Here's the distribution archive for the bootloader I'm using (I think
it comes with source code):
It's in the proprietary StuffIt compresion format (that's the de facto
standard on Mac OS 9.x and earlier) but, if it would help, I could
decompress it on a Mac OS X machine and then turn the source code into
a tarball. Be aware, though, that's it's a Mac OS program -- that's
how it avoids total reliance on the broken Open Firmware
implementations in older PPC Macs like mine.
Ugh, it looks like whether the compile succeeds with -mrelocatable-lib
depends on the .config. (I think.) I got a compile failure with the
If I figure anything else out, I'll let you know. I'll probably have
to set this problem aside for the moment, however.
found a decent enough workaround for now;
uploaded the kernel with it to people.redhat.com/arjanv/2.5
thanks for digging this out!
There is now a "ppc32-build-fix.patch" in 2.6.5-rc1-mm1. It's from one
of the upstream PPC people, and (modulo whitespace) I think it matches
what you did in 2.6.4-1.275; it may be the real fix and not just a
2.6.4-1.275 boots for me now. Without getting into detail yet, I'm
running into other problems, but I want to make more progress in
troubleshooting before I bugzilla anything (I *strongly* suspect that
if my problems are not a .config error then they're upstream bugs).
FWIW, "ppc32-build-fix.patch" is now included upstream as of
This bug is fixed upstream. 2.6.4-1.288 (maybe some earlier kernels
too) appears to have the upstream fix AFAIK, and it seems to work, so
I'm closing this bug.