Dann, Will this work on other IA64 environments? I'll apply unless there are objections.
-Sean On Wed, Mar 23, 2005 at 11:42:09AM +0100, Erich Focht wrote: > Hi, > > here is a fix for the ia64 boot issue which required a few unusual > workarounds in OSCAR-4.0. The patch needs to be applied to the image. > > Alternatively, you can simply take and use > http://home.arcor.de/efocht/oscar/systemconfigurator-2.0.9-2ef.noarch.rpm > http://home.arcor.de/efocht/oscar/systemconfigurator-2.0.9-2ef.src.rpm > They need to be copied to packages/sis/RPMS and packages/sis/SRPMS, > respectively. RHEL3AS will install (almost) as smooth as rh9. > > This RPM and the corresponding SRPM contains two critical fixes for > ia64/rhel3 (reported as bug #1167615) > - the kernel version recognition fix posted earlier > - the ia46 efi and initrd setup fix attached to this email. > > These fixes make following points in the RHEL Readme obsolete: B3, > B4. You will not need to care about initrd and systemconfig.conf, it > will just install smoothly. (I also believe that B5 is not necessary, > unless one installs some additional SCSI controller. My install went > smooth without that.). With the RPMs one doesn't really need the > x86/ia64 distinction in the workarounds for RHEL3, the number of > workarounds decreases considerably. > > I will maintain a bug-fixed version of systemconfigurator for OSCAR > until the fixes go into SISuite and appear as RPMs. This seems > necessary because some bugs simply cannot be included in OSCAR as > patches, they need to go into the RPMs. > > Best regards, > Erich > > > -- > Dr. Erich Focht > Core Technology Group > NEC High Performance Computing Europe GmbH, EHPCTC > > > --- usr/lib/systemconfig/Boot/EFI.pm.orig 2005-03-22 18:25:18.000000000 > +0100 > +++ usr/lib/systemconfig/Boot/EFI.pm 2005-03-23 10:49:52.000000000 +0100 > @@ -70,28 +70,21 @@ > boot_bootdev => "", > boot_timeout => 50, > @_, > - config_file => "/boot/efi/elilo.conf", > + config_file => "", > ); > > my @elilo_locations = qw( > /boot/efi > - /boot/efi/efi/redhat > + /boot/efi/EFI/redhat > /boot/efi/efi/sgi > /boot/efi/SuSE > ); > > foreach my $possible (@elilo_locations) { > - my $file = $this{root} . $possible . "/elilo.conf"; > - if ( -e $file ) { > - $this{config_file} = $file; > - } > - } > - debug("config_file has been set to " . $this{config_file}); > - > - foreach my $possible (@elilo_locations) { > my $file = $this{root} . $possible . "/elilo.efi"; > if ( -e $file ) { > $this{bootloader_exe} = $file; > + $this{config_file} = $this{root} . $possible . "/elilo.conf"; > } > } > debug("bootloader_exe has been set to " . $this{bootloader_exe}); > @@ -135,10 +128,7 @@ > sub footprint_loader { > my $this = shift; > > - return ((-e $$this{root} . "/boot/efi/elilo.efi" or > - -e $$this{root} . "/boot/efi/efi/redhat/elilo.efi" or > - -e $$this{root} . "/boot/efi/efi/sgi/elilo.efi" or > - -e $$this{root} . "/boot/efi/SuSE/elilo.efi") > + return ((-f $$this{bootloader_exe}) > and $$this{bootmenu_exe} and $$this{bootloader_exe}); > } > > @@ -216,7 +206,7 @@ > } > } > > - my $image = efi_friendly($$this{$kernel . "_path"}); > + my $image = strip_path($$this{$kernel . "_path"}); > > print $outfh <<LILOCONF; > #----- Options for \U$kernel\E -----# > @@ -237,7 +227,7 @@ > > ### Initrd image > if ($this->{$kernel. "_initrd"}) { > - print $outfh "\tinitrd=" . efi_friendly($this->{$kernel . > "_initrd"}) . "\n"; > + print $outfh "\tinitrd=" . strip_path($this->{$kernel . "_initrd"}) > . "\n"; > } > } > > @@ -252,11 +242,14 @@ > # image=/vmlinuz BAD > # image=\vmlinuz GOOD > > +# [EF 23.03.2005] > +# most reliably working option: > +# image=vmlinuz > +# with the kernel placed in the same directory as elilo.efi > > -sub efi_friendly { > +sub strip_path { > my $path = shift; > - $path =~ s{/boot/efi/}{}; > - $path =~ s{\\}{/}g; > + $path =~ s{^.*/}{}g; > return $path; > } > > --- usr/lib/systemconfig/Initrd/Generic.pm.orig 2005-03-22 > 18:14:07.000000000 +0100 > +++ usr/lib/systemconfig/Initrd/Generic.pm 2005-03-22 19:38:38.000000000 > +0100 > @@ -64,7 +64,13 @@ > my $rdfile = "/boot/sc-initrd-$version.gz"; > if( (uname)[4] eq "ia64") { > # Itaniums need things in their special place > - $rdfile = "/boot/efi/sc-initrd-$version.gz"; > + if (-e "/etc/redhat-release") { > + $rdfile = "/boot/efi/EFI/redhat/sc-initrd-$version.gz"; > + } elsif (-e "/etc/SuSE-release") { > + $rdfile = "/boot/efi/SuSE/sc-initrd-$version.gz"; > + } else { > + $rdfile = "/boot/efi/sc-initrd-$version.gz"; > + } > } > return $rdfile; > } -- __________________________________________________________________ Sean Dague Mid-Hudson Valley sean at dague dot net Linux Users Group http://dague.net http://mhvlug.org There is no silver bullet. Plus, werewolves make better neighbors than zombies, and they tend to keep the vampire population down. __________________________________________________________________
pgpEBKe3ii9nZ.pgp
Description: PGP signature