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
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
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...
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
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.
* 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
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
* 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
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.