New gnu-efi package and new boot loader available
Quoted 6 lines · Stephane Eranian
This version of the gnu-efi package includes a new version of the boot loader which represents the merge of ELI and LILO into ELILO.
Most features of each have been merged. This means that ELI's config file (a la LILO/ia-32) is supported, for instance.Support and development on the bootloader will now focus on this new version.
A few ELILO patches - one bugfix:
- elilo-makefile.patch
Tweaks the dependency rules in the Makefile so it will rebuild OK if you change one file.
one behavior change:
- elilo-image.patch
Appends extra command-line parameters to any image parameters, instead of overriding all of them. Overriding things like 'ro' or 'root=' should still work, AFAIK.
and two things catering to my personal preferences :) :
- elilo-query.patch
Makes the '-q' behavior the default, and adds a '-Q' to turn on querying.
- elilo-verbosity.patch
Wraps many messages with 'if (elilo_opt.verbose)'; also
turns off the timeout if an image was specified on the command line
Comments?
Bill
Make.rules +3 -0
@@ -4,3 +4,6 @@ %.so: %.o $(LD) $(LDFLAGS) $^ -o $@ $(LOADLIBES) + +%.o: %.c + $(CC) $(CFLAGS) $(CPPFLAGS) -c $^ -o $@
elilo/Makefile +5 -1
@@ -36,11 +36,15 @@ all: $(TARGETS) +elilo.efi: elilo.so + elilo.so: getopt.o strchr.o loader.o gzip_loader.o gzip.o \ plain_loader.o localfs.o netfs.o fileops.o util.o alloc.o fpswa.o \ memset.o memcpy.o config.o initrd.o alternate.o -gzip.o : inflate.c +gzip.o: gzip.c inflate.c + $(CC) $(CFLAGS) $(CPPFLAGS) -c gzip.c -o $@ + clean: rm -f $(TARGETS) *~ *.o *.so
elilo/elilo.c renamed from elilo/elilo.c.verbosity +1 -1
@@ -367,7 +370,7 @@* config file */ if (argc >1 +index) { -StrCpy (args, argv[++index]); +/* StrCpy(args, argv[++index]); */ while (++index < argc) {StrCat (args,W2U (L" " ));StrCat (args, argv[index]);
elilo/elilo.c renamed from elilo/elilo.c.ook +7 -2
@@ -71,7 +71,9 @@UINTN initrd_size;/* how big is the initial ramdisk */ }; -elilo_opt_t elilo_opt; +elilo_opt_t elilo_opt = { + noquery:1 +};EFI_SYSTEM_TABLE *systab;
@@ -622,13 +622,16 @@ argc =argify (info->LoadOptions,info->LoadOptionsSize, argv); -while ((c=Getopt (argc, argv,W2U (L"C:adqht:i:vVf" ))) !=-1 ) { +while ((c=Getopt (argc, argv,W2U (L"C:adQqht:i:vVf" ))) !=-1 ) {switch (c) {case 'a' : elilo_opt.always_alt=1 ;break ;case 'd' : elilo_opt.debug=1 ; +break ; +case 'Q' : + elilo_opt.noquery=0 ;break ;case 'q' : elilo_opt.noquery=1 ;
elilo/elilo.txt renamed from elilo/elilo.txt.ook +5 -2
@@ -37,10 +37,13 @@ -v Turn on verbose mode. LILO prints more message about what it is doing. - -q Do not ask for a keypress when invoked in interactive mode. + -Q Ask for a keypress when invoked in interactive mode. The interactive mode is entered when LILO is invoked with command line arguments or when it is interrupted in the middle - of loading an image. + of loading an image. + + -q Do not ask for a keypress when invoked in interactive mode. + (This option is the default.) -a Always check for alternate kernel image. When LILO detects that it has been invoked with some command line argument, the
elilo/elilo.c renamed from elilo/elilo.c.verbosity +34 -13
109 lines not on this page · raw message
elilo/plain_loader.c renamed from elilo/plain_loader.c.verbosity +6 -4
@@ -101,7 +101,7 @@ }static INTN -load_elf (INTN fd,fileops_t *fops,VOID *kentry,VOID *kend) +load_elf (INTN fd,fileops_t *fops,VOID *kentry,VOID *kend,CHAR16 *kname) {Elf64_Ehdr ehdr;Elf64_Phdr *phdrs;
@@ -226,8 +226,10 @@* virtual address where the kernel code starts */ -W2U (L"Press any key to interrupt\r\n" )); -W2U (L"Loading kernel.." )); +if (elilo_opt.verbose) { +W2U (L"Press any key to interrupt\r\n" )); + } +W2U (L"Loading %s..." ), kname);/* Second pass: * Walk through the program headers
@@ -311,7 +313,7 @@ status = fops->fops_open (dev, kname, &fd);if (EFI_ERROR (status))return ELILO_BOOT_ERROR ; - ret =load_elf (fd, fops, kentry, kend); + ret =load_elf (fd, fops, kentry, kend, kname); fops->fops_close (fd);
elilo/util.c renamed from elilo/util.c.verbosity +4 -2
@@ -96,14 +96,16 @@return ELILO_BOOT_ABORTED ; } -W2U (L"Press ENTER to continue or ANY other key to cancel\r\n" )); +if (elilo_opt.verbose) +W2U (L"Press ENTER to continue or ANY other key to cancel\r\n" )); list[0 ] = timer; list[1 ] = systab->ConIn->WaitForKey; do { - Print(W2U(L"%s autoboot in %-3d seconds\r"), kernel_name, timeout); + if (elilo_opt.verbose) + Print(W2U(L"%s autoboot in %-3d seconds\r"), kernel_name, timeout); status = BS->WaitForEvent(2, list, &idx); if (EFI_ERROR(status)) { PRINT_ERR((W2U(L"waitkey WaitForEvent failed %r"), status));
Bill,
Quoted 4 lines
A few ELILO patches - one bugfix:
- elilo-makefile.patch
Tweaks the dependency rules in theMakefileso it will rebuild OK if you change one file.
Good.
Quoted 6 lines
one behavior change:
- elilo-image.patch
Appends extra command-line parameters to any image parameters, instead of overriding all of them. Overriding things like 'ro' or 'root=' should still work, AFAIK.
I did not check how LILO was behaving for comparison and you just gave me the answer.
Quoted 8 lines
and two things catering to my personal preferences :) :
- elilo-query.patch
Makes the '-q' behavior the default, and adds a '-Q' to turn on querying.
- elilo-verbosity.patch
Wraps many messages with 'if (elilo_opt.verbose)'; also
turns off the timeout if an image was specified on the command line
Fine.
I will integrate your patches into the new version of ELILO. I'll try to remember to protect Print() with the verbose test. Also the new ELILO will have a config file parsing that will be much cleaner and closer to the PC LILO. I adapted the code and remove some options which did not make sense. I just need to integrate it to ELILO now. The new ELILO will also have netbooting support.
Also for now DO NOT USE THE initrd fix I submitted a few days back. We are moving allocations around between ELILO and the kernel and at this point we don't have a final answer. Probably the new kernel and ELILO will have the right stuff and changes will be transparent to users. I am also planning on separating ELILO from the rest of the gnu-efi package because they don't evolve at the same pace.
Thanks for your contributions.
RE: [Linux-ia64] Re: New gnu-efi package and new boot loader avai
In reply to Bill NottinghamThis doesn't seem to be hurting anything as far as I can tell, but is there a way to fix this?
Warning: EFI system table major version mismatch: got 1.02, expected 0.92 EFI v1.02 by INTEL: SALsystab=0x7ff266e0 ACPI=0x7fe99cc8 ACPI 2.0=0x7fe99f00 MPS
=0x7ffd0000 SMBIOS=0xf00a0
-----Original Message-----
From: Stephane Eranian [mailto:[email protected]]
Sent: Friday, April 20, 2001 7:27 PM
To: [email protected]
Subject: Re: [Linux-ia64] Re: New gnu-efi package and new boot loader available
Bill,
Quoted 4 lines
A few ELILO patches - one bugfix:
- elilo-makefile.patch
Tweaks the dependency rules in theMakefileso it will rebuild OK if you change one file.
Good.
Quoted 6 lines
one behavior change:
- elilo-image.patch
Appends extra command-line parameters to any image parameters, instead of overriding all of them. Overriding things like 'ro' or 'root=' should still work, AFAIK.
I did not check how LILO was behaving for comparison and you just gave me the
answer.
Quoted 4 lines
and two things catering to my personal preferences :) :
- elilo-query.patch
Makes the '-q' behavior the default, and adds a '-Q' to turn on
querying.
Quoted 4 lines
- elilo-verbosity.patch
Wraps many messages with 'if (elilo_opt.verbose)'; also turns off the timeout if an image was specified on the command line
Fine.
I will integrate your patches into the new version of ELILO. I'll try to remember
to protect Print() with the verbose test. Also the new ELILO will have a config
file parsing that will be much cleaner and closer to the PC LILO. I adapted the code and remove some options which did not make sense. I just need to integrate it to ELILO now. The new ELILO will also have netbooting support.
Also for now DO NOT USE THE initrd fix I submitted a few days back. We are moving allocations around between ELILO and the kernel and at this point we don't have a final answer. Probably the new kernel and ELILO will have the right
stuff and changes will be transparent to users. I am also planning on separating
ELILO from the rest of the gnu-efi package because they don't evolve at the same pace.
Thanks for your contributions.
_______________________________________________
Linux-IA64 mailing list
[email protected]
http://lists.linuxia64.org/lists/listinfo/linux-ia64
RE: [Linux-ia64] Re: New gnu-efi package and new boot loader avai
In reply to Bill NottinghamQuoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line · Ray
Ray> This doesn't seem to be hurting anything as far as I can tell, Ray> but is there a way to fix this?
Ray> Warning: EFI system table major version mismatch: got 1.02, Ray> expected 0.92 EFI v1.02 by INTEL: SALsystab=0x7ff266e0 Ray> ACPI=0x7fe99cc8 ACPI 2.0=0x7fe99f00 MPS =0x7ffd0000 Ray> SMBIOS=0xf00a0
This should be fixed in the latest kernel (2.4.3 + ia64).
--david