Translate to EnglishÜbersetzen Sie zum Deutsch/GermanΜεταφράστε στα ελληνικά/GreekПереведите к русскому/RussianOversetter til Norsk/NorwegianÖversätta till Svensk/Swedishहिन्दी अनुवाद करने के लिए/Hindi
Tradueix al català/CatalanTulkot uz latviešu/LatvianPreložiť do slovenčiny/SlovakVertaal aan het Nederlands/Dutchترجمة الى العربية/ArabicTraduzca al Español/SpanishTraduisez au Français/French
Traduca ad Italiano/ItalianTraduza ao Português/Portuguese日本語に翻訳しなさい /Japanese한국어에게 번역하십시오/Korean中文翻译/Chinese Simplified中文翻译/Chinese TraditionalПереклад на українську/Ukrainian
������������
XSLT 2.0�XPath 2.0����(���������)��
����������
RHCE�������������Linux����(��RH302) (����)

UEFI

UEFI EFI2090 UEFI 2Tb GPT (GUID ) MBR () GPTUEFI2TBGPT UEFI

UEFIUEFI12Windows 764 12 UEFI UEFI12LinuxDomschefibootmgrUEFI

12efibootmgr/sys/firmware/efiUEFI

# ls -al /sys/firmware/efi/vars
drwxr-xr-x.  2 root root 0 2010-01-22 16:25 Boot0000-8be4df61-93ca-11d2-aa0d-00e098032b8c
drwxr-xr-x.  2 root root 0 2010-01-22 16:25 Boot0001-8be4df61-93ca-11d2-aa0d-00e098032b8c
drwxr-xr-x.  2 root root 0 2010-01-22 16:25 BootCurrent-8be4df61-93ca-11d2-aa0d-00e098032b8c
drwxr-xr-x.  2 root root 0 2010-01-22 23:59 BootOptionSupport-8be4df61-93ca-11d2-aa0d-00e098032b8c
drwxr-xr-x.  2 root root 0 2010-01-22 16:25 BootOrder-8be4df61-93ca-11d2-aa0d-00e098032b8c
drwxr-xr-x.  2 root root 0 2010-01-22 23:59 ConIn-8be4df61-93ca-11d2-aa0d-00e098032b8c
drwxr-xr-x.  2 root root 0 2010-01-22 23:59 ConInDev-8be4df61-93ca-11d2-aa0d-00e098032b8c
drwxr-xr-x.  2 root root 0 2010-01-22 23:59 ConOut-8be4df61-93ca-11d2-aa0d-00e098032b8c
drwxr-xr-x.  2 root root 0 2010-01-22 23:59 ConOutDev-8be4df61-93ca-11d2-aa0d-00e098032b8c
--w-------.  1 root root 0 2010-01-22 23:59 del_var
drwxr-xr-x.  2 root root 0 2010-01-22 23:59 ErrOut-8be4df61-93ca-11d2-aa0d-00e098032b8c
drwxr-xr-x.  2 root root 0 2010-01-22 23:59 ErrOutDev-8be4df61-93ca-11d2-aa0d-00e098032b8c
drwxr-xr-x.  2 root root 0 2010-01-22 23:59 Lang-8be4df61-93ca-11d2-aa0d-00e098032b8c
drwxr-xr-x.  2 root root 0 2010-01-22 23:59 LangCodes-8be4df61-93ca-11d2-aa0d-00e098032b8c
drwxr-xr-x.  2 root root 0 2010-01-22 23:59 MTC-eb704011-1402-11d3-8e77-00a0c969723b
--w-------.  1 root root 0 2010-01-22 23:59 new_var
drwxr-xr-x.  2 root root 0 2010-01-22 23:59 PerfDataMemAddr-59d1c24f-50f1-401a-b101-f33e0daed443
drwxr-xr-x.  2 root root 0 2010-01-22 23:59 PlatformLang-8be4df61-93ca-11d2-aa0d-00e098032b8c
drwxr-xr-x.  2 root root 0 2010-01-22 23:59 PlatformLangCodes-8be4df61-93ca-11d2-aa0d-00e098032b8c
drwxr-xr-x.  2 root root 0 2010-01-22 16:25 Timeout-8be4df61-93ca-11d2-aa0d-00e098032b8c


0000 -8be4df61-93ca-11d2-aa0d-00e098032b8c

