Commit Graph

3070 Commits

Author SHA1 Message Date
Vladimir 'phcoder' Serbinenko caee5efd31 GRUB developper manual based on existing Internals section and
contributions by the various authors with active copyright assignment.

	* docs/Makefile.am (info_TEXINFOS): Add grub-dev.texi.
	* docs/font_char_metrics.png: New file.
	* docs/font_char_metrics.txt: Likewise.
	* docs/grub-dev.texi: Likewise.
	* docs/grub.texi (Internals): Move from here ...
	* docs/grub-dev.texi: ... here.
2011-04-03 15:30:28 +02:00
Colin Watson 2cccc747ac Store the loopback device as data on loopback grub_disk structures,
rather than the file it points to.  This fixes use of freed memory
if an existing loopback device is replaced.

* grub-core/disk/loopback.c (grub_loopback_open): Store dev in
disk->data, not dev->file.
(grub_loopback_read): Adjust file assignment to match.
Fixes Ubuntu bug #742967.
2011-04-01 17:04:10 +01:00
Colin Watson 186ae367af * grub-core/disk/loopback.c (grub_cmd_loopback): Fix a memory leak
when replacing an existing device.
2011-04-01 15:35:09 +01:00
Vladimir 'phcoder' Serbinenko cfed2ad097 Fix incorrect types in jfs.c. This enables >2TiB disks and fixes some
memory corruptions.

	* grub-core/fs/jfs.c (struct grub_jfs_diropen): Interpret bytes as
	unsigned.
	(grub_jfs_lookup_symlink): Make ino a grub_uint32_t rather than int.
	(grub_jfs_blkno): Use 64-bit quantities for block sectors.
	(grub_jfs_read_inode): Likewise.
	(grub_jfs_opendir): Likewise. Remove now useless casts.
	(grub_jfs_getent): Likewise.
	Make ino a grub_uint32_t rather than int.
	(grub_jfs_mount): Ensure that blksize and log2_blksize are consistent.
	(grub_jfs_read_file): Use 64-bit quantities when necessary. Replace
	division and module with bit operations.
	(grub_jfs_find_file): Make ino a grub_uint32_t.
	(grub_jfs_lookup_symlink): Likewise. Use 64-bit quantities
