Getting Started with Enea NFV Access
Enea NFV Access Run Time Platform Installer The 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".
Prerequisites To 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 cores 4GB RAM Storage Device (SSD recommended). BIOS settings that need to be enabled: EFI Intel Virtualization Technology (VT-x) Intel Virtualization Technology for Directed I/O (VT-d) SR-IOV
Installer Setup and Usage for a manual installation To install Enea NFV Access Run Time Platform on a physical drive Go to the installer location: # cd <path_to_EneaNFV_Access_folder>/<architecture>/ install/nfv-installer/script-installer Execute the installer script: # sudo ./nfv_installer.sh Optionally, 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 script Set 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: dry Run the installer: run Exit the script: quit The 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 stick In 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 image Copy 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 part Copy the HDDIMG image onto the USB stick, e.g: sudo dd if=./enea-nfv-access-<machine>.hddimg \ of=/dev/sdb bs=4M conv=fsync Where enea-nfv-access-<machine>.hddimg is the .hddimg file and sdb is the assigned USB device name.
Installing Enea NFV Access How to install the Enea NFV Access Run Time Platform using a bootable USB stick image Plug 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 Access When 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.
Examples Below are a few examples of setups that the Enea NFV Access installer can be used for: Partitioning a drive: set drive=/dev/sda run Partitioning 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 run Deploying ONLY a root filesystem: set rootfs_destination=/dev/sda2 set rootfs_targz=/home/user/rootfs.tar.gz run
NFV Access Release content The 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 Artifacts
Booting Enea NFV Access using RAMDISK There 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.gz Enea NFV Access kernel image - bzImage BIOS has PXE boot enabled PXE/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,115200 Restart 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 GRUB The 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 RAMDISK Install prerequisite packages: > dpkg -i e2fsprogs-mke2fs_1.43.4-r0.0_amd64.deb > dpkg -i dosfstools_4.1-r0.0_amd64.deb Partition 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> q Format 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/sda7 Create 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 harddisk After 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/sda Alternately, 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 -" Reboot From the GRUB menu select your partition In 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.