Linux* UEFI Validation Project
=============================

This is the live image for LUV 2.1, a Linux* distribution
designed for testing ACPI and UEFI firmware implementations. Included in
this image are the following test suites for testing ACPI and UEFI
firmware,

 - BITS-2079
 - Firmware Test Suite V17.06.00
 - CHIPSEC v1.3.1
 - NDCTL v56
 - Linux kernel v4.11 efivarfs selftests

This document also provides instructions on how to boot this image via
network.

If you are new to LUV(Linux* UEFI Validation) and want to know about it,
please visit https://01.org/linux-uefi-validation and explore different
sections in that page. This document can be very useful if you are trying
to flash LUV on to the USB stick for the very first time.

Boot LUV from the network
**************************
This image can be booted using the Preboot eXecution Environment, PXE [1]. As with
any boot via PXE, this requires you to have a DHCP server and a TFTP server.

The firmware in your system will use the DHCP server to obtain a dynamic IP
address as well as the location of the TFTP server in which you have your LUV
netboot image.

The TFTP server
===============
Your test system will your your TFTP server to download the LUV netboot image.
There are many TFTP server implementations. Here we discuss the tftp-hpa server
which is common in many Linux distributions.

You need to create a directory that will be the root directory of your tftp server.
Put your LUV netboot image here. In our example, we use /srv/tftp.

Once you have installed the tftp-hpa server, your system will have a file
/etc/default/tftpd-hpa. Inside this file you will have a the TFTP_DIRECTORY and
TFTP_USERNAME. Please set the value of this variable as the path of the root
directory of your TFTP server. You can leave the TFPT_USER variable unchanged.
Your variables should look like this:

   TFTP_USERNAME="tftp"
   TFTP_DIRECTORY="/srv/tftp"

After these changes, you need to (re)start your server. This vary per Linux
distributions. In Ubuntu, you would do:

   sudo service tftpd-hpa restart

Also, you need to set the ownership of this directory to the tftp user. For this,
as a super user, you need to do

   sudo chown tftp /srv/tftp

Note down the IP address of your TFPT server machine. You will need it for the
next step.

The DHCP server
==============

Before proceeding to install a DHCP server, please make sure that there is not
one already in your network. Otherwise, conflicts will arise. If you already
have a DHCP server, you need to either disable your existing server or reconfigure
it for this purpose. This note includes the modem/access point boxes that most
of the Internet Service Providers give/lease you.

There is a plethora of DHCP server software. Please consult the documentation of
your own server. Most of the access point boxes given by your Internet Service
Provider can be configured to boot systems via PXE. In this guide, we will use
the implementation of the DHCP server provided by the Internet Systems Consortium
that is common in most Linux distributions. Once, installed, you will have a file
/etc/dhcp/dhcpd.conf. The most basic configuration of the server creates a subnet
and will look similar to this:

subnet 192.168.1.0 netmask 255.255.255.0 {
   range 192.168.1.2 192.168.1.255;
   option broadcast-address 192.168.1.255;
   option subnet-mask 255.255.255.0;
   option routers 192.168.1.1;
   allow booting;
   allow bootp;

   # Additions to boot LUV
   filename "luv.efi";
   next-server 192.168.1.1;
}

We have added two lines. The filename field gives the name of the DHCP client
system will look for once the network has been configured. In our case, this is
the file name of the LUV netboot image.

The next-server parameter indicates the IP address of the TFTP server from which
the LUV netboot image will be retrieved. YOu have this parameter from the previous
section.

Once you have these changes, you need to (re)start the server. In Ubuntu, you
would do:

   sudo service isc-dhcp-server restart


Proceed to boot
==============
Once you have configured the necessary network infrastructure, power cycle the test
machine. When booting, you will need to select to boot via PXE. The naming of the
feature may vary. You can enter this menu by hitting the appropriate key (usually it
is F12, F10 or F2). Once you have selected boot via network, you will be presented
with status messages that indicate that the image is being downloaded and after
a few seconds... Congratulations!, you are running LUV on your system :)

More information
================

For further information on the Linux UEFI Validation project, please
visit,

  https://01.org/linux-uefi-validation

The source code for luv can be obtained by visiting,

  https://github.com/01org/luv-yocto

Alternatively, to discuss the development of luv or the results of
running the tests please send e-mail to,

  luv@lists.01.org

[1]. https://en.wikipedia.org/wiki/Preboot_Execution_Environment


Linux® is the registered trademark of Linus Torvalds in the U.S. and other countries.
Ubuntu is a registered trademark of Canonical Ltd.
