Getting Started with Enea NFV AccessEnea NFV Access Run Time Platform InstallerThe current release supports two methods of installation:Manual installation from a USB stick using the Enea NFV Access Web-installer,
which guarantees a clean installation of NFV Access on a uCPE device.Mass installation and automated deployment using
Bare Metal Provisioning.For more information about Bare Metal Provisioning please refer
to 5.3, Bare Metal Provisioning".PrerequisitesTo install the Enea NFV Access Run Time Platform, 3 things are
required: a USB stick (16GB or larger), a development machine with root
permissions (Linux or Windows) and a uCPE device.Minimal requirements for the uCPE device:EFI and virtualization support.2 cores4GB RAMStorage Device (SSD recommended).BIOS settings that need to be enabled:EFIIntel Virtualization Technology (VT-x)Intel Virtualization Technology for Directed I/O (VT-d)SR-IOVInstaller Setup and Usage for a manual installationTo install Enea NFV Access Run Time Platform
on a physical driveGo to the installer location: # cd <path_to_EneaNFV_Access_folder>/<architecture>/
install/nfv-installer/script-installerExecute the installer script: # sudo ./nfv_installer.shOptionally, press ENTER to see the list of available
commands:help - displays a guide on how to use the installer
list-params - lists all available parameters
list-steps - lists the installer steps and the parameters that they depend on
set - sets a parameter (e.g. set drive=/dev/sda)
clear - clears a parameter (e.g. clear drive)
list-partitions - lists current drives and partitions
dry - performs a simulation test run
run - executes the installer, using the values you set for each parameter
q or quit - exits the scriptSet the required parameters depending on what steps you want
to run:When using the installer for the first time, make sure to
set ALL parameters in order to be able to run all steps. See
Example 2
for details.# set <parameter_name>=<parameter_value>drive=</dev/sdaX> - sets the
drive which will be partitioned.grub_binary=<file> - points
to the GRUB executable, which will be
installed where grub_destination is
set.grub_destination=<drive> -
specifies the partition where GRUB will be
installed.rootfs_destination=<drive> -
specifies the partition where the rootfs
will be deployed, used by GRUB to boot
from.rootfs_targz=<rootfs.tar.gz
file> - sets the archive of the Enea NFV Access
rootfs you wish to unpack. The archive will
be unpacked where rootfs_destination is
set. Which type of archive file you unpack depends on whether
you are booting from an SSD/HDD or from a USB drive.Optionally, perform a test run before affecting the actual
layout of the physical media, with the command: dryRun the installer: runExit the script: quitThe Enea NFV Access installer creates a bootable media by
performing three steps. Each of the following 3 steps is executed or not
depending on whether certain parameters are set:Format drive. Creates a 512MB partition to be used by
GRUB, and another for use by the
rootfs. The second partition should occupy the
rest of the physical media, minus the first partition. This step
depends on setting these parameter(s): drive=GRUB install. Installs the grub_binary on
the drive set for grub_destination. A
grub.cfg file is created. This file is
configured by the user, to boot from the
rootfs_destination. This step depends on setting
these parameter(s):grub_destination=
grub_binary=
rootfs_destination=Root Filesystem install. Copies and unpacks the files found in
rootfs_targz to the
rootfs_destination. This step depends on setting
these parameter(s):rootfs_targz=
rootfs_destination=After using the installer and setting up the bootable media,
connect it to the uCPE device and configure the uCPE device to use it as
a primary boot device.Creating a bootable USB stickIn order to install the Enea NFV Access Run Time Platform, you must
first create a bootable USB stick with the image you intend to
install. Follow the example below to proceed.Create a bootable USB stick
imageCopy the HDDIMG image file provided by Enea, onto a
development machine.Connect the USB stick to the development machine and identify
the device name given by the system with
lsblk:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 1 28.7G 0 disk
sdb 8:0 0 111.8G 0 disk
|-sdb1 8:1 0 111.8G 0 partCopy the HDDIMG image onto the USB stick, e.g:
sudo dd if=./enea-nfv-access-<machine>.hddimg \
of=/dev/sdb bs=4M conv=fsyncWhere enea-nfv-access-<machine>.hddimg
is the .hddimg file and sdb is the
assigned USB device name.Installing Enea NFV AccessHow to install the Enea NFV Access Run Time
Platform using a bootable USB stick imagePlug the USB stick into the uCPE device. Connect a laptop directly into one of the ports that will
not later be chosen as a WAN port. No other ports should be connected.Power up the uCPE device and boot the USB stick. Verify that the
USB stick is selected from the BIOS boot menu.Once the USB stick is properly booted, the Web-installer application starts
automatically and can be accessed in a web browser at http://172.16.1.1 (port 80).
On the first page of the Web-installer, the user should fill in:The uCPE Manager IP Address.The Device ID. The unique identifier of the
uCPE device.Customer Tags. They are used for
Zero Touch Provisining (ZTP) and can be left
empty. What can be entered here (as needed), are the tag(s) specified when
creating an offline configuration in the uCPE Manager.On the second page of the Web-installer, the user should fill in:The Layer 3 configuration of WAN Interface(s).
Static or Dynamic IP must be specified.During network configuration, WAN cables will be plugged into the device
in order to identify ports and make them available for configuration. Each
port with a physically connected cable will be automatically set as a WAN port and must be
configured (DHCP is the default setting). The user needs to connect the same quantity of
cables as the number of WAN ports that he wishes to configure. No LAN ports should be
connected nor configured at this time. The configured WAN cables cannot be removed
after being configured.The LAN port used to access the Web-installer from the laptop will not be shown
and cannot be configured.The Management Interface. The interface that
will be used by the uCPE Manager to communicate with the device.When the user has completed the configuration steps in the Web-installer, NFV Access
is installed on the hard drive. The largest drive found on the device will be used for
installation.Booting NFV AccessWhen the installation has finished successfully, the user should remove the USB stick
before confirming the reboot of the device in Web-installer and ensure that BIOS is configured
to boot from the hard drive.When configured with the Web-installer GUI, the uCPE device start-up sequence will
configure the interfaces accordingly and try to register the device in the uCPE manager.
If connectivity is established with the uCPE manager server and a device with a matching
Device ID is found, the configuration is successful, and the connection is established.If NFV Access was installed by Bare Metal Provisioning, the Web-installer will launch at
start-up expecting the user to provide the post-installation configuration. The Web-installer will
be launched on port 80 for post-installation configuration:
http://172.168.1.1.In case of failure, the user should remove all WAN cables, re-attach the laptop, reboot
the device and then access the Web-installer on http://172.16.1.1.
After having established a successful connection with the uCPE Manager, the user will
connect any LAN cable(s) that should be connected to the device.
ExamplesBelow are a few examples of setups that the Enea NFV Access
installer can be used for:Partitioning a drive:set drive=/dev/sda
runPartitioning a drive, installing GRUB, and a Root
Filesystem:set drive=/dev/sda
set grub_destination=/dev/sda1
set grub_binary=/home/user/grub-binary.efi
set rootfs_destination=/dev/sda2
set rootfs_targz=/home/user/rootfs.tar.gz
runDeploying ONLY a root filesystem:set rootfs_destination=/dev/sda2
set rootfs_targz=/home/user/rootfs.tar.gz
runNFV Access Release contentThe NFV Access 1.1 Release contains along with other items,
documentation, pre-built kernels and images, a bootloader and a
SDK.The directories structure is detailed below:-- documentation/
/* NFV Access documentation */
-- xeon-d/
/* artifacts for the host side */
-- deb/
/* deb packages */
-- images/
-- enea-image-virtualization-host
/* precompiled artifacts for the Host release image */
-- various artifacts
-- enea-image-virtualization-host-sdk
/* precompiled artifacts for the Host SDK image.
The SDK image contains userspace tools and kernel
configurations necessary for developing, debugging
and profiling applications and kernel modules */
-- various artifacts
-- sdk
/* NFV Access SDK for the host */
-- enea-glibc-x86_64-enea-image-virtualization-host-sdk /
-corei7-64-toolchain-7.0.sh
/* self-extracting archive installing
cross-compilation toolchain for the host */
-- qemux86-64
/* artifacts for the guest side */
-- deb/
/* deb packages */
-- images/
-- enea-image-virtualization-guest
/* precompiled artifacts for the Guest image */
-- various artifacts
-- sdk
/* NFV Access SDK for the guest */
-- enea-glibc-x86_64-enea-image-virtualization-guest-sdk /
-core2-64-toolchain-7.0.sh
/* self-extracting archive installing cross-compilation
toolchain for the guest (QEMU x86-64) */For each combination of image and uCPE device, the following set of
artifacts is available:-- bzImage
/* kernel image */
-- bzImage-<target>.bin
/* kernel image, same as above */
-- config-<target>.config
/* kernel configuration file */
-- core-image-minimal-initramfs-<target>.cpio.gz
/* cpio archive of the initramfs */
-- core-image-minimal-initramfs-<target>.qemuboot.conf
/* qemu config file for the initramfs image */
-- <image-name>-<target>.ext4
/* EXT4 image of the rootfs */
-- <image-name>-<target>.hddimg
/* msdos filesystem containing syslinux, kernel, initrd and rootfs image */
-- <image-name>-<target>.iso
/* CD .iso image */
-- <image-name>-<target>.qemuboot.conf
/* qemu config file for the image */
-- <image-name>-<target>.tar.gz
/* tar archive of the image */
-- <image-name>-<target>.wic
/* Wic image */
-- microcode.cpio
/* kernel microcode data */
-- modules-<target>.tgz
/* external kernel modules */
-- ovmf.*.qcow2
/* ovmf firmware for uefi support in qemu */
-- rmc.db
/* Central RMC Database */
-- systemd-bootx64.efi
/* systemd-boot EFI file */
-- grub-efi-bootx64.efi
/* GRUB EFI file */How to use the Prebuilt ArtifactsBooting Enea NFV Access using RAMDISKThere may be use cases, especially at first target ramp-up, where
the HDD/SDD has no partitions and you need to prepare the disks for
boot. Booting from ramdisk can help with this task.The prerequisites needed to proceed:Enea NFV Access ext4 rootfs image -
enea-nfv-access-xeon-d.ext4.gzEnea NFV Access kernel image - bzImageBIOS has PXE boot enabledPXE/tftp server configured and connected (ethernet) to
target.Unzip enea-nfv-access-xeon-d.ext4 and copy bzImage and
enea-nfv-access-xeon-d.ext4 images to the tftpserver configured for PXE
boot.Use the following as an example for the PXE configuration
file:default vesamenu.c32
prompt 1
timeout 0
label el_ramfs
menu label ^EneaLinux_RAMfs
kernel bzImage
append root=/dev/ram0 initrd=enea-nfv-access-xeon-d.ext4 /
ramdisk_size=1200000 console=ttyS0,115200 eralyprintk=ttyS0,115200Restart the target. Then enter (F11) in the Boot Menu and select
the Ethernet interface used for PXE boot. From the PXE Boot Menu select
Enea NFV Access_RAMfs. Once the Enea
NFV Access is started you can partition the HDD/SDD and install GRUB as
described in in the following section.Partitioning a new harddisk and installing GRUBThe prerequisites needed:grub (grub-efi-bootx64.efi) - availalble as
a pre-built artifact under
xeon-d/images/enea-nfv-access.e2fsprogs-mke2fs_1.43.4-r0.0_amd64.deb,/dosfstools_4.1-r0.0_amd64.deb - available
under xeon-d/deb.Proceed using the following steps:Boot target with Enea NFV Access from RAMDISKInstall prerequisite packages:> dpkg -i e2fsprogs-mke2fs_1.43.4-r0.0_amd64.deb
> dpkg -i dosfstools_4.1-r0.0_amd64.debPartition the disk:> fdisk /dev/sda
fdisk> g {GPT partition type}
fdisk> n
fdisk> 1
fdisk> {default start part}
fdisk> +512M
fdisk> t
fdisk> 1 {ESP/EFI partition}
fdisk> n
fdisk> 2
fdisk> {default start part}
fdisk> +18G
fdisk> 3
fdisk> {default start part}
fdisk> +20G
...
fdisk> 7
fdisk> {default start part}
fdisk> {default end end part}
fdisk> p {print partion table}
fdisk> w {write to disk}
fdisk> qFormat the partitions:> mkfs.fat -F32 -nEFI /dev/sda1
> mkfs.ext4 -LROOT /dev/sda2
> mkfs.ext4 -LROOT /dev/sda3
> mkfs.ext4 -LROOT /dev/sda4
> mkfs.ext4 -LROOT /dev/sda5
> mkfs.ext4 -LROOT /dev/sda6
> mkfs.ext4 -LROOT /dev/sda7Create a GRUB partition:> mkdir /mnt/boot
> mount /dev/sda1 /mnt/boot
> mkdir -p /mnt/boot/EFI/boot
> cp grub-efi-bootx64.efi /mnt/boot/EFI/boot/bootx64.efi
> vi /mnt/boot/EFI/boot/grub.cfg
default=1
menuentry "Linux Reference Image" {
linux (hd0,gpt2)/boot/bzImage root=/dev/sda2 ip=dhcp
}
menuentry "Linux sda3" {
linux (hd0,gpt3)/boot/bzImage root=/dev/sda3 ip=dhcp
}
menuentry "Linux sda4" {
linux (hd0,gpt4)/boot/bzImage root=/dev/sda4 ip=dhcp
}
menuentry "Linux sda5" {
linux (hd0,gpt5)/boot/bzImage root=/dev/sda5 ip=dhcp
}
menuentry "Linux sda6" {
linux (hd0,gpt6)/boot/bzImage root=/dev/sda6 ip=dhcp
}
menuentry "Linux sda7" {
linux (hd0,gpt7)/boot/bzImage root=/dev/sda7 ip=dhcp
}Installing and booting Enea NFV Access on the harddiskAfter partitioning the harddisk, boot Enea NFV Access from RAMFS
or from a reference image installed on one of the partitions.To install Enea NFV Access image on a partition follow these
steps:Copy your image on target:server> scp ./enea-nfv-access-xeon-d.tar.gz /
root@<target_ip>:/home/root/Extract image onto the desired partition:target> mount /dev/sda3 /mnt/sda
target> tar -pzxf /home/root/enea-nfv-access-xeon-d.tar.gz /
-C /mnt/sdaAlternately, you can do both steps in one command from the
server:server> cat ./enea-nfv-access-xeon-d.tar.gz | /
ssh root@<target_ip> "cd /mnt/sda6; tar -zxf -"RebootFrom the GRUB menu select your partitionIn order to change kernel boot parameters you need to mount the
GRUB partition (i.e. /dev/sda1) and change the
EFI/boot/grub.cfg file.