Opened 4 years ago
Closed 4 years ago
#4042 closed task (fixed)
grub-2.02
| Reported by: | renodr | Owned by: | lfs-book@… |
|---|---|---|---|
| Priority: | normal | Milestone: | 8.1 |
| Component: | Book | Version: | SVN |
| Severity: | normal | Keywords: | |
| Cc: |
Description (last modified by bdubbs@…)
After five years, a new version.
New in 2.02:
- New/improved filesystem and disk support:
- Big-endian UFS1.
- Experimental 64-bit ext2 support.
- Various fixes for non-512-byte sector devices.
- New `proc' filesystem framework, used by LUKS disks.
- Fix DM-RAID partition handling.
- New `nativedisk' command to switch from firmware to native disk drivers.
- Compressed HFS+.
- DragonFly BSD labels.
- CBFS (coreboot).
- Handle partitioned LVM properly.
- Use LVM UUIDs whenever possible.
- GPT PReP.
- New `progress' module that shows progress information while reading files.
- ZFS features support.
- ZFS LZ4 support.
- XFS V5 format support.
- LVM RAID1 support.
- New/improved terminal and video support:
- Monochrome text (matching `hercules' in GRUB Legacy).
- Morse code output using system speaker.
- `spkmodem' output (simple data protocol using system speaker).
- Handle Japanese special keys.
- coreboot framebuffer.
- Serial on ARC.
- Native vt100 handling for grub-emu, replacing the use of the curses library.
- New gfxmenu options for terminal window positioning, theme background image handling, and scrollbar padding, plus `item_pixmap_style' and `highlight_overlay'.
- Support several more image types (paletted and greyscale).
- Boot protocol improvements:
- Support Apple FAT binaries on non-Apple platforms.
- Improve FreeDOS direct loading support compatibility.
- Enable `linux16' on all x86 platforms, not just BIOS.
- New TrueCrypt ISO loader.
- multiboot2 boot-services EFI specification.
- multiboot2 EFI memory map specification.
- multiboot2 full-file specfication.
- New/improved network support:
- New variables `net_default_*' containing properties of the default interface.
- Autoload http' and tftp' modules if necessary.
- Improve TFTP robustness.
- Parse `nd' disk names in GRUB Legacy configuration files.
- Issue separate DNS queries for IPv4 and IPv6.
- Support IPv6 Router Advertisement to configure default router.
- New variable net_<interface>_next_server containing next server from BOOTP reply.
- Coreboot improvements:
- CBFS support both in on-disk images (loopback) and flash.
- Ability to launch another payload from flash or disk
- Coreboot framebuffer
- CBMEMC support (both logging and inspecting logs)
- Command for inspecting coreboot timestamps (`coreboot_boottime').
- Command for inspecting coreboot tables (`lscoreboot').
- New target default_payload.elf.
- Increased maximal core size.
- Prefer pmtimer for TSC calibration.
- New/improved platform support:
- New efifwsetup' and lsefi' commands on EFI platforms.
- New cmosdump' and cmosset' commands on platforms with CMOS support.
- New command `pcidump' for PCI platforms.
- Improve opcode parsing in ACPI halt implementation.
- Use the TSC as a possible time source on i386-ieee1275.
- Merge PowerPC grub-mkrescue implementation with the common one.
- Support grub-mkrescue on i386-ieee1275, sparc64, bootinfo machines such as pSeries, and mips-arc.
- Make grub-mkrescue better support Apple Intel Macs on CD.
- Enable GRUB Legacy configuration file parsing on EFI.
- Support halt for Loongson 2E.
- ARM U-Boot and EFI ports.
- Reorganise platform-dependent code in utilities to avoid #ifdef mess.
- AROS and Haiku support for userspace utilities.
- Xen PV port.
- Fix EFI stack alignment.
- ARM64 EFI port.
- On Linux, read partition start offsets from sysfs if possible.
- New grub-macbless utility, and better integration with Mac firmware in grub-install.
- Support Yeeloong 3A.
- Add `cpuid --pae' option to detect Physical Address Extension on x86.
- Support for USB debug dongles.
- Support for *-emu on all platforms (previously only i386/x86_64 worked).
- Support *-emu on Windows.
- New platform `none' which builds only user level utilities. This is now default if target CPU is not supported.
- Support for booting little-endian Linux kernel on powerpc.
- Support network boot with Oracle sun4v vnet devices.
- Added SAS disks to the IEEE 1275 Open Firmware device list.
- Try multiple methods for TSC (timestamp counter) calibration - PIT, pmtimer, EFI Stall. If everything fails, use hardcoded frequency 800MHz.
- Support Hyper-V Gen2 platforms which lack PIT for TSC calibration.
- Map UEFI Persistent Memory to E820 persistent memory.
- New Xen loader on ARM64.
- Respect alignment requirement for block device IO buffers on EFI.
- Security:
- Add optional facility to enforce that all files read by the core image from disk have a valid detached digital signature.
- Performance:
- Avoid costly division operations in many places.
- New boot time analysis framework (`./configure --enable-boot-time').
- Initialise USB ports in parallel.
- New `testspeed' command to test file read speed.
- Speed-up gfxterm by storing intermediate results in more compact format.
- Lazy LVM/mdraid scan.
- Disk hints.
- Scripting:
- New eval' and tr' commands.
- grub-script-check fails on scripts containing no commands.
- Installation and other utility improvements:
- Add option to compress files on installation or image creation.
- Using grub-reboot no longer requires setting `GRUB_DEFAULT=saved'.
- Support probing EFI System Partition (requires os-prober >= 1.58).
- Fix inconsistent use of `GRUB_CRYPTODISK_ENABLE' and `GRUB_ENABLE_CRYPTODISK'; the latter is now used consistently.
- grub-mount handles symbolic links to directories.
- Support disabling submenus with `GRUB_DISABLE_SUBMENU' configuration key for grub-mkconfig.
- grub-install, grub-mknetdir, grub-mkrescue, and grub-mkstandalone rewritten in C. They should now work in supported non-Unix-like environments.
- Native mingw support.
- Ability to install on EFI under windows.
- Reorganise timeout handling using new `timeout_style' environment variable and `GRUB_TIMEOUT_STYLE' configuration key for grub-mkconfig. Menu hotkeys pressed during a hidden timeout now boot the corresponding menu entry immediately.
- New `file' command and grub-file utility to check file types.
- New syslinux configuration file parser.
- Set menu entry class to primary OS name returned by os-prober to display OS specific icon.
- On Linux x86 detect EFI word size in grub-install and automatically select correct platform (x86_64-efi or i386-efi) to install. Requires Linux kernel 4.0 or higher.
- Build system:
- Remove all uses of nested functions; GRUB no longer requires an executable stack.
- Fix documentation build with Texinfo >= 5.1.
- More robust and documented cross-compiling support.
- Partial clang support for some platforms (experimental).
- Partial mingw64 x86_64-efi compile support (highly experimental).
- Partial mingw32 i386-* (other than already present i386-pc) compile support (highly experimental).
- Support for grub-mkpasswd on Windows.
- Eliminate the use of AutoGen. This allowed some performance improvements to the build system.
- Remove variable length arrays.
- OpenBSD compile and tools support (NetBSD and FreeBSD were already supported).
- Fix build with FreeType >= 2.5.1.
- Make gentpl.py compatible with Python 3. It now requires at least Python 2.6.
- modinfo.sh contains build information now.
- Added many new tests to improve robustness.
- Target is built without libgcc now. Necessary builtins are reimplemented directly. This removes requirement for target-specific runtime on build system.
- emu libusb support removed (was broken and unmaintained).
- powerpc64le compile support.
- Use fixed timestamp when generating GRUB image for reproducible builds.
- Verify at build time that modules contain only supported relocations and their structure matches what boot-time module loader expects.
- Do not require fonts on powerpc-ieee1275.
- Revision control moved to git.
Change History (5)
comment:1 Changed 4 years ago by bdubbs@…
comment:2 Changed 4 years ago by bdubbs@…
- Milestone changed from 8.0 to 8.1
Did not make if for 8.0. Changing to 8.1.
comment:3 Changed 4 years ago by bdubbs@…
- Summary changed from grub-2.02~rc1 to grub-2.02~rc2
Now at 2.02~rc2
comment:4 Changed 4 years ago by bdubbs@…
- Description modified (diff)
- Summary changed from grub-2.02~rc2 to grub-2.02
Built in basic LFS chroot environment using current instructions:
GRUB2 will be compiled with following components: Platform: i386-pc With devmapper support: No (need libdevmapper header) With memory debugging: No With disk cache statistics: No With boot time statistics: No efiemu runtime: No (explicitly disabled) grub-mkfont: No (need freetype2 library) grub-mount: No (need FUSE library) starfield theme: No (No build-time grub-mkfont) With libzfs support: No (need zfs library) Build-time grub-mkfont: No (need freetype2 library) Without unifont (no build-time grub-mkfont) With liblzma from -llzma (support for XZ-compressed mips images)
Current instructions seem to work, but I have not yet tested grub-install directly, however I did have /boot bind mounted to /mnt/lfs/boot so /boot/grub files (but not grub.cfg) were overwritten.
Man pages are not installed because help2man is not available in chroot.
comment:5 Changed 4 years ago by bdubbs@…
- Resolution set to fixed
- Status changed from new to closed
Fixed at revision 11232.

I'm not sure if we should use this or just wait for the stable 2.02. Currently we use grub-2.02~beta3 and it works fine. That was released a full year ago. I follow the mailing list and I think they want to release this month.
We can slip in a new grub version any time before release of the stable lfs-8.0 since no other package depends on it.
I do not know of anything new that the latest version adds for the typical LFS user. I copied the long list of changes to:
http://anduin.linuxfromscratch.org/~bdubbs/files/grub-2.02~rc1-news
but it does not differentiate changes between grub-2.02~rc1 and grub-2.02~beta3, only changes between 2.00 and 2.02.