Commit graph

7284 commits

Author SHA1 Message Date
Vladimir 'phcoder' Serbinenko
b1257f6533 Don't accept text modes on EFI when booting Linux.
* grub-core/loader/i386/linux.c (ACCEPTS_PURE_TEXT): New define.
	(grub_linux_boot) [!ACCEPTS_PURE_TEXT]: Restrict to graphics modes.
2011-08-16 16:11:10 +02:00
Mario Limonciello
828bc390d8 * util/grub-probe.c (probe): Canonicalise the path argument, fixing
use of "/path/.." as in grub-install for EFI as well as handling
symlinks correctly.
Fixes Debian bug #637768.
2011-08-15 23:30:11 +01:00
Colin Watson
5f60ccac6f * util/grub-probe.c: Remove duplicate #include. 2011-08-15 23:21:29 +01:00
Szymon Janc
095f077e6d Add support for LZO compression in btrfs.
* Makefile.util.def (libgrubmods.a): Add minilzo.c and add required flags
to cflags in cppflags.
* Makefile.core.def (btrfs): Likewise.
* grub-core/fs/btrfs.c: Include minilzo.h.
(grub_btrfs_superblock): Add sectorsize, nodesize, leafsize, stripsize and
dummy5 field.
(GRUB_BTRFS_COMPRESSION_LZO): New define.
(grub_btrfs_extent_read): Add support for LZO compression type.
2011-08-14 11:46:05 +02:00
Szymon Janc
b6085f3236 * grub-core/fs/btrfs.c: Some code style fixes. 2011-08-14 11:42:53 +02:00
Szymon Janc
b2d7e331e2 Add helper functions for easier unaligned memory access.
* include/grub/types.h (grub_get_unaligned16): New function.
(grub_get_unaligned32): Likewise.
(grub_get_unaligned64): Likewise.
2011-08-14 11:41:19 +02:00
Szymon Janc
1f1a380be9 Import minilzo library for LZO decompression support.
* grub-core/lib/minilzo/lzoconf.h: New file.
* grub-core/lib/minilzo/lzodefs.h: Likewise.
* grub-core/lib/minilzo/minilzo.c: Likewise.
* grub-core/lib/minilzo/minilzo.h: Likewise.
* include/grub/types.h (GRUB_UCHAR_MAX): New define.
(GRUB_USHRT_MAX): Likewise.
(GRUB_UINT_MAX): Likewise.
* grub-core/lib/posix_wrap/limits.h (USHRT_MAX): New define.
(UINT_MAX): Likewise.
(CHAR_BIT): Likewise.
* grub-core/lib/posix_wrap/sys/types.h (ULONG_MAX): Moved to
grub-core/lib/posix_wrap/limits.h
(UCHAR_MAX): Likewise.
2011-08-14 11:39:31 +02:00
Szymon Janc
99cecb4fc7 merge trunk 2011-08-13 15:00:48 +02:00
Robert Millan
6dc212f953 2011-08-10 Robert Millan <rmh@gnu.org>
Detect LSI MegaRAID SAS (`mfi') devices on GNU/kFreeBSD.

        * util/deviceiter.c [__FreeBSD_kernel__] (get_mfi_disk_name): New
        function.
        [__FreeBSD_kernel__] (grub_util_iterate_devices): Scan for mfi    
        (/dev/mfid[0-9]+) devices using get_mfi_disk_name().
2011-08-10 22:24:02 +02:00
Robert Millan
66816d8556 2011-08-03 Robert Millan <rmh@gnu.org>
* include/grub/zfs/zap_leaf.h (typedef union zap_leaf_chunk): Mark
        la_array as packed.
        Reported by: Zachary Bedell
2011-08-03 13:30:46 +02:00
Colin Watson
20168fcafe * configure.ac: The Loongson port requires grub-mkfont due to its
use of -DUSE_ASCII_FAILBACK.  Raise an error if it is not going to
be built.
2011-07-26 16:19:47 +01:00
Colin Watson
303b6246a3 * util/grub-install.in: Don't source grub-mkconfig_lib until after
processing arguments (otherwise help2man fails when GRUB has not yet
been installed).
2011-07-26 11:59:47 +01:00
Vladimir 'phcoder' Serbinenko
41aa28ea2a New script grub-mkstandalone.
* Makefile.util.def (grub-mkstandalone): New script.
	* docs/man/grub-mkstandalone.h2m: New file.
	* util/grub-mkstandalone.in: Likewise.
2011-07-25 08:19:30 +02:00
Vladimir 'phcoder' Serbinenko
6795300e7f Support ATA disks with 4K sectors.
* include/grub/ata.h (grub_ata): New member log_sector_size.
	* grub-core/disk/ata.c (grub_ata_dumpinfo): Show sector size.
	(grub_ata_identify): Read sector size.
	(grub_ata_readwrite): Use log_sector_size rather than hardcoded value.
2011-07-25 08:14:34 +02:00
Vladimir 'phcoder' Serbinenko
9222759765 * util/grub-install.in: Don't use uhci outside of x86. 2011-07-25 08:06:20 +02:00
Vladimir 'phcoder' Serbinenko
c77069f5ae * util/grub-mkrescue.in: Add missing quotes. 2011-07-25 07:57:29 +02:00
Vladimir 'phcoder' Serbinenko
b70e4cb08d * grub-core/normal/menu.c (grub_menu_execute_entry): Fix NULL
dereference.
2011-07-25 07:48:19 +02:00
Vladimir 'phcoder' Serbinenko
583168a216 * grub-core/disk/pata.c (grub_pata_readwrite): Add missing wait. 2011-07-23 18:18:14 +02:00
Vladimir 'phcoder' Serbinenko
6be1c01fd7 * include/grub/video.h: add missing EXPORT_FUND on
grub_video_edid_checksum and grub_video_edid_preferred_mode.
2011-07-23 17:18:31 +02:00
Vladimir 'phcoder' Serbinenko
a116743910 * include/grub/mips/kernel.h: Fix define conflict. 2011-07-23 17:14:38 +02:00
Vladimir 'phcoder' Serbinenko
bf66054fb3 * grub-core/kern/mips/cache_flush.S [GRUB_MACHINE_MIPS_LOONGSON]: Flush
all four ways.
2011-07-23 16:44:40 +02:00
Vladimir 'phcoder' Serbinenko
80e722366d First attempt at http 2011-07-23 03:49:02 +02:00
Vladimir 'phcoder' Serbinenko
440694e3d3 Fix TCP retransmission 2011-07-23 03:48:10 +02:00
Vladimir 'phcoder' Serbinenko
4ebb4c616f Remove useless include in tftp 2011-07-23 03:47:10 +02:00
Colin Watson
8fc4fa45c5 Preferred resolution detection for VBE.
* grub-core/video/video.c (grub_video_edid_checksum): New function.
(grub_video_edid_preferred_mode): Likewise.  Try EDID followed by
the Flat Panel extension, in line with the X.org VESA driver.
* grub-core/video/i386/pc/vbe.c (grub_vbe_bios_get_flat_panel_info):
New function.
(grub_vbe_bios_get_ddc_capabilities): Likewise.
(grub_vbe_bios_read_edid): Likewise.
(grub_vbe_get_preferred_mode): Likewise.
(grub_video_vbe_setup): When the mode is "auto", try to get the
preferred mode from VBE, and use the largest mode that is no larger
than the preferred mode (some BIOSes expose a preferred mode that is
not in their mode list!).  If this fails, fall back to 640x480 as a
safe conservative choice.
(grub_video_vbe_get_edid): New function.
(grub_video_vbe_adapter): Add get_edid.
* include/grub/video.h (struct grub_vbe_edid_info): New structure.
(struct grub_video_adapter): Add get_edid.
(grub_video_edid_checksum): Add prototype.
(grub_video_edid_preferred_mode): Likewise.
* include/grub/i386/pc/vbe.h (struct grub_vbe_flat_panel_info): New
structure.

* grub-core/commands/videoinfo.c (print_edid): New function.
(grub_cmd_videoinfo): Print EDID if available.

* util/grub.d/00_header.in (GRUB_GFXMODE): Default to "auto".  This
is more appropriate on a wider range of platforms than 640x480.
* docs/grub.texi (Simple configuration): Update GRUB_GFXMODE
documentation.
2011-07-21 19:46:44 +01:00
Vladimir 'phcoder' Serbinenko
c410299b05 TCP listening support 2011-07-10 23:37:28 +02:00
Vladimir 'phcoder' Serbinenko
ca5572a9ad * util/grub-install.in: Recognize ESP mounted at /boot/EFI. 2011-07-10 16:06:31 +02:00
Vladimir 'phcoder' Serbinenko
e4bcf6258c * po/POTFILES.in: Regenerate. 2011-07-10 15:56:56 +02:00
Vladimir 'phcoder' Serbinenko
c4edd54832 * grub-core/disk/efi/efidisk.c (grub_efidisk_get_device_name): Fix
incorrect memory usage.
2011-07-10 15:33:57 +02:00
Vladimir 'phcoder' Serbinenko
16a2bab03c * util/grub-install.in: Source grub-mkconfig_lib. 2011-07-10 15:32:43 +02:00
Vladimir 'phcoder' Serbinenko
f4e6e2909b TCP fragmentation 2011-07-10 11:26:34 +02:00
Vladimir 'phcoder' Serbinenko
bfca152e5a Fix a memory leak 2011-07-10 09:53:29 +02:00
Vladimir 'phcoder' Serbinenko
3a2e860334 TCP improvements 2011-07-10 09:52:08 +02:00
Vladimir 'phcoder' Serbinenko
3a7af37260 basic tcp implementation 2011-07-10 08:46:48 +02:00
Vladimir 'phcoder' Serbinenko
92bb3cfc17 Use priority queue to reassemble TFTP packets 2011-07-09 01:28:47 +02:00
Vladimir 'phcoder' Serbinenko
fecdbd6b17 support ip fragmentation 2011-07-09 00:27:27 +02:00
Vladimir 'phcoder' Serbinenko
e2955971a3 move packet allocation to recv code to allow bigger buffers 2011-07-08 20:38:12 +02:00
Vladimir 'phcoder' Serbinenko
6a1af81a97 add mtu information 2011-07-08 18:49:35 +02:00
Vladimir 'phcoder' Serbinenko
5438143da6 improve robustness of IPv4 receiving code 2011-07-08 15:43:34 +02:00
Vladimir 'phcoder' Serbinenko
1367c143dd several cleanups. Ping reply support 2011-07-08 14:41:52 +02:00
Vladimir 'phcoder' Serbinenko
6e706342c3 merge mainline into net 2011-07-08 13:34:37 +02:00
Vladimir 'phcoder' Serbinenko
2e418de646 Remove getroot.c from core on emu platform.
* grub-core/Makefile.core.def (kernel): Remove kern/emu/getroot.c and
	kern/emu/raid.c.
	* grub-core/kern/emu/main.c (main): Don't try to guess root device. It's
	useless.
	* grub-core/kern/emu/misc.c (get_win32_path): Moved from here...
	* util/getroot.c (get_win32_path): ... here.
	* grub-core/kern/emu/misc.c (fini_libzfs): Moved from here...
	* util/getroot.c (fini_libzfs): ... here.
	* grub-core/kern/emu/misc.c (grub_get_libzfs_handle): Moved from here...
	* util/getroot.c (grub_get_libzfs_handle): ... here.
	* grub-core/kern/emu/misc.c (grub_find_zpool_from_dir):
	Moved from here...
	* util/getroot.c (grub_find_zpool_from_dir): ... here.
	* grub-core/kern/emu/misc.c
	(grub_make_system_path_relative_to_its_root): Moved from here...
	* util/getroot.c (grub_make_system_path_relative_to_its_root): ... here.
	* grub-core/kern/emu/getroot.c: Moved from here ...
	* util/getroot.c: ... here. All users updated.
	* grub-core/kern/emu/raid.c: Moved from here ...
	* util/raid.c: ... here. All users updated.
2011-07-08 13:33:12 +02:00
Vladimir 'phcoder' Serbinenko
4db3461696 Priority queue implementation 2011-07-08 04:07:15 +02:00
Vladimir 'phcoder' Serbinenko
def9832af6 * po/POTFILES.in: Regenerate. 2011-07-08 04:06:02 +02:00
Vladimir 'phcoder' Serbinenko
cd8fe79a59 Fix compilation on GNU/Linux.
* grub-core/kern/emu/getroot.c (grub_util_pull_device) [!FreeBSD]:
	Disable geli.
	(grub_util_get_grub_dev) [!FreeBSD]: Likewise.
	(grub_util_pull_device) [HAVE_DEVICE_MAPPER]: Fix const and func name.
	* grub-core/disk/cryptodisk.c (grub_cryptodisk_open): Fix proto.
2011-07-08 03:59:05 +02:00
Vladimir Serbinenko
a251b71915 LUKS and GELI support.
* Makefile.util.def (libgrubkern.a): Add grub-core/lib/crypto.c,
	grub-core/disk/luks.c, grub-core/disk/geli.c,
	grub-core/disk/cryptodisk.c, grub-core/disk/AFSplitter.c,
	grub-core/lib/pbkdf2.c, grub-core/commands/extcmd.c,
	grub-core/lib/arg.c.
	(libgrubmods.a): Remove gcrypts cflags and cppflags.
	Remove grub-core/commands/extcmd.c, grub-core/lib/arg.c,
	grub-core/lib/crypto.c, grub-core/lib/libgcrypt-grub/cipher/sha512.c,
	grub-core/lib/libgcrypt-grub/cipher/crc.c and grub-core/lib/pbkdf2.c.
	(grub-bin2h): Add libgcry.a.
	(grub-mkimage): Likewise.
	(grub-mkrelpath): Likewise.
	(grub-script-check): Likewise.
	(grub-editenv): Likewise.
	(grub-mkpasswd-pbkdf2): Likewise.
	(grub-pe2elf): Likewise.
	(grub-fstest): Likewise.
	(grub-mkfont): Likewise.
	(grub-mkdevicemap): Likewise.
	(grub-probe): Likewise.
	(grub-ofpath): Likewise.
	(grub-mklayout): Likewise.
	(example_unit_test): Likewise.
	(grub-menulst2cfg): Likewise.
	* autogen.sh (UTIL_DEFS): Add Makefile.utilgcry.def.
	* grub-core/Makefile.core.def (cryptodisk): New module.
	(luks): Likewise.
	(geli): Likewise.
	* grub-core/disk/AFSplitter.c: New file.
	* grub-core/disk/cryptodisk.c: Likewise.
	* grub-core/disk/geli.c: Likewise.
	* grub-core/disk/luks.c: Likewise.
	* grub-core/kern/emu/getroot.c (get_dm_uuid): New function based on
	grub_util_is_lvm.
	(grub_util_get_dm_abstraction): New function.
	(grub_util_follow_gpart_up): Likewise.
	(grub_util_get_geom_abstraction): Likewise.
	(grub_util_get_dev_abstraction): Use new functions.
	(grub_util_pull_device): Pull GELI and LUKS.
	(grub_util_get_grub_dev): Handle LUKS and GELI.
	* grub-core/kern/emu/hostdisk.c (grub_util_get_fd_sectors): New function.
	(grub_util_biosdisk_open): Use grub_util_get_fd_sectors.
	(follow_geom_up): Removed.
	(grub_util_fd_seek): New function.
	(open_device): Use grub_util_fd_seek.
	(nread): Rename to ..
	(grub_util_fd_read): ... this. All users updated.
	* grub-core/lib/crypto.c (grub_crypto_ecb_decrypt): A better prototype.
	(grub_crypto_cbc_decrypt): Likewise.
	(grub_crypto_hmac_write): Likewise.
	(grub_crypto_hmac_buffer): Likewise.
	(grub_password_get): Extend to util.
	* include/grub/crypto.h (gcry_cipher_spec) [GRUB_UTIL]:
	New member modname.
	(gcry_md_spec) [GRUB_UTIL]: Likewise.
	* include/grub/cryptodisk.h: New file.
	* include/grub/disk.h (grub_disk_dev_id): Rename LUKS to CRYPTODISK.
	* include/grub/emu/getroot.h (grub_dev_abstraction_types): Add
	LUKS and GELI.
	(grub_util_follow_gpart_up): New proto.
	* include/grub/emu/hostdisk.h (grub_util_fd_seek): Likewise.
	(grub_util_fd_read): Likewise.
	(grub_cryptodisk_cheat_mount): Likewise.
	(grub_util_cryptodisk_print_uuid): Likewise.
	(grub_util_get_fd_sectors): Likewise.
	* util/grub-fstest.c (mount_crypt): New var.
	(fstest): Mount crypto if requested.
	(options): New option -C.
	(argp_parser): Parse -C.
	(main): Init and fini gcry.
	* util/grub-install.in: Support cryptodisk install.
	* util/grub-mkconfig.in: Export GRUB_ENABLE_CRYPTODISK.
	* util/grub-mkconfig_lib.in (is_path_readable_by_grub): Support
	cryptodisk.
	(prepare_grub_to_access_device): Likewise.
	* util/grub-mkpasswd-pbkdf2.c (main): Use grub_password_get.
	* util/grub-probe.c (probe_partmap): Support cryptodisk UUID probe.
	(probe_cryptodisk_uuid): New function.
	(probe_abstraction): Likewise.
	(probe): Use new functions.
	* util/import_gcry.py: Create Makefile.utilgcry.def.
	Add modname member.

	Also-By: Michael Gorven <michael@gorven.za.net>

	Also-By: Clemens Fruhwirth <clemens@endorphin.org>
2011-07-07 23:52:58 +02:00
Vladimir 'phcoder' Serbinenko
9bfdcbbc7d Lazy device scanning.
* Makefile.util.def (libgrubkern.a): Add grub-core/kern/emu/raid.c.
	(grub-setup): Remove util/raid.c.
	* grub-core/Makefile.core.def (kernel): Add kern/emu/raid.c on emu.
	* grub-core/disk/lvm.c (scan_depth): New variable.
	(grub_lvm_iterate): Rescan if necessary.
	(find_lv): New function based on grub_lvm_open.
	(grub_lvm_open): Use find_lv. Rescan on error.
	(is_node_readable): New function.
	(is_lv_readable): Likewise.
	(grub_lvm_scan_device): Skip already found disks.
	(do_lvm_scan): New function. Move grub_lvm_scan_device inside of it.
	Stop if searched device is found and readable.
	* grub-core/disk/raid.c (inscnt): New variable.
	(scan_depth): Likewise.
	(scan_devices): New function based on grub_raid_register. Abort if
	looked for device is found.
	(grub_raid_iterate): Rescan if needed.
	(find_array): NEw function based on -grub_raid_open.
	(grub_raid_open): Use find_array and rescan.
	(insert_array): Set became_readable_at.
	* grub-core/kern/disk.c (grub_disk_dev_iterate): Iterate though "pull.
	* grub-core/kern/emu/getroot.c (grub_util_open_dm) [HAVE_DEVICE_MAPPER]:
	New function.
	(grub_util_is_lvm) [HAVE_DEVICE_MAPPER]: Use grub_util_open_dm.
	(grub_util_pull_device): New function.
	(grub_util_get_grub_dev): Call grub_util_pull_device.
	* util/raid.c: Moved to ..
	* grub-core/kern/emu/raid.c: ... here.
	(grub_util_raid_getmembers): New parameter "bootable".
	All users updated. Support 1.x.
	* include/grub/ata.h (grub_ata_dev): Change iterate prototype.
	All users updated.
	* include/grub/disk.h (grub_disk_pull_t): New enum.
	(grub_disk_dev): Change iterate prototype.
	All users updated.
	* include/grub/emu/getroot.h (grub_util_raid_getmembers) [__linux__]:
	New proto.
	* include/grub/emu/hostdisk.h (grub_util_pull_device): Likewise.
	* include/grub/lvm.h (grub_lvm_lv): New members fullname and compatname.
	* include/grub/raid.h (grub_raid_array): New member became_readable_at.
	* include/grub/scsi.h (grub_scsi_dev): Change iterate prototype.
	All users updated.
	* include/grub/util/raid.h: Removed.
2011-07-07 23:21:59 +02:00
Vladimir 'phcoder' Serbinenko
0044d1db2e Simplify disk opening 2011-07-07 21:46:25 +02:00
Vladimir 'phcoder' Serbinenko
00542307eb merge mainline into lazy 2011-07-07 12:21:53 +02:00
Vladimir 'phcoder' Serbinenko
1c358e5948 * po/POTFILES.in: Regenerate. 2011-07-06 22:15:58 +02:00