2009-03-30 Robert Millan <rmh@aybabtu.com>

* loader/i386/linux.c (grub_cmd_linux): Check for zImage before
        checking for abi version.  Improve error messages on BIOS to notify
        user about `linux16' command.
This commit is contained in:
robertmh 2009-03-30 22:22:31 +00:00
parent f968172ebf
commit 92f33540d8
2 changed files with 21 additions and 7 deletions

View file

@ -1,3 +1,9 @@
2009-03-30 Robert Millan <rmh@aybabtu.com>
* loader/i386/linux.c (grub_cmd_linux): Check for zImage before
checking for abi version. Improve error messages on BIOS to notify
user about `linux16' command.
2009-03-29 Vladimir Serbinenko <phcoder@gmail.com>
Leak fixes

View file

@ -492,18 +492,26 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)),
goto fail;
}
/* FIXME: Is 2.02 recent enough for 32-bit boot? */
if (lh.header != grub_cpu_to_le32 (GRUB_LINUX_MAGIC_SIGNATURE)
|| grub_le_to_cpu16 (lh.version) < 0x0203)
if (! (lh.loadflags & GRUB_LINUX_FLAG_BIG_KERNEL))
{
grub_error (GRUB_ERR_BAD_OS, "too old version");
grub_error (GRUB_ERR_BAD_OS, "zImage doesn't support 32-bit boot"
#ifdef GRUB_MACHINE_PCBIOS
" (try with `linux16')"
#endif
);
goto fail;
}
/* zImage doesn't support 32-bit boot. */
if (! (lh.loadflags & GRUB_LINUX_FLAG_BIG_KERNEL))
/* FIXME: 2.03 is not always good enough (Linux 2.4 can be 2.03 and
still not support 32-bit boot. */
if (lh.header != grub_cpu_to_le32 (GRUB_LINUX_MAGIC_SIGNATURE)
|| grub_le_to_cpu16 (lh.version) < 0x0203)
{
grub_error (GRUB_ERR_BAD_OS, "zImage is not supported");
grub_error (GRUB_ERR_BAD_OS, "version too old for 32-bit boot"
#ifdef GRUB_MACHINE_PCBIOS
" (try with `linux16')"
#endif
);
goto fail;
}