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; }