From ingvar at linpro.no  Mon Oct  6 16:21:07 2008
From: ingvar at linpro.no (Ingvar Hagelund)
Date: Mon, 06 Oct 2008 22:21:07 +0200
Subject: Booting Fedora on an old 7248
Message-ID: <48EA7333.6060207@linpro.no>

I am the lucky(?) owner of an IBM RS6000 43P-133 aka the 7248 "Carolina" 
PReP workstation. They run Debian quite happily from a dist-upgraded 
woody install a few years ago if I boot them.
 
Now, a few days ago, I needed to do some testing on PPC, so I installed 
f9 on an old B50 that I had tossed in the attic. I installed cleanly out 
of the box. Inspired, I dug out one of the 7248s and tried to boot one 
of them with the f9 boot iso too. It didn't work, of course, as the 
bootloader on the CD is yaboot. In the "old days", the typical way to 
boot this boxes was by a floppy with the prep bootloader built on top of 
the kernel image. The Fedora installation kernel is some 4.5MB, and 
won't fit on a floppy.

So I thought about netbooting. According to the firmware info (nope, no 
OpenFirmware on this box), it is capable of doing a bootp/tftp boot. So 
I tried that. I set up tftpd and dhcpd on the B50, and put the netboot 
image in /var/lib/tftpboot. From another box on the network, I checked 
that tftp worked as expected. It did.

Looking at the logs, it seems that the 7248 gets an ip address, starts 
downloading the kernel by tftp, but then gives up after a few packages.

See below for dhcpd. conf and some logs for several retries. What am I 
doing wrong?

And yet another question: Does the installation kernel have the old prep 
bootloader added on top? If not, how can it boot the 7248 at all?

Ingvar


# dhcpd.conf
ddns-update-style none;
ignore client-updates;
allow bootp;
allow booting;

default-lease-time 600;
max-lease-time 7200;

subnet 192.168.1.0 netmask 255.255.255.0 {
  range 192.168.1.108 192.168.1.126;
}

host horten {
  filename "ppc32.img";
  server-name "192.168.1.55";
  hardware ethernet 08:00:5a:f8:9b:da;
  fixed-address 192.168.1.98;
}
#EOF

syslog dump:

Oct  6 21:13:41 kvelde dhcpd: BOOTREQUEST from 08:00:5a:f8:9b:da via eth0
Oct  6 21:13:41 kvelde dhcpd: BOOTREPLY for 192.168.1.98 to horten 
(08:00:5a:f8:9b:da) via eth0
Oct  6 21:13:41 kvelde xinetd[1717]: START: tftp pid=2677 from=192.168.1.98
Oct  6 21:13:41 kvelde dhcpd: BOOTREQUEST from 08:00:5a:f8:9b:da via eth0
Oct  6 21:13:41 kvelde dhcpd: BOOTREPLY for 192.168.1.98 to horten 
(08:00:5a:f8:9b:da) via eth0
Oct  6 21:18:01 kvelde dhcpd: BOOTREQUEST from 08:00:5a:f8:9b:da via eth0
Oct  6 21:18:01 kvelde dhcpd: BOOTREPLY for 192.168.1.98 to horten 
(08:00:5a:f8:9b:da) via eth0
Oct  6 21:19:04 kvelde dhcpd: BOOTREQUEST from 08:00:5a:f8:9b:da via eth0
Oct  6 21:19:04 kvelde dhcpd: BOOTREPLY for 192.168.1.98 to horten 
(08:00:5a:f8:9b:da) via eth0
Oct  6 21:19:26 kvelde dhcpd: BOOTREQUEST from 08:00:5a:f8:9b:da via eth0
Oct  6 21:19:26 kvelde dhcpd: BOOTREPLY for 192.168.1.98 to horten 
(08:00:5a:f8:9b:da) via eth0
Oct  6 21:34:26 kvelde xinetd[1717]: EXIT: tftp status=0 pid=2677 
duration=1245(sec)


More or less matching tcpdump:

 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 
