~tribaal/ubuntu/+source/grub2:add-partuuid-override

Last commit made on 2016-11-10
Get this branch:
git clone -b add-partuuid-override https://git.launchpad.net/~tribaal/ubuntu/+source/grub2
Only Chris Glass can upload to this branch. If you are Chris Glass please log in for upload directions.

Branch merges

Branch information

Name:
add-partuuid-override
Repository:
lp:~tribaal/ubuntu/+source/grub2

Recent commits

4b82b0f... by Chris Glass

Added knobs to allow non-initrd boot config

Added GRUB_FORCE_PARTUUID and GRUB_DISABLE_INITRD configuration knobs
to allow users to generate grub menu entries that boot directly to
the kernel, without using an initramfs.

fffdd10... by Colin Watson

Drop build-dependency on libxen-dev, unnecessary now that upstream has taken a copy of the necessary public headers.

ce09f79... by Colin Watson

releasing package grub2 version 2.02~beta3-3

eb5a1b1... by Mathieu Trudel-Lapierre

debian/build-efi-images: add loopback and squash4 modules to the signed EFI images.

fa4a9f3... by Mathieu Trudel-Lapierre

debian/postinst.in: call on to update-secureboot-policy on configure to make sure users can disable shim validation if necessary.

3913ab6... by Mathieu Trudel-Lapierre

Update for the new names of the EFI binaries from shim.

e281ed6... by Michael Chang <email address hidden>

efinet: Setting DNS server from UEFI protocol

In the URI device path node, any name rahter than address can be used for
looking up the resources so that DNS service become needed to get answer of the
name's address. Unfortunately the DNS is not defined in any of the device path
nodes so that we use the EFI_IP4_CONFIG2_PROTOCOL and EFI_IP6_CONFIG_PROTOCOL
to obtain it.

These two protcols are defined the sections of UEFI specification.

 27.5 EFI IPv4 Configuration II Protocol
 27.7 EFI IPv6 Configuration Protocol

include/grub/efi/api.h:
Add new structure and protocol UUID of EFI_IP4_CONFIG2_PROTOCOL and
EFI_IP6_CONFIG_PROTOCOL.

grub-core/net/drivers/efi/efinet.c:
Use the EFI_IP4_CONFIG2_PROTOCOL and EFI_IP6_CONFIG_PROTOCOL to obtain the list
of DNS server address for IPv4 and IPv6 respectively. The address of DNS
servers is structured into DHCPACK packet and feed into the same DHCP packet
processing functions to ensure the network interface is setting up the same way
it used to be.

Signed-off-by: Michael Chang <email address hidden>
Signed-off-by: Ken Lin <email address hidden>

Patch-Name: efinet_set_dns_from_uefi_proto.patch

52ec04f... by Michael Chang <email address hidden>

efinet: Setting network from UEFI device path

The PXE Base Code protocol used to obtain cached PXE DHCPACK packet is no
longer provided for HTTP Boot. Instead, we have to get the HTTP boot
information from the device path nodes defined in following UEFI Specification
sections.

 9.3.5.12 IPv4 Device Path
 9.3.5.13 IPv6 Device Path
 9.3.5.23 Uniform Resource Identifiers (URI) Device Path

This patch basically does:

include/grub/efi/api.h:
Add new structure of Uniform Resource Identifiers (URI) Device Path

grub-core/net/drivers/efi/efinet.c:
Check if PXE Base Code is available, if not it will try to obtain the netboot
information from the device path where the image booted from. The DHCPACK
packet is recoverd from the information in device patch and feed into the same
DHCP packet processing functions to ensure the network interface is setting up
the same way it used to be.

Signed-off-by: Michael Chang <email address hidden>
Signed-off-by: Ken Lin <email address hidden>

Patch-Name: efinet_set_network_from_uefi_devpath.patch

cddc94b... by Michael Chang <email address hidden>

bootp: Add processing DHCPACK packet from HTTP Boot

The vendor class identifier with the string "HTTPClient" is used to denote the
packet as responding to HTTP boot request. In DHCP4 config, the filename for
HTTP boot is the URL of the boot file while for PXE boot it is the path to the
boot file. As a consequence, the next-server becomes obseleted because the HTTP
URL already contains the server address for the boot file. For DHCP6 config,
there's no difference definition in existing config as dhcp6.bootfile-url can
be used to specify URL for both HTTP and PXE boot file.

This patch adds processing for "HTTPClient" vendor class identifier in DHCPACK
packet by treating it as HTTP format, not as the PXE format.

Signed-off-by: Michael Chang <email address hidden>
Signed-off-by: Ken Lin <email address hidden>

Patch-Name: bootp_process_dhcpack_http_boot.patch

f9afe88... by Michael Chang <email address hidden>

efinet: UEFI IPv6 PXE support

When grub2 image is booted from UEFI IPv6 PXE, the DHCPv6 Reply packet is
cached in firmware buffer which can be obtained by PXE Base Code protocol. The
network interface can be setup through the parameters in that obtained packet.

Signed-off-by: Michael Chang <email address hidden>
Signed-off-by: Ken Lin <email address hidden>

Patch-Name: efinet_uefi_ipv6_pxe_support.patch