grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Big Endian fix patch


From: Doug Nazar
Subject: Re: Big Endian fix patch
Date: Tue, 27 Jul 2010 19:58:01 -0400
User-agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.7) Gecko/20100713 Thunderbird/3.1.1

 On 2010-07-27 11:26 AM, Lennart Sorensen wrote:
It is faster and simpler to use an iso image with qemu rather than the
real cdrom drive.  Seems much more reliable that way.

It is an ISO image. That's what has me steamed. I'm not sure how I'm still getting errors. First I was doing a Gentoo install but there were a few too many decisions I wasn't sure about for PPC and I was having problems cross-compiling some packages. So I grabbed an Ubuntu image and it would randomly error out on different packages. I'm not too familiar with Ubuntu but finally figured out how to nfs mount the image over the cdrom mount point. Then found that adding extra drives caused the openbios aliases to change and the boot command wouldn't work with the full paths. After checking the openbios source found it ignores boot-device, boot-file etc. so I ended up open-coding the boot-command as a load & go to get grub to boot.

I have an IBM p520 here (dual core power6+ 4.2GHz). Nothing takes long here. :)

Yes, I definitely need some new toys....<sigh>

So with my patch I am booting of the md raid1 very successfully (other
than manually having to fix grub-mkimage run since grub-install doesn't
understand the machine yet.  I am working on fixing that now.)
I didn't have a big problem with grub-mkimage. Used the command
./grub-mkimage -O powerpc-ieee1275 -d . -o grubof.modules -p "(/pci/ata-io/ata-3/address@hidden,4)/" *.mod

My biggest issue was cross-compiling grub. A couple commands are host run so I had to borrow a copy from my x86 tree. Would there be any interest in extending grub to do this automatically?

(Although re-reading your sentence I think you meant "having to run grub-mkimage manually"....)

Quite simply, _everything_ that accesses the superblock structure
numbers has to use endianess conversion since 1.x md superblocks are
always little endian.  0.9 is host endian all the time and hence simpler
(but also not portable).

And the checksum needs folding according to the kernel before comparing
(which I added).  Otherwise different architectures may have different
results.
Yeah, I'd noticed that some of the original code didn't do this, but I didn't want to make changes to it until I had a test environment.

I just finished building my test arrays. It consists of 13 partitions used to build 4 arrays with a combination of metadata types, raid types, & spares. Then building an lvm on top of that. I'll start running some tests and randomly failing some members.

Does grub display correctly on the p520? I'm having display issues (looks like the lines are too long) and I'm not sure yet if it's grub or openbios. Also, a current version of openbios doesn't just drop in to QEMU.

But first some breakfast......;-)

Doug




reply via email to

[Prev in Thread] Current Thread [Next in Thread]