08:00:5a:f8:9b:da, length 300
 IP 192.168.1.55.bootps > 192.168.1.98.bootpc: BOOTP/DHCP, Reply, length 300
 arp who-has 192.168.1.55 tell 192.168.1.98
 arp reply 192.168.1.55 is-at 00:04:ac:97:8c:91
 IP 192.168.1.98.9394 > 192.168.1.55.tftp:  18 RRQ "ppc32.img" octet
 IP 192.168.1.55.36209 > 192.168.1.98.9394: UDP, length 516
 IP 192.168.1.98.9394 > 192.168.1.55.36209: UDP, length 4
 IP 192.168.1.55.36209 > 192.168.1.98.9394: UDP, length 516
 IP 192.168.1.98.9394 > 192.168.1.55.36209: UDP, length 4
 IP 192.168.1.55.36209 > 192.168.1.98.9394: UDP, length 516
 IP 192.168.1.98.9394 > 192.168.1.55.36209: UDP, length 5
 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 
08:00:5a:f8:9b:da, length 300
 IP 192.168.1.55.bootps > 192.168.1.98.bootpc: BOOTP/DHCP, Reply, length 300
 arp who-has 192.168.1.55 tell 192.168.1.98
 arp reply 192.168.1.55 is-at 00:04:ac:97:8c:91
 IP 192.168.1.98.22590 > 192.168.1.55.tftp:  18 RRQ "ppc32.img" octet
 IP 192.168.1.55.34725 > 192.168.1.98.22590: UDP, length 516
 IP 192.168.1.98.22590 > 192.168.1.55.34725: UDP, length 5
 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 
08:00:5a:f8:9b:da, length 300
 IP 192.168.1.55.bootps > 192.168.1.98.bootpc: BOOTP/DHCP, Reply, length 300
 arp who-has 192.168.1.55 tell 192.168.1.98
 arp reply 192.168.1.55 is-at 00:04:ac:97:8c:91
 IP 192.168.1.98.22530 > 192.168.1.55.tftp:  18 RRQ "ppc32.img" octet
 IP 192.168.1.55.33150 > 192.168.1.98.22530: UDP, length 516
 IP 192.168.1.98.22530 > 192.168.1.55.33150: UDP, length 5




From jwboyer at gmail.com  Tue Oct  7 07:30:34 2008
From: jwboyer at gmail.com (Josh Boyer)
Date: Tue, 7 Oct 2008 07:30:34 -0400
Subject: Booting Fedora on an old 7248
In-Reply-To: <48EA7333.6060207@linpro.no>
References: <48EA7333.6060207@linpro.no>
Message-ID: <20081007113034.GA2273@yoda.jdub.homelinux.org>

On Mon, Oct 06, 2008 at 10:21:07PM +0200, Ingvar Hagelund wrote:
>I am the lucky(?) owner of an IBM RS6000 43P-133 aka the 7248 "Carolina" 
>PReP workstation. They run Debian quite happily from a dist-upgraded 
>woody install a few years ago if I boot them.
> 
>Now, a few days ago, I needed to do some testing on PPC, so I installed 
>f9 on an old B50 that I had tossed in the attic. I installed cleanly out 
>of the box. Inspired, I dug out one of the 7248s and tried to boot one 
>of them with the f9 boot iso too. It didn't work, of course, as the 

The B50 is a CHRP machine.  The 7248 is a PReP machine.  Fedora does
not support PReP machines.  The oldest 43p style machine that I know
of that worked is the 43p-150, and that hasn't worked in a while
because the kernel dies during boot.

josh


From dwmw2 at infradead.org  Tue Oct  7 09:32:08 2008
From: dwmw2 at infradead.org (David Woodhouse)
Date: Tue, 07 Oct 2008 14:32:08 +0100
Subject: Booting Fedora on an old 7248
In-Reply-To: <20081007113034.GA2273@yoda.jdub.homelinux.org>
References: <48EA7333.6060207@linpro.no>
	<20081007113034.GA2273@yoda.jdub.homelinux.org>
Message-ID: <1223386328.10133.67.camel@macbook.infradead.org>

On Tue, 2008-10-07 at 07:30 -0400, Josh Boyer wrote:
> The B50 is a CHRP machine.  The 7248 is a PReP machine.  Fedora does
> not support PReP machines.  

