6 MB limit of initrd
GerhardTonn at gammatau.de
Thu Feb 7 02:54:10 EST 2008
Scott Moser schrieb:
> On Fri, 1 Feb 2008, Gerhard Tonn wrote:
>> I am facing the problem that yaboot can't handle an initrd of more than
>> 6 MB. I tried the yaboot from head from
>> http://people.fedoraproject.org/~pnasrat/yaboot , since I read on
>> -devel, that the 6 MB problem has been fixed in head.
>> When running this yaboot, I get
>> Claim failed for initrd memory
>> ramdisk load failed !
>> ENTER called ok
>> Anybody any idea?
> Please try building with commit c8b04c614770870d75825c19bcd4729cc779b84a
> backed out (ie: git-checkout -f; git-show c8b04c61 | patch -p1 -R ; make
> clean ; make
> I have a colleague who was having a similar problem on a power5 lpar
> system with firmware at SF240_332 . Doing the above fixed the problem.
> He's now able to netboot 6MB+ kernels.
Thanks, that helps indeed.
We had to apply only the following patch on top since we are using an
AIX bootserver, which interprets '/etc' as an absolute path. After
applying the patch it works with an AIX as well as an Linux bootserver.
--- second/yaboot.c.orig 2008-02-06 13:15:45.000000000 +0100
+++ second/yaboot.c 2008-02-06 14:44:35.000000000 +0100
@@ -465,7 +465,7 @@
struct bootp_packet *packet;
int rc = 0;
struct boot_fspec_t fspec = *orig_fspec;
- char *cfgpath = (_machine == _MACH_chrp || _machine ==
_MACH_bplan) ? "/etc/" : "";
+ char *cfgpath = (_machine == _MACH_chrp || _machine ==
_MACH_bplan) ? "./etc/" : "";
@@ -477,7 +477,7 @@
/* 3 chars per byte in chaddr + 2 chars for htype + /etc/ +\0 */
- fspec.file = malloc(packet->hlen * 3 + 2 + 6);
+ fspec.file = malloc(packet->hlen * 3 + 2 + strlen(cfgpath) + 1);
More information about the Yaboot-users