Firmware requirements¶
UEFI support¶
Ubuntu boots via UEFI. The requirements specified in the Embedded Base Boot Requirements (EBBR) specification must be fulfilled.
U-Boot¶
In U-Boot the following configuration settings are needed:
CONFIG_EFI_LOADER=y
CONFIG_CMD_EFICONFIG=y
CONFIG_CMD_BOOTEFI_BOOTMGR=y
CONFIG_BOOTMETH_EFI_BOOTMGR=y (or deprecated CONFIG_DISTRO_DEFAULTS=y)
CONFIG_CMD_NVEDIT_EFI=y
CONFIG_EFI_CMD_EFIDEBUG=y
CONFIG_HEXDUMP=y
SMBIOS¶
An SMBIOS table should be present.
EDK II¶
In EDK II the following driver is needed:
MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf
U-Boot¶
The following configuration setting is needed:
CONFIG_GENERATE_SMBIOS_TABLE=y
Network booting¶
During network booting the GRUB binary is discovered via PXE booting. The GRUB configuration file (grub.cfg) will contain HTTP(s) URLs for the Linux kernel and the initial RAM disk.
The following UEFI protocol need to be enabled:
HTTP Protocol
HTTP Utilities Protocol
IPv4 Configuration II Protocol
Simple Network Protocol
EDK II¶
In EDK II the following drivers should be enabled:
Configuration Flag |
Driver |
|---|---|
NETWORK_HTTP_BOOT_ENABLE |
NetworkPkg/DnsDxe/DnsDxe.inf NetworkPkg/HttpDxe/HttpDxe.inf NetworkPkg/HttpUtilitiesDxe/HttpUtilitiesDxe.inf |
NETWORK_IP4_ENABLE |
NetworkPkg/ArpDxe/ArpDxe.inf NetworkPkg/Dhcp4Dxe/Dhcp4Dxe.inf NetworkPkg/Ip4Dxe/Ip4Dxe.inf NetworkPkg/Udp4Dxe/Udp4Dxe.inf NetworkPkg/Mtftp4Dxe/Mtftp4Dxe.inf |
NETWORK_IP6_ENABLE |
NetworkPkg/Dhcp6Dxe/Dhcp6Dxe.inf NetworkPkg/Ip6Dxe/Ip6Dxe.inf NetworkPkg/Udp6Dxe/Udp6Dxe.inf NetworkPkg/Mtftp6Dxe/Mtftp6Dxe.inf |
NETWORK_TLS_ENABLE |
CryptoPkg/Library/OpensslLib/OpensslLib.inf NetworkPkg/TlsDxe/TlsDxe.inf NetworkPkg/TlsAuthConfigDxe/TlsAuthConfigDxe.inf |
NETWORK_PXE_BOOT_ENABLE |
NetworkPkg/UefiPxeBcDxe/UefiPxeBcDxe.inf |
NETWORK_SNP_ENABLE |
NetworkPkg/SnpDxe/SnpDxe.inf |
U-Boot¶
In U-Boot the following configuration settings are needed:
CONFIG_NET_LWIP=y
CONFIG_DNS=y
CONFIG_WGET=y
CONFIG_EFI_IP4_CONFIG2_PROTOCOL=y
CONFIG_EFI_HTTP_PROTOCOL=y
For testing these additional settings are recommended:
CONFIG_CMD_DNS
CONFIG_CMD_WGET