It shouldn't actually be that hard. Just feed it a flattened device-tree
from your bootloader and it should be fine.

> The oldest 43p style machine that I know
> of that worked is the 43p-150, and that hasn't worked in a while
> because the kernel dies during boot.

I do have a 43p-150 now, I think. I'm waiting for the bloody electrician
to wire up my new workshop properly, and I can start plugging machines
in...

-- 
David Woodhouse                            Open Source Technology Centre
David.Woodhouse at intel.com                              Intel Corporation



From linville at redhat.com  Tue Oct  7 10:59:07 2008
From: linville at redhat.com (John W. Linville)
Date: Tue, 7 Oct 2008 10:59:07 -0400
Subject: Booting Fedora on an old 7248
In-Reply-To: <1223386328.10133.67.camel@macbook.infradead.org>
References: <48EA7333.6060207@linpro.no>
	<20081007113034.GA2273@yoda.jdub.homelinux.org>
	<1223386328.10133.67.camel@macbook.infradead.org>
Message-ID: <20081007145907.GA14726@redhat.com>

On Tue, Oct 07, 2008 at 02:32:08PM +0100, David Woodhouse wrote:
> On Tue, 2008-10-07 at 07:30 -0400, Josh Boyer wrote:
> > The B50 is a CHRP machine.  The 7248 is a PReP machine.  Fedora does
> > not support PReP machines.  
> 
> It shouldn't actually be that hard. Just feed it a flattened device-tree
> from your bootloader and it should be fine.

What PReP bootloaders exist?  When I was using my 7248 in the
past, I always just booted a floppy that had a kernel dd'ed to it.
Alternatively you could boot from a PReP partition (type 41) with a
kernel dd'ed to it.

I remember once thinking that implementing a yaboot- or grub-like
bootloader for PReP might be a fun/interesting project, but the
userbase is a bit limited and the box is a bit wimpy...

Anyway, if you know of a bootloader for PReP I'd like to hear about it.
I imagine that you might could implement a kexec-based loader nowadays
as an alternative.  Well, I'm rambling...

John
-- 
John W. Linville
linville at redhat.com


From dwmw2 at infradead.org  Tue Oct  7 11:02:08 2008
From: dwmw2 at infradead.org (David Woodhouse)
Date: Tue, 07 Oct 2008 16:02:08 +0100
Subject: Booting Fedora on an old 7248
In-Reply-To: <20081007145907.GA14726@redhat.com>
References: <48EA7333.6060207@linpro.no>
	<20081007113034.GA2273@yoda.jdub.homelinux.org>
	<1223386328.10133.67.camel@macbook.infradead.org>
	<20081007145907.GA14726@redhat.com>
Message-ID: <1223391728.20499.7.camel@pmac.infradead.org>

On Tue, 2008-10-07 at 10:59 -0400, John W. Linville wrote:
> 
> What PReP bootloaders exist?  When I was using my 7248 in the
> past, I always just booted a floppy that had a kernel dd'ed to it.
> Alternatively you could boot from a PReP partition (type 41) with a
> kernel dd'ed to it.
> 
> I remember once thinking that implementing a yaboot- or grub-like
> bootloader for PReP might be a fun/interesting project, but the
> userbase is a bit limited and the box is a bit wimpy...
> 
> Anyway, if you know of a bootloader for PReP I'd like to hear about it.
> I imagine that you might could implement a kexec-based loader nowadays
> as an alternative.  Well, I'm rambling...

I did have yaboot working on my 43p-140 before I tried to update its
firmware and turned it into a brick.

-- 
David Woodhouse                            Open Source Technology Centre
David.Woodhouse at intel.com                              Intel Corporation





From ingvar at linpro.no  Tue Oct  7 14:47:45 2008
From: ingvar at linpro.no (Ingvar Hagelund)
Date: Tue, 07 Oct 2008 20:47:45 +0200
Subject: Booting Fedora on an old 7248
In-Reply-To: <20081007145907.GA14726@redhat.com>
References: <48EA7333.6060207@linpro.no>
	<20081007113034.GA2273@yoda.jdub.homelinux.org>
	<1223386328.10133.67.camel@macbook.infradead.org>
	<20081007145907.GA14726@redhat.com>