# ls -al /sys/firmware/efi/vars/Boot0000-8be4df61-93ca-11d2-aa0d-00e098032b8c]# ls -al
-r--------.  1 root root 4096 2010-01-23 00:02 attributes
-r--------.  1 root root 4096 2010-01-23 00:02 data
-r--------.  1 root root 4096 2010-01-23 00:02 guid
-rw-------.  1 root root 4096 2010-01-22 16:25 raw_var
-r--------.  1 root root 4096 2010-01-23 00:02 size


(8be4df61-93ca-11d2-aa0d-00e098032b8c GUID -)()UEFI UEFIV3.2

Variable NameAttributeDescription
LangCodesBS, RTThe language codes that the firmware supports.(Deprecated)
LangNV, BS, RTThe language code that the system is configured for. (Deprecated)
TimeoutNV, BS, RTThe firmware’s boot managers timeout, in seconds,
before initiating the default boot selection.
PlatformLangCodesBS, RTThe language codes that the firmware supports.
PlatformLangNV, BS, RTThe language code that the system is configured for.
ConInNV, BS, RTThe device path of the default input console.
ConOutNV, BS, RTThe device path of the default output console.
ErrOut NV, BS, RTThe device path of the default error output device.
ConInDevBS, RTThe device path of all possible console input devices.
ConOutDevBS, RTThe device path of all possible console output devices.
ErrOutDevBS, RTThe device path of all possible error output devices.
Boot####NV, BS, RTA boot load option. #### is a printed hex value. No 0x is included in the hex value.
BootOrderNV, BS, RTThe ordered boot option load list.
BootNextNV, BS, RTThe boot option for the next boot only.
BootCurrentBS, RTThe boot option that was selected for the current boot.
BootOptionSupportBS,RT,ROThe types of boot options supported by the boot manager.
Driver####NV, BS, RTA driver load option. #### is a printed hex value.
DriverOrderNV, BS, RTThe ordered driver load option list.
Key####NV, BS, RTDescribes hot key relationship with a Boot#### load option.
HwErrRecSupportNV, BS, RTIdentifies the level of hardware error record persistence support implemented by the platform. This variable is
only modified by firmware and is read-only to the OS.
SetupModeRT (RO)Whether the system is operating in setup mode (1) or not (0). All other values are reserved.
KEKNV, RTThe Key Exchange Key Signature Database.
PKNV, RTThe public Platform Key.
SignatureSupportRT (RO)Array of GUIDs representing the type of signatures supported by the platform firmware.


UEFI

#define EFI_VARIABLE_NON_VOLATILE 0x0000000000000001
#define EFI_VARIABLE_BOOTSERVICE_ACCESS 0x0000000000000002
#define EFI_VARIABLE_RUNTIME_ACCESS 0x0000000000000004


(NV) (BS) (RT)preboot EFI_GLOBAL_VARIABLE GUID 0x8BE4DF61 0x93CA 0x11D2 0xAA 0xOD 000 0XE0 098 003 0x2B 0x8C

uefivars12 efibootmgrIraw_var ConInEFI_DEVICE_PATH_PROTOCOL UEFIConInDev EFIUEFI UEFI(2.3A)2100 A4

uefivars.c

#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>
#include <getopt.h>

#include "list.h"
#include "efi.h"
#include "efichar.h"
#include "unparse_path.h"
#include "efibootmgr.h"

typedef struct _var_entry {
    struct dirent *name;
    uint16_t       num;
    efi_variable_t var_data;
    list_t         list;
} var_entry_t;

static LIST_HEAD(list_head);

void
free_vars(list_t *head)
{
    list_t *pos, *n;
    var_entry_t *boot;

    list_for_each_safe(pos, n, head) {
        boot = list_entry(pos, var_entry_t, list);
        list_del(&(boot->list));
        free(boot);
    }
}

void
read_vars(struct dirent **namelist,
          int num_boot_names,
          list_t *head)
{
    efi_status_t status;
    var_entry_t *entry;
    int i;

    if (!namelist) return;

    for (i=0; i < num_boot_names; i++) {
        if (namelist[i]) {
            entry = malloc(sizeof(var_entry_t));
            if (!entry) return;
            memset(entry, 0, sizeof(var_entry_t));

            status = read_variable(namelist[i]->d_name, &entry->var_data);
            if (status == EFI_SUCCESS) {
                entry->name = namelist[i];
                list_add_tail(&entry->list, head);
            } else  free(entry);
        }
    }
}