2011-04-01 15:53:06 +02:00
Colin Watson 05d2ed3277 * grub-core/normal/menu_entry.c (run): Quieten uninitialised
warning.  (This was in fact always initialised before use, but GCC
  wasn't smart enough to prove that.)
* grub-core/script/lexer.c (grub_script_lexer_yywrap): Likewise.
2011-04-01 11:43:51 +01:00
Vladimir 'phcoder' Serbinenko 91dc607330 * grub-core/kern/x86_64/efi/callwrap.S (efi_wrap_0): Preserve 16-byte
stack alignment.
	(efi_wrap_1): Likewise.
	(efi_wrap_2): Likewise.
	(efi_wrap_3): Likewise.
	(efi_wrap_4): Likewise.
	(efi_wrap_5): Likewise.
	(efi_wrap_6): Likewise.
	(efi_wrap_10): Likewise.
	Based on information by: Red Hat/Peter Jones.
2011-03-31 16:48:36 +02:00
Colin Watson a8afc1d12c * grub-core/mmap/efi/mmap.c (grub_mmap_unregister): Remove
set-but-not-used variable.
2011-03-31 12:25:10 +01:00
Colin Watson a826cc7d7e * docs/grub.texi (Simple configuration): Be more explicit about
GRUB_DEFAULT, and add an example.
Reported by: Leslie Rhorer.
2011-03-31 08:46:41 +01:00
Colin Watson 875b67ba09 * docs/grub.texi (Commands): Link to "GRUB only offers a rescue
shell".
2011-03-30 20:52:26 +01:00
Alexey Shvetsov fd7cd914c6 * util/grub.d/10_linux.in: Add gentoo-specific config filename.
* util/grub.d/20_linux_xen.in: Likewise.
2011-03-30 20:53:23 +02:00
Vladimir 'phcoder' Serbinenko 090b1b6ac6 * util/grub.d/10_linux.in: Try alternative config filenames where
we parse config file.
	* util/grub.d/20_linux_xen.in: Likewise.
2011-03-30 20:42:42 +02:00
Alexey Shvetsov baad885c14 * util/grub.d/10_linux.in: Add gentoo-specific Linux and initrd names.
* util/grub.d/20_linux_xen.in: Likewise.
2011-03-30 19:22:28 +02:00
Vladimir 'phcoder' Serbinenko 241e41f55c * grub-core/disk/raid.c (insert_array): Add few potentially
useful grub_util_info.
	(grub_raid_register): Likewise.
2011-03-30 16:54:11 +02:00
Vladimir 'phcoder' Serbinenko 56445fb2b4 * grub-core/kern/emu/getroot.c (grub_util_get_grub_dev) [__linux__]:
Preserve partition number in mdadm code path.
2011-03-30 16:37:10 +02:00
Vladimir 'phcoder' Serbinenko c871b1c6d0 * grub-core/kern/emu/hostdisk.c (grub_util_biosdisk_get_grub_dev): Add
few potentially useful grub_util_info.
2011-03-30 13:13:25 +02:00
Colin Watson 5e631b4fcb fix ChangeLog ordering 2011-03-30 12:07:43 +01:00
Vladimir 'phcoder' Serbinenko 87d1aa1927 * grub-core/disk/lvm.c (grub_lvm_scan_device): Remove spurious \n. 2011-03-30 13:02:39 +02:00
Colin Watson 2d5d0333d6 * docs/grub.texi (default): Use @example rather than nested
itemized lists to avoid breaking gendocs.
2011-03-30 11:46:36 +01:00
Colin Watson 3d7ed04e92 * docs/grub.texi (Future): Update. 2011-03-30 11:34:52 +01:00
abf042006e * docs/grub.texi (Environment): New chapter.
(Changes from GRUB Legacy): Link to "Environment block" section for
details of limitations.
(Simple configuration): Likewise.  Link to documentation of gfxmode
and gfxpayload variables from GRUB_GFXMODE and GRUB_GFXPAYLOAD
respectively.
(Shell-like scripting): Note that normal variables are stored in the
environment.
(gettext): Link to documentation of lang and locale_dir.
(list_env): New section.
(load_env): New section.
(save_env): New section.
(Reporting bugs): Fix typo.
2011-03-30 11:31:33 +01:00
Vladimir 'phcoder' Serbinenko e1ad0edd11 * docs/grub.texi: Correctly use "terminal_input" and not "terminal" in
the example.
2011-03-30 09:35:35 +02:00
Vladimir 'phcoder' Serbinenko 5d8031749e * grub-core/term/at_keyboard.c (set_scancodes)
[!GRUB_MACHINE_MIPS_YEELOONG && !GRUB_MACHINE_QEMU]: Use scancode set 1.
2011-03-30 09:26:23 +02:00
Colin Watson 2a2da1d030 * docs/grub.texi (Menu-specific commands): Remove some semantics
that were true in GRUB Legacy but not in GRUB 2.
(submenu): New section.
(false): New section.
(read): New section.
(true): New section.
2011-03-30 03:49:22 +01:00
Colin Watson a752763906 * docs/grub.texi (Changes from GRUB Legacy): Minor proofreading. 2011-03-30 03:26:11 +01:00
Colin Watson 8a748df2fd credit 2011-03-30 03:22:37 +01:00
Colin Watson e30af0297d * docs/grub.texi (Simple configuration): Explain some of the
current limitations of grub-mkconfig.
2011-03-30 03:20:09 +01:00
Vladimir 'phcoder' Serbinenko fc8584825c Old macs search for boot.efi rather than for bootia32.efi.
* util/grub-install.in: Copy bootia32.efi to boot.efi.
	* util/grub-mkrescue.in: Likewise.
	Suggested by: Peter Jones.
2011-03-30 00:05:25 +02:00
Vladimir 'phcoder' Serbinenko e1eb511d9a * util/grub.d/20_linux_xen.in: Accept old-style xen kernels. 2011-03-29 21:12:13 +02:00
Vladimir 'phcoder' Serbinenko 70e75364fa * include/grub/lvm.h (grub_lvm_lv): New field 'visible'.
(grub_lvm_segment): New fields 'type', 'mirror_count' and 'mirrors'.
	(grub_lvm_mirror): New struct.
	* grub-core/disk/lvm.c (grub_lvm_checkvalue): Commented out.
	(grub_lvm_iterate): Iterate only visible volumes.
	(grub_lvm_read): Factor out to ..
	(read_lv): ... this. Support mirrors.
	(grub_lvm_read): New wrapper function.
	(grub_lvm_scan_device): Parse mirrors. Skip everything that isn't
	stripped or mirrored.
2011-03-29 20:33:32 +02:00
Vladimir 'phcoder' Serbinenko fc18f6a3cb * util/grub.d/10_linux.in: Skip vmlinux-* on x86 platforms. 2011-03-29 19:47:34 +02:00
Colin Watson 5c650f4c8e * docs/grub.texi (loopback): New section. 2011-03-29 18:08:23 +01:00
Colin Watson 61d7156b94 * grub-core/disk/loopback.c (GRUB_MOD_INIT): Stop documenting
removed -p option.
2011-03-29 18:00:23 +01:00
Colin Watson 994b826432 * docs/grub.texi (BIOS installation): New section, partly based on
previous text in other sections.
(Installing GRUB using grub-install): Replace BIOS discussion with a
cross-reference.
(Images): Likewise.
2011-03-29 14:32:38 +01:00
Vladimir 'phcoder' Serbinenko 9e4d19e0d3 * grub-core/kern/emu/hostdisk.c (find_partition_start)
[HAVE_DIOCGDINFO]: Add safety checks.
2011-03-29 15:00:23 +02:00
Vladimir 'phcoder' Serbinenko a307c0b206 * util/grub.d/10_kfreebsd.in: Allow ufs.ko to be missing as it's
per default compiled in kernel and prior to 8.0 isn't shipped at all.
2011-03-29 12:01:48 +02:00
Colin Watson b4db4f39f0 * grub-core/disk/mdraid1x_linux.c (grub_mdraid_detect): If
real_sb->size is zero (e.g. RAID-0), get the disk size from
real_sb->data_size instead.
Fixes Ubuntu bug #743136.
2011-03-29 10:51:58 +01:00
Vladimir 'phcoder' Serbinenko 35e5f84c18 * grub-core/normal/misc.c (grub_normal_print_device_info): Use correct
printf clauses for printing size and start.
2011-03-29 11:25:04 +02:00
Vladimir 'phcoder' Serbinenko d2e29d81a9 * grub-core/fs/ext2.c (grub_ext2_read_inode): Fix an overflow.
Reported and tested by: Timothy Nikkel.
2011-03-29 10:56:14 +02:00
Vladimir 'phcoder' Serbinenko ed5587afea * grub-core/term/gfxterm.c (dirty_region_add): Move core part to ...
(dirty_region_add_real): ... this.
	(dirty_region_add): Don't discard margin refresh when performing
	scheduled repaint.
2011-03-29 08:33:28 +02:00
Vladimir 'phcoder' Serbinenko a1dc717c58 * grub-core/lib/relocator.c (allocate_regstart)
[!DEBUG_RELOCATOR_NOMEM_DPRINTF]: Avoid grub_dprintf since not all
	terminals are capabple of malloc-free operation.
	(allocate_inreg) [!DEBUG_RELOCATOR_NOMEM_DPRINTF]: Likewise.
	(malloc_in_range) [!DEBUG_RELOCATOR_NOMEM_DPRINTF]: Likewise.
2011-03-29 08:20:19 +02:00
Vladimir 'phcoder' Serbinenko 9f3677d3c1 * util/grub-setup.c: Copy the partition table zone if floppy support
is disabled, even if no partition table is found.

        Otherwise, the BIOS on Dell Latitude E series laptops will freeze
        during POST if an invalid partition table is contained in the PBR
        of the active partition when GRUB is installed to a partition.
2011-03-29 02:20:52 +02:00
Colin Watson 2414872538 * grub-core/disk/mdraid1x_linux.c (grub_mdraid_detect): Remove stale
comment.
2011-03-28 15:17:22 +01:00
Colin Watson f329eda79e * grub-core/disk/raid.c (grub_raid_register): Adjust debug message
to be specific about what kind of RAID device we're scanning for.
2011-03-28 13:23:54 +01:00
Seth Goldberg c482ad98b3 * grub-core/kern/emu/getroot.c (find_root_device_from_libzfs): Don't return freed string. 2011-03-26 23:22:59 +01:00
Vladimir 'phcoder' Serbinenko 5ee04984d1 * grub-core/fs/iso9660.c (grub_iso9660_label): Rtrim the label. 2011-03-26 14:14:59 +01:00
Vladimir 'phcoder' Serbinenko f4727da93f Use libgeom on FreeBSD to detect partitions.
* Makefile.util.def (grub-mkimage): Add LIBGEOM to ldadd.
	(grub-mkrelpath): Likewise.
	(grub-script-check): Likewise.
	(grub-editenv): Likewise.
	(grub-mkpasswd-pbkdf2): Likewise.
	(grub-fstest): Likewise.
	(grub-mkfont): Likewise.
	(grub-mkdevicemap): Likewise.
	(grub-probe): Likewise.
	(grub-setup): Likewise.
	(grub-ofpathname): Likewise.
	(grub-mklayout): Likewise.
	(example_unit_test): Likewise.
	(grub-menulst2cfg): Likewise.
	* grub-core/Makefile.core.def (grub-emu): Likewise.
	(grub-emu-lite): Likewise.
	* configure.ac: Check for -lgeom on FreeBSD and set LIBGEOM.
	* grub-core/kern/emu/hostdisk.c [FreeBSD]: Include libgeom.h. Don't
	define HAVE_DIOCGDINFO.
	(follow_geom_up) [FreeBSD]: New function.
	(find_partition_start) [FreeBSD]: Rewritten using follow_geom_up.
	(convert_system_partition_to_system_disk) [FreeBSD]: Likewise.
	(grub_util_biosdisk_get_grub_dev) [FreeBSD]: Use FreeBSD path
	unconditionally of HAVE_DIOCGDINFO.
2011-03-26 12:59:02 +01:00
Vladimir 'phcoder' Serbinenko 82fe6c751b Fix FreeBSD compilation problem.
* grub-core/kern/emu/hostdisk.c (MAJOR) [FreeBSD]: New definition.
	(FLOPPY_MAJOR) [FreeBSD]: Likewise.
2011-03-26 12:49:34 +01:00
Colin Watson 4c6c9431d2 * grub-core/video/fb/video_fb.c (grub_video_fb_get_info_and_fini):
Switch back to page zero before loading a kernel, since some kernel
drivers expect that.
Thanks to: Felix Kuehling.
2011-03-25 00:03:54 +00:00
Vladimir 'phcoder' Serbinenko c7064d9425 * grub-core/lib/relocator.c (grub_relocator_alloc_chunk_addr)
[DEBUG_RELOCATOR]: Reuse grub_mm_check.
	(grub_relocator_alloc_chunk_align) [DEBUG_RELOCATOR]: Likewise.
2011-03-24 12:45:51 +01:00
Vladimir 'phcoder' Serbinenko 3f71cded81 * include/grub/mm.h (GRUB_MM_CHECK): Rename to ...
(grub_mm_check): ... this. MAke a function-like macro and use GRUB_FILE.
2011-03-24 12:43:28 +01:00