Message-ID: <48EBAED1.6020106@linpro.no>

* Josh Boyer
>>> The B50 is a CHRP machine.  The 7248 is a PReP machine.  Fedora does
>>> not support PReP machines.  

I know, as I said in the posting, "It didn't work, of course", but since
it was possible to make PReP boxes boot off a CD in the old days, I
thought that perhaps it was doable or at least fixable.

I heard on IRC a few days ago that support for the PReP platform is
still compiled into the Fedora ppc32 kernel, and that there was still a
few people using Fedora on PReP, even though they had to figure out the
installation on their own.

I guess I should start out by dd'ing the ppc32 kernel to my PReP boot
partiton and see what happens.

* David Woodhouse
>> It shouldn't actually be that hard. Just feed it a flattened device-tree
>> from your bootloader and it should be fine.

How? What flattened device-tree? What bootloader? There is no
OpenFirmware access to the device tree. Just a old-style BIOS-like firmware.

* John W. Linville
> What PReP bootloaders exist?  When I was using my 7248 in the
> past, I always just booted a floppy that had a kernel dd'ed to it.
>
> Alternatively you could boot from a PReP partition (type 41) with a
> kernel dd'ed to it.

Yes, but when you compiled those kernels, you marked the machine type as
prep, and then a small prep bootloader was compiled and piggybacked on
top of the prep kernel image. When you bootet from a floppy or a PReP
partition, that small bootloader was loaded first, and it in turn, gave
options to, started the actual kernel. It may be possible to boot the
kernel directly, but as you can't give options to it, it becomes more
difficult to make things work.

> Anyway, if you know of a bootloader for PReP I'd like to hear about it.

I think the old prep bootloader was found in the kernel tree, in
somewhere in arch/ppc/boot/prep/misc.c and friends. It seems that it
still exist in 2.6.26.5.

> I imagine that you might could implement a kexec-based loader nowadays
> as an alternative.  Well, I'm rambling...

I thought about it a few years ago, using a small kernel with that old
prep bootloader, and then some some scripting and kexec to jumpstart the
"real" kernel, but I never got around to get it off the droodle board.

Ingvar


From linville at redhat.com  Tue Oct  7 16:49:18 2008
From: linville at redhat.com (John W. Linville)
Date: Tue, 7 Oct 2008 16:49:18 -0400
Subject: Booting Fedora on an old 7248
In-Reply-To: <48EBAED1.6020106@linpro.no>
References: <48EA7333.6060207@linpro.no>
	<20081007113034.GA2273@yoda.jdub.homelinux.org>
	<1223386328.10133.67.camel@macbook.infradead.org>
	<20081007145907.GA14726@redhat.com> <48EBAED1.6020106@linpro.no>
Message-ID: <20081007204918.GB14726@redhat.com>

On Tue, Oct 07, 2008 at 08:47:45PM +0200, Ingvar Hagelund wrote:

> > Anyway, if you know of a bootloader for PReP I'd like to hear about it.
> 
> I think the old prep bootloader was found in the kernel tree, in
> somewhere in arch/ppc/boot/prep/misc.c and friends. It seems that it
> still exist in 2.6.26.5.

Ah, I guess I was being unclear.  I wouldn't call that a bootloader,
more of a bootwrapper -- it just takes the kernel already loaded in
memory and makes it ready to run.  By bootloader I mean something more
like yaboot or grub, something that can load your choice of kernels off
a variety of filesystems or possibly over the network by one or means.

> > I imagine that you might could implement a kexec-based loader nowadays
> > as an alternative.  Well, I'm rambling...
> 
> I thought about it a few years ago, using a small kernel with that old
> prep bootloader, and then some some scripting and kexec to jumpstart the
> "real" kernel, but I never got around to get it off the droodle board.

I think this is the most realistic answer.

John
-- 
John W. Linville
linville at redhat.com