void
free_dirents(struct dirent **ptr,
             int num_dirents)
{
    int i;
    if (!ptr) return;
    for (i=0; i < num_dirents; i++) {
        if (ptr[i]) {
            free(ptr[i]);
            ptr[i] = NULL;
        }
    }
    free(ptr);
}

void
usage()
{
    printf("usage: uefivars [-v | --version]\n");
    printf("       uefivars [-u | --unknown]\n");
}

int
main(int argc,
     char **argv)
{
    int c, i, first, unknownvar = 0;
    int option_index = 0;
    int num_all = 0;
    list_t *pos;
    var_entry_t *var;
    char desc[1032];
    char attributes[12];
    struct dirent  **all = NULL;

    static struct option long_options[] = {
        {"help", no_argument, 0, 'h'},
        {"unknown", no_argument, 0, 'u'},
        {"version", no_argument, 0, 'v'},
        {0, 0, 0, 0}
    };

    while ((c = getopt_long(argc, argv, "huv", long_options, &option_index)) != -1) {
        switch (c) {
            case 'h':
                 usage();
                 exit(EXIT_SUCCESS);
             case 'u':
                 unknownvar = 1;
                 break;
             case 'v':
                 fprintf(stdout, "version %s\n", EFIVARS_VERSION);
                 exit(EXIT_SUCCESS);
             default: /* '?' */
                 usage();
                 exit(EXIT_FAILURE);
        }
    }

    set_fs_kernel_calls();

    /* retrieve all entries */
    num_all = read_all_var_names(&all);
    read_vars(all, num_all, &list_head);

    /* loop through each entry and parse */
    list_for_each(pos, &list_head) {
        var = list_entry(pos, var_entry_t, list);
        efichar_to_char(desc, var->var_data.VariableName , sizeof(desc));

        /* parse attributes and build attributes text string */
        memset(attributes,0,12);
        first = 1;
        if (var->var_data.Attributes & EFI_VARIABLE_NON_VOLATILE) {
            if (first) {
               strcpy(attributes, "(");
               first = 0;
            } else strcat(attributes, ",");
            strcat(attributes, "NV");
        }
        if (var->var_data.Attributes & EFI_VARIABLE_BOOTSERVICE_ACCESS) {
            if (first) {
                strcpy(attributes, "(");
                first = 0;
            } else strcat(attributes, ",");
            strcat(attributes, "BS");
        }
        if (var->var_data.Attributes & EFI_VARIABLE_RUNTIME_ACCESS) {
            if (first) {
                strcpy(attributes, "(");
                first = 0;
            } else strcat(attributes, ",");
            strcat(attributes, "RT");
        }
        if (!first) strcat(attributes, ")");

        /* parse boot entries - only handles first 4 at present */
        if (!strcmp(desc, "Boot0000") || !strcmp(desc, "Boot0001") ||
            !strcmp(desc, "Boot0002") || !strcmp(desc, "Boot0003")) { 

            char description[80];
            EFI_LOAD_OPTION *load_option;
            EFI_DEVICE_PATH *path;
            char text_path[1024], *p;
            unsigned long optional_data_len=0;

            load_option = (EFI_LOAD_OPTION *) var->var_data.Data;
            efichar_to_char(description, load_option->description, sizeof(description));
            memset(text_path, 0, sizeof(text_path));
            path = load_option_path(load_option);

            if (var->name)
                 printf("%.8s %s:", var->name->d_name, attributes);
            else printf("Boot%04X %s:", var->num, attributes);
            if (load_option->attributes & LOAD_OPTION_ACTIVE)
                printf("* ");
            else  printf("  ");
            printf("%s", description);

            unparse_path(text_path, path, load_option->file_path_list_length);
            optional_data_len = var->var_data.DataSize - load_option->file_path_list_length -
                                ((char *)path - (char *)load_option);
            if (optional_data_len) {
                 p = text_path;
                 p += strlen(text_path);
                 unparse_raw_text(p, ((uint8_t *)path) + load_option->file_path_list_length, optional_data_len);
            }
            printf("\t%s\n", text_path);
        } else if (!strcmp(desc, "BootCurrent")) {
            uint16_t *n = (uint16_t *)(var->var_data.Data);
            printf("BootCurrent %s: %04X\n", attributes, (unsigned int)*n);
        } else if (!strcmp(desc, "BootNext")) {
            uint16_t *n = (uint16_t *)(var->var_data.Data);
            printf("BootNext %s: %04X\n", attributes, (unsigned int)*n);
        } else if (!strcmp(desc, "BootOptionSupport")) {
            uint16_t *n = (uint16_t *)(var->var_data.Data);
            printf("BootOptionSupport %s: %04X\n", attributes, (unsigned int)*n);
        } else if (!strcmp(desc, "BootOrder")) {
            uint16_t *data = (uint16_t *)&(var->var_data.Data);
            int *datasize = (int *)&(var->var_data.DataSize);
            int len = *datasize/sizeof(uint16_t);
            printf("BootOrder %s: ", attributes);
            for (i = 0; i < len; i++) {
                printf("%04X", data[i]);
                if (i < ( len - 1)) printf(",");
            }
            printf("\n");
        } else if (!strcmp(desc, "ConIn")) {
            printf("ConIn %s:\n", attributes);
            efi_print_device_path(var->var_data.Data);
        } else if (!strcmp(desc, "ConInDev")) {
            printf("ConInDev %s:\n", attributes);
            efi_print_device_path(var->var_data.Data);
        } else if (!strcmp(desc, "ConOut")) {
            printf("ConOut %s:\n", attributes);
            efi_print_device_path(var->var_data.Data);
        } else if (!strcmp(desc, "ConOutDev")) {
            printf("ConOutDev %s:\n", attributes);
            efi_print_device_path(var->var_data.Data);
        } else if (!strcmp(desc, "ErrOut")) {
            printf("ErrOut %s:\n", attributes);
            efi_print_device_path(var->var_data.Data);
        } else if (!strcmp(desc, "ErrOutDev")) {
            printf("ErrOutDev %s:\n", attributes);
            efi_print_device_path(var->var_data.Data);
        } else if (!strcmp(desc, "Lang")) {
            uint8_t *data = (uint8_t *)&(var->var_data.Data);
            printf("Lang %s: ", attributes);
            for (i = 0; i < 3; i++)
                printf("%c", data[i]);
            printf("\n");
        } else if (!strcmp(desc, "LangCodes")) {
            uint8_t *data = (uint8_t *)&(var->var_data.Data);
            printf("LangCodes %s: ", attributes);
            while (1) {
               for (i = 0; i < 3; i++)
                   printf("%c", *data++);
               if (*data < 32) break;
               printf(",");
            }
            printf("\n");
        } else if (!strcmp(desc, "PlatformLang")) {
            uint8_t *data = (uint8_t *)&(var->var_data.Data);
            printf("PlatformLang %s: ", attributes);
            for (i = 0; i < 5; i++)
                printf("%c", data[i]);
            printf("\n");
        } else if (!strcmp(desc, "PlatformLangCodes")) {
            uint8_t *data = (uint8_t *)&(var->var_data.Data);
            printf("PlatformLangCodes %s: ", attributes);
            while (1) {
               for (i = 0; i < 5; i++)
                   printf("%c", *data++);
               if (*data < 32) break;
               if (*data == ';') {
                   printf(",");
                   data++;
               }
            }
            printf("\n");
        } else if (!strcmp(desc, "Timeout")) {
            uint16_t *n = (uint16_t *)(var->var_data.Data);
            printf("Timeout %s: %d secs\n", attributes, (int)*n);
        } else if (unknownvar) {
            printf("%s %s: UNKNOWN\n", desc, attributes);
        }
    }

    free_dirents(all, num_all);
    free_vars(&list_head);
    exit(EXIT_SUCCESS);
}


