12f2f5c67SWarner Losh.\" Copyright (c) 2017 Netflix, Inc 24b844f8dSWarner Losh.\" All rights reserved. 34b844f8dSWarner Losh.\" 44b844f8dSWarner Losh.\" Redistribution and use in source and binary forms, with or without 54b844f8dSWarner Losh.\" modification, are permitted provided that the following conditions 64b844f8dSWarner Losh.\" are met: 74b844f8dSWarner Losh.\" 1. Redistributions of source code must retain the above copyright 84b844f8dSWarner Losh.\" notice, this list of conditions and the following disclaimer. 94b844f8dSWarner Losh.\" 2. Redistributions in binary form must reproduce the above copyright 104b844f8dSWarner Losh.\" notice, this list of conditions and the following disclaimer in the 114b844f8dSWarner Losh.\" documentation and/or other materials provided with the distribution. 124b844f8dSWarner Losh.\" 13b2a7ac48SWarner Losh.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 144b844f8dSWarner Losh.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 154b844f8dSWarner Losh.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 16b2a7ac48SWarner Losh.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 174b844f8dSWarner Losh.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 184b844f8dSWarner Losh.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 194b844f8dSWarner Losh.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 204b844f8dSWarner Losh.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 214b844f8dSWarner Losh.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 224b844f8dSWarner Losh.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 234b844f8dSWarner Losh.\" SUCH DAMAGE. 244b844f8dSWarner Losh.\" 254b844f8dSWarner Losh.\" $FreeBSD$ 264b844f8dSWarner Losh.\" 27*98120473SBenjamin Kaduk.Dd May 21, 2017 284b844f8dSWarner Losh.Dt EFIVAR 8 294b844f8dSWarner Losh.Os 304b844f8dSWarner Losh.Sh NAME 314b844f8dSWarner Losh.Nm efivar 32*98120473SBenjamin Kaduk.Nd UEFI environment variable interaction 334b844f8dSWarner Losh.Sh SYNOPSIS 344b844f8dSWarner Losh.Nm 354b844f8dSWarner Losh.Op Fl abdDHlLNpRtw 364b844f8dSWarner Losh.Op Fl n Ar name 374b844f8dSWarner Losh.Op Fl f Ar file 384b844f8dSWarner Losh.Op Fl -append 394b844f8dSWarner Losh.Op Fl -ascii 404b844f8dSWarner Losh.Op Fl -attributes 414b844f8dSWarner Losh.Op Fl -binary 424b844f8dSWarner Losh.Op Fl -delete 432f2f5c67SWarner Losh.Op Fl -device-path 444b844f8dSWarner Losh.Op Fl -fromfile Ar file 4516445670SWarner Losh.Op Fl -guid 464b844f8dSWarner Losh.Op Fl -hex 474b844f8dSWarner Losh.Op Fl -list-guids 484b844f8dSWarner Losh.Op Fl -list 494b844f8dSWarner Losh.Op Fl -name Ar name 504b844f8dSWarner Losh.Op Fl -no-name 514b844f8dSWarner Losh.Op Fl -print 524b844f8dSWarner Losh.Op Fl -print-decimal 534b844f8dSWarner Losh.Op Fl -raw-guid 544b844f8dSWarner Losh.Op Fl -write 554b844f8dSWarner Losh.Sh DESCRIPTION 564b844f8dSWarner LoshThis program manages 574b844f8dSWarner Losh.Dq Unified Extensible Firmware Interface 584b844f8dSWarner Losh.Pq UEFI 594b844f8dSWarner Loshenvironment variables. 604b844f8dSWarner LoshUEFI variables have three part: A namespace, a name and a value. 61*98120473SBenjamin KadukThe namespace is a GUID that is self assigned by the group defining the 624b844f8dSWarner Loshvariables. 634b844f8dSWarner LoshThe name is a Unicode name for the variable. 644b844f8dSWarner LoshThe value is binary data. 654b844f8dSWarner LoshAll Unicode data is presented to the user as UTF-8. 664b844f8dSWarner Losh.Pp 674b844f8dSWarner LoshThe following options are available: 684b844f8dSWarner Losh.Bl -tag -width 20m 694b844f8dSWarner Losh.It Fl n Ar name Fl -name Ar name 704b844f8dSWarner LoshSpecify the name of the variable to operate on. 714b844f8dSWarner LoshThe 724b844f8dSWarner Losh.Ar name 73*98120473SBenjamin Kadukargument is the GUID of the variable, followed by a dash, followed by the 744b844f8dSWarner LoshUEFI variable name. 754b844f8dSWarner LoshThe GUID may be in numeric format, or may be one of the well known 764b844f8dSWarner Loshsymbolic name (see 774b844f8dSWarner Losh.Fl -list-guids 784b844f8dSWarner Loshfor a complete list). 794b844f8dSWarner Losh.It Fl f Ar file Fl -fromfile Ar file 804b844f8dSWarner LoshWhen writing or appending to a variable, take the data for the 814b844f8dSWarner Loshvariable's value from 824b844f8dSWarner Losh.Ar file 834b844f8dSWarner Loshinstead of from the command line. 844b844f8dSWarner LoshThis flag implies 854b844f8dSWarner Losh.Fl -write 864b844f8dSWarner Loshunless the 874b844f8dSWarner Losh.Fl -append 884b844f8dSWarner Loshflag is given. 89*98120473SBenjamin KadukThis behavior is not well understood and is currently unimplemented. 904b844f8dSWarner Losh.It Fl a Fl -append 914b844f8dSWarner LoshAppend the specified value to the UEFI variable rather than replacing 92*98120473SBenjamin Kadukit. 934b844f8dSWarner Losh.It Fl t Ar attr Fl -attributes Ar attr 94*98120473SBenjamin KadukSpecify, in hexadecimal, the attributes for this 954b844f8dSWarner Loshvariable. 964b844f8dSWarner LoshSee section 7.2 (GetVariable subsection, Related Definitions) of the 974b844f8dSWarner LoshUEFI Specification for hex values to use. 984b844f8dSWarner Losh.It Fl A Fl -ascii 994b844f8dSWarner LoshDisplay the variable data as modified ascii: All printable characters 1004b844f8dSWarner Loshare printed, while unprintable characters are rendered as a two-digit 101*98120473SBenjamin Kadukhexadecimal number preceded by a % character. 1029013a3a0SWarner Losh.It Fl b Fl -binary 1034b844f8dSWarner LoshDisplay the variable data as binary data. 1044b844f8dSWarner LoshUsually will be used with the 1054b844f8dSWarner Losh.Fl N 1064b844f8dSWarner Loshor 1074b844f8dSWarner Losh.Fl -no-name 1084b844f8dSWarner Loshflag. 1094b844f8dSWarner LoshUseful in scripts. 1104b844f8dSWarner Losh.It Fl D Fl -delete 1114b844f8dSWarner LoshDelete the specified variable. 1124b844f8dSWarner LoshMay not be used with either the 1134b844f8dSWarner Losh.Fl -write 1144b844f8dSWarner Loshor the 1154b844f8dSWarner Losh.Fl -append 1164b844f8dSWarner Loshflags. 1174b844f8dSWarner LoshNo 1184b844f8dSWarner Losh.Ar value 1194b844f8dSWarner Loshmay be specified. 1202f2f5c67SWarner Losh.It Fl d Fl -device Fl -device-path 1212f2f5c67SWarner LoshInterpret the variables printed as UEFI device paths and print the 1222f2f5c67SWarner LoshUEFI standard string representation. 12316445670SWarner Losh.It Fl g Fl -guid 12416445670SWarner Loshflag is specified, guids are converted to names if they are known (and 12516445670SWarner Loshshow up in 12616445670SWarner Losh.Fl -list-guids ). 1274b844f8dSWarner Losh.It Fl H Fl -hex 1284b844f8dSWarner LoshList variable data as a hex dump. 1294b844f8dSWarner Losh.It Fl L Fl -list-guids 1304b844f8dSWarner LoshLists the well known GUIDs. 1314b844f8dSWarner LoshThe names listed here may be used in place of the numeric GUID values. 1324b844f8dSWarner LoshThese names will replace the numeric GUID values unless 1334b844f8dSWarner Losh.Fl -raw-guid 1344b844f8dSWarner Loshflag is specified. 1354b844f8dSWarner Losh.It Fl l Fl -list 1364b844f8dSWarner LoshList all the variables. 1374b844f8dSWarner LoshIf the 1384b844f8dSWarner Losh.Fl -print 1394b844f8dSWarner Loshflag is also listed, their values will be displayed. 1404b844f8dSWarner Losh.It Fl N Fl -no-name 1414b844f8dSWarner LoshDo not display the variable name. 1424b844f8dSWarner Losh.It Fl p Fl -print 1434b844f8dSWarner LoshPrint the value of the variable. 1444b844f8dSWarner Losh.It Fl R Fl -raw-guid 1454b844f8dSWarner LoshDo not substitute well known names for GUID numeric values in output. 1464b844f8dSWarner Losh.It Fl w Fl -write 1472f2f5c67SWarner LoshWrite (replace) the variable specified with the value specified from 1482f2f5c67SWarner Loshstandard input. 1492f2f5c67SWarner LoshNo command line option to do this is available since UEFI variables 1502f2f5c67SWarner Loshare binary structures rather than strings. 1512f2f5c67SWarner Losh.Xr echo 1 1522f2f5c67SWarner Losh.Fl n 1532f2f5c67SWarner Loshcan be used to specify simple strings. 1544b844f8dSWarner Losh.It Ar name 1554b844f8dSWarner LoshDisplay the 1564b844f8dSWarner Losh.Ar name 1574b844f8dSWarner Loshenvironment variable. 158*98120473SBenjamin Kaduk.El 1594b844f8dSWarner Losh.Sh COMPATIBILITY 1604b844f8dSWarner LoshThe 1614b844f8dSWarner Losh.Nm 162*98120473SBenjamin Kadukprogram is intended to be compatible (strict superset) with a program 163*98120473SBenjamin Kadukof the same name included in the Red Hat libefivar package, 164*98120473SBenjamin Kadukbut the 1652f2f5c67SWarner Losh.Fl d 1662f2f5c67SWarner Loshand 1672f2f5c67SWarner Losh.Fl -print-decimal 168*98120473SBenjamin Kadukflags are not implemented and never will be. 169*98120473SBenjamin Kaduk.Pp 1702f2f5c67SWarner LoshThe 1712f2f5c67SWarner Losh.Fl d 172*98120473SBenjamin Kadukflag is short for 1732f2f5c67SWarner Losh.Fl -device-path . 1744b844f8dSWarner Losh.Sh SEE ALSO 1754b844f8dSWarner LoshAppendix A of the UEFI specification has the format for GUIDs. 1764b844f8dSWarner LoshAll GUIDs 1774b844f8dSWarner Losh.Dq Globally Unique Identifiers 1784b844f8dSWarner Loshhave the format described in RFC 4122. 1792f2f5c67SWarner Losh.Sh HISTORY 1802f2f5c67SWarner LoshThe 1812f2f5c67SWarner Losh.Nm 1822f2f5c67SWarner Loshutility first appeared in 1832f2f5c67SWarner Losh.Fx 12.0 . 184