From ingvar at linpro.no  Tue Oct  7 17:35:41 2008
From: ingvar at linpro.no (Ingvar Hagelund)
Date: Tue, 07 Oct 2008 23:35:41 +0200
Subject: Booting Fedora on an old 7248
In-Reply-To: <48EBAED1.6020106@linpro.no>
References: <48EA7333.6060207@linpro.no>	<20081007113034.GA2273@yoda.jdub.homelinux.org>	<1223386328.10133.67.camel@macbook.infradead.org>	<20081007145907.GA14726@redhat.com>
	<48EBAED1.6020106@linpro.no>
Message-ID: <48EBD62D.6050702@linpro.no>

* Josh Boyer
>>>> The B50 is a CHRP machine.  The 7248 is a PReP machine.  Fedora does
>>>> not support PReP machines.  

* Ingvar Hagelund
> I know, as I said in the posting, "It didn't work, of course", but since
> it was possible to make PReP boxes boot off a CD in the old days, I
> thought that perhaps it was doable or at least fixable.
> 
> I heard on IRC a few days ago that support for the PReP platform is
> still compiled into the Fedora ppc32 kernel, and that there was still a
> few people using Fedora on PReP, even though they had to figure out the
> installation on their own.
> 
> I guess I should start out by dd'ing the ppc32 kernel to my PReP boot
> partiton and see what happens.

I'll try to build a kernel with the misc.c bootloader, so I have to
change the kernel-config a tiny bit.

I simply added this to one of the generic powerpc config files:

CONFIG_CMDLINE_BOOL=y
CONFIG_CMDLINE="root=/dev/cdrom console=ttyS0,9600"

If the misc.c bootloader thing works at it did in good old 2.4 days, I
can edit the options at boot time, and play with them till I find
something that works. Does anybody have a working command line to mount
the cd and start anaconda from one of the ramdisk images on it? Is it
even possible? I could perhaps load the images from a hdd instead?

The kernel is building on my B50 now. That will take a few hours, I
guess. When it has finished, I have to make that old-style zImage with
the bootloader piggybacked on. How can I do that? Is this what the
kernel-bootwrapper package is for? Or do I have to do "make zImage"
somewhere in the specfile?

Ingvar


From dwmw2 at infradead.org  Wed Oct  8 11:36:48 2008
From: dwmw2 at infradead.org (David Woodhouse)
Date: Wed, 08 Oct 2008 16:36:48 +0100
Subject: Booting Fedora on an old 7248
In-Reply-To: <20081007145907.GA14726@redhat.com>
References: <48EA7333.6060207@linpro.no>
	<20081007113034.GA2273@yoda.jdub.homelinux.org>
	<1223386328.10133.67.camel@macbook.infradead.org>
	<20081007145907.GA14726@redhat.com>
Message-ID: <1223480208.3145.189.camel@macbook.infradead.org>

On Tue, 2008-10-07 at 10:59 -0400, John W. Linville wrote:
> On Tue, Oct 07, 2008 at 02:32:08PM +0100, David Woodhouse wrote:
> > On Tue, 2008-10-07 at 07:30 -0400, Josh Boyer wrote:
> > > The B50 is a CHRP machine.  The 7248 is a PReP machine.  Fedora does
> > > not support PReP machines.  
> > 
> > It shouldn't actually be that hard. Just feed it a flattened device-tree
> > from your bootloader and it should be fine.
> 
> What PReP bootloaders exist?  When I was using my 7248 in the
> past, I always just booted a floppy that had a kernel dd'ed to it.
> Alternatively you could boot from a PReP partition (type 41) with a
> kernel dd'ed to it.

The 43p-140 is some kind of weird thing that isn't quite PReP and isn't
quite CHRP. Perhaps that's why it ran yaboot.

These days, what you'd want to do is just turn the residual data into a
flattened device-tree, then pass that to the kernel.

> I remember once thinking that implementing a yaboot- or grub-like
> bootloader for PReP might be a fun/interesting project, but the
> userbase is a bit limited and the box is a bit wimpy...
> 
> Anyway, if you know of a bootloader for PReP I'd like to hear about
> it. I imagine that you might could implement a kexec-based loader
> nowadays as an alternative.  Well, I'm rambling...

For a kexec-based bootloader which operates on a framebuffer, see
petitboot.

-- 
dwmw2