uefivars6412 USB12(UEFI)- Boot0000 USB

# uefivars
Boot0000 (NV,BS,RT):* EFI USB Device	ACPI(a0841d0,0)PCI(1d,7)USB(2,0)
Boot0001 (NV,BS,RT):* EFI DVD/CDROM	ACPI(a0841d0,0)PCI(1f,2)ATAPI(0,0,0)
BootCurrent (BS,RT): 003D
BootOptionSupport (BS,RT): 0303
BootOrder (NV,BS,RT): 0000,0001
ConIn (NV,BS,RT):
/ACPI(a0841d0,0)/PCI(0,1f)/ACPI(30341d0,0)
/ACPI(a0841d0,0)/PCI(0,1f)/ACPI(50141d0,1)/UART(115200,8,1,1)/Vendor(11d2f9be-0c9a-9000-273f-c14d7f010400)
/USBClass(ffff,ffff,3,1,1)
ConInDev (BS,RT):
/USBClass(ffff,ffff,3,1,1)
/ACPI(a0841d0,0)/PCI(0,1f)/ACPI(50141d0,1)/UART(115200,8,1,1)/Vendor(11d2f9be-0c9a-9000-273f-c14d7f010400)
/ACPI(a0841d0,0)/PCI(0,1f)/ACPI(50141d0,1)/UART(115200,8,1,1)/Vendor(11d3b419-2d9a-9000-273f-c14d7f010400)
/ACPI(a0841d0,0)/PCI(0,1f)/ACPI(50141d0,1)/UART(115200,8,1,1)/Vendor(4c7657e0-878e-9e2f-2808-83437f010400)
/ACPI(a0841d0,0)/PCI(0,1f)/ACPI(50141d0,1)/UART(115200,8,1,1)/Vendor(4acf8bec-73a0-1dd0-e77e-2d887f010400)
/ACPI(a0841d0,0)/PCI(0,1f)/ACPI(30341d0,0)
ConOut (NV,BS,RT):
/ACPI(a0841d0,0)/PCI(0,1)/PCI(0,0)
/ACPI(a0841d0,0)/PCI(0,1f)/ACPI(50141d0,1)/UART(115200,8,1,1)/Vendor(11d2f9be-0c9a-9000-273f-c14d7fff0400)
ConOutDev (BS,RT):
/ACPI(a0841d0,0)/PCI(0,1)/PCI(0,0)
/ACPI(a0841d0,0)/PCI(0,1f)/ACPI(50141d0,1)/UART(115200,8,1,1)/Vendor(11d2f9be-0c9a-9000-273f-c14d7f010400)
/ACPI(a0841d0,0)/PCI(0,1f)/ACPI(50141d0,1)/UART(115200,8,1,1)/Vendor(11d3b419-2d9a-9000-273f-c14d7f010400)
/ACPI(a0841d0,0)/PCI(0,1f)/ACPI(50141d0,1)/UART(115200,8,1,1)/Vendor(4c7657e0-878e-9e2f-2808-83437f010400)
/ACPI(a0841d0,0)/PCI(0,1f)/ACPI(50141d0,1)/UART(115200,8,1,1)/Vendor(4acf8bec-73a0-1dd0-e77e-2d887fff0400)
ErrOut (NV,BS,RT):
/ACPI(a0841d0,0)/PCI(0,1f)/ACPI(50141d0,1)/UART(115200,8,1,1)/Vendor(11d2f9be-0c9a-9000-273f-c14d7fff0400)
ErrOutDev (BS,RT):
/ACPI(a0841d0,0)/PCI(0,1)/PCI(0,0)
/ACPI(a0841d0,0)/PCI(0,1f)/ACPI(50141d0,1)/UART(115200,8,1,1)/Vendor(11d2f9be-0c9a-9000-273f-c14d7f010400)
/ACPI(a0841d0,0)/PCI(0,1f)/ACPI(50141d0,1)/UART(115200,8,1,1)/Vendor(11d3b419-2d9a-9000-273f-c14d7f010400)
/ACPI(a0841d0,0)/PCI(0,1f)/ACPI(50141d0,1)/UART(115200,8,1,1)/Vendor(4c7657e0-878e-9e2f-2808-83437f010400)
/ACPI(a0841d0,0)/PCI(0,1f)/ACPI(50141d0,1)/UART(115200,8,1,1)/Vendor(4acf8bec-73a0-1dd0-e77e-2d887fff0400)
Lang (NV,BS,RT): eng
LangCodes (BS,RT): eng,fra
PlatformLang (NV,BS,RT): en-US
PlatformLangCodes (BS,RT): en-US,fr-FR
Timeout (NV,BS,RT): 3 secs
#
root@ultra uefivars]# ./uefivars
Boot0000 (NV,BS,RT):* EFI USB Device	ACPI(a0841d0,0)PCI(1d,7)USB(2,0)
Boot0001 (NV,BS,RT):* EFI DVD/CDROM	ACPI(a0841d0,0)PCI(1f,2)ATAPI(0,0,0)
BootCurrent (BS,RT): 003D
BootOptionSupport (BS,RT): 0303
BootOrder (NV,BS,RT): 0000,0001
ConIn (NV,BS,RT):
/ACPI(a0841d0,0)/PCI(0,1f)/ACPI(30341d0,0)
/ACPI(a0841d0,0)/PCI(0,1f)/ACPI(50141d0,1)/UART(115200,8,1,1)/Vendor(11d2f9be-0c9a-9000-273f-c14d7f010400)
/USBClass(ffff,ffff,3,1,1)
ConInDev (BS,RT):
/USBClass(ffff,ffff,3,1,1)
/ACPI(a0841d0,0)/PCI(0,1f)/ACPI(50141d0,1)/UART(115200,8,1,1)/Vendor(11d2f9be-0c9a-9000-273f-c14d7f010400)
/ACPI(a0841d0,0)/PCI(0,1f)/ACPI(50141d0,1)/UART(115200,8,1,1)/Vendor(11d3b419-2d9a-9000-273f-c14d7f010400)
/ACPI(a0841d0,0)/PCI(0,1f)/ACPI(50141d0,1)/UART(115200,8,1,1)/Vendor(4c7657e0-878e-9e2f-2808-83437f010400)
/ACPI(a0841d0,0)/PCI(0,1f)/ACPI(50141d0,1)/UART(115200,8,1,1)/Vendor(4acf8bec-73a0-1dd0-e77e-2d887f010400)
/ACPI(a0841d0,0)/PCI(0,1f)/ACPI(30341d0,0)
ConOut (NV,BS,RT):
/ACPI(a0841d0,0)/PCI(0,1)/PCI(0,0)
/ACPI(a0841d0,0)/PCI(0,1f)/ACPI(50141d0,1)/UART(115200,8,1,1)/Vendor(11d2f9be-0c9a-9000-273f-c14d7fff0400)
ConOutDev (BS,RT):
/ACPI(a0841d0,0)/PCI(0,1)/PCI(0,0)
/ACPI(a0841d0,0)/PCI(0,1f)/ACPI(50141d0,1)/UART(115200,8,1,1)/Vendor(11d2f9be-0c9a-9000-273f-c14d7f010400)
/ACPI(a0841d0,0)/PCI(0,1f)/ACPI(50141d0,1)/UART(115200,8,1,1)/Vendor(11d3b419-2d9a-9000-273f-c14d7f010400)
/ACPI(a0841d0,0)/PCI(0,1f)/ACPI(50141d0,1)/UART(115200,8,1,1)/Vendor(4c7657e0-878e-9e2f-2808-83437f010400)
/ACPI(a0841d0,0)/PCI(0,1f)/ACPI(50141d0,1)/UART(115200,8,1,1)/Vendor(4acf8bec-73a0-1dd0-e77e-2d887fff0400)
ErrOut (NV,BS,RT):
/ACPI(a0841d0,0)/PCI(0,1f)/ACPI(50141d0,1)/UART(115200,8,1,1)/Vendor(11d2f9be-0c9a-9000-273f-c14d7fff0400)
ErrOutDev (BS,RT):
/ACPI(a0841d0,0)/PCI(0,1)/PCI(0,0)
/ACPI(a0841d0,0)/PCI(0,1f)/ACPI(50141d0,1)/UART(115200,8,1,1)/Vendor(11d2f9be-0c9a-9000-273f-c14d7f010400)
/ACPI(a0841d0,0)/PCI(0,1f)/ACPI(50141d0,1)/UART(115200,8,1,1)/Vendor(11d3b419-2d9a-9000-273f-c14d7f010400)
/ACPI(a0841d0,0)/PCI(0,1f)/ACPI(50141d0,1)/UART(115200,8,1,1)/Vendor(4c7657e0-878e-9e2f-2808-83437f010400)
/ACPI(a0841d0,0)/PCI(0,1f)/ACPI(50141d0,1)/UART(115200,8,1,1)/Vendor(4acf8bec-73a0-1dd0-e77e-2d887fff0400)
Lang (NV,BS,RT): eng
LangCodes (BS,RT): eng,fra
PlatformLang (NV,BS,RT): en-US
PlatformLangCodes (BS,RT): en-US,fr-FR
Timeout (NV,BS,RT): 3 secs
[root@ultra uefivars]#


uefivars SourceForge 6412 3232 BTWGit Git

GPTUEFIBIOSMBRUEFIuefivars

!

UEFI312