[openfirmware] Using Open Firmware as a boot manager

Mark Morgan Lloyd markMLl.openfirmware at telemetry.co.uk
Sat Mar 19 11:36:44 CET 2011

Thanks Mitch, generally noted. I've still got problems reading ext2 
(Linux) filesystems, below reordered and truncated to focus on this.

>>>> What do I need to do to look in the Linux filesystem, including
>>>> identifying what file in /boot can be booted?
>>> ok dir /pci/pci-ide at 1f,1/ide at 0/disk at 0:2,\boot\
>> 0:2 is the second FAT partition, do you mean 0:3 there? If I do
>> ok dir /pci/pci-ide at 1f,1/ide at 0/disk at 0:2,\
>> I see the content of the second FAT filesystem, if I do
>> ok dir /pci/pci-ide at 1f,1/ide at 0/disk at 0:3,\
>> I get
>> Error: Unknown file system
>> Can't open disk label package
>> Can't open directory
>> OFW was built using the instructions from
>> http://www.openfirmware.info/Building_OFW_to_Run_Under_BIOS which worked
>> without problems.
> Those instructions say to use config-virtualbox.fth, which doesn't 
> include linux support.  Just add a "create linux-support" line to 
> config.fth.  That will cause fw.bth to include the ext2 filesystem module.

Doing that builds OK, but I still can't read the directory. I'm 
suspicious about the partition table layout on the drive I'm using:

 >>>> I've set myself up a disk with DOS and Linux which .partitions c
 >>>> describes as
 >>>> 1 Primary Yes FAT-16>32M 37
 >>>> 2 Primary No Extended 2252
 >>>> 2 Logical No FAT-16>32M 2045
 >>>> 3 Logical No 0x82 207

Linux's fdisk -l shows this to have start cylinders

/dev/hda1	1	6, FAT16
/dev/hda2	6	5, Extended
/dev/hda3	311	83, Linux
/dev/hda5	6	6, FAT16
/dev/hda6	283	82, Linux swap

I think one fair question here is how to tell .partitions to display all 
available, rather than stopping after four.

I've just put Debian onto another disk, which Linux's fdisk -l shows as

/dev/hda1	1	83, Linux
/dev/hda2	248	5, Extended
/dev/hda5	248	82, Linux swap

ok dir /pci/pci-ide at 1f,1/ide at 0/disk at 0:1,\
ok dir /pci/pci-ide at 1f,1/ide at 0/disk at 0:1,\boot\

both get me directory listings. Almost there now :-)

Setting up symlinks in /boot to save typing, and working on my 
experience with Sun systems that parameters get passed through,

ok boot /pci/pci-ide at 1f,1/ide at 0/disk at 0:1,\boot\vmlinuz
         initrd=/boot/initrd.img root=/dev/hda1

That (plus a few variants) doesn't work, I think I need to have the 
initrd "piggybacked" onto the kernel, or quite simply use a kernel that 
doesn't rely heavily on modules... yes, testing with a Slackware kernel 
works fine.

So that leaves a possible issue with partition tables on some systems 
but apart from that looks pretty good.

Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk

[Opinions above are the author's, not those of his employers or colleagues]

More information about the openfirmware mailing list