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

Attachment: pgpEBKe3ii9nZ.pgp
Description: PGP signature

Reply via email to