Getting Started with ENFV Access
NFV Access Release content
The NFV Access 1.0 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 */
-- inteld1521/
/* 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 target, 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 */
Included Documention
Enea NFV Access is provided with the following set of
documents:
Enea NFV Access Guide – A document describing the Enea NFV
Access release content and how to use it, as well as benchmark
results.
Enea NFV Access Open Source Report – A document containing
the open source and license information pertaining to packages
provided with Enea NFV Access 1.0.
Enea NFV Access Test Report – The document that summarizes
the test results for the Enea NFV Access release.
Enea NFV Access Security Report – The document that lists
all security fixes included in the Enea NFV Access 1.0 release.
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-image-virtualization-host-inteld1521.ext4
Enea NFV Access kernel image - bzImage
BIOS has PXE boot enabled
PXE/tftp server configured and connected (ethernet) to
target.
Copy bzImage and enea-image-virtualization-host-inteld1521.ext4.gz
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-image-virtualization-host-inteld1521.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
inteld1521/images/enea-image-virtualization-host.
e2fsprogs-mke2fs_1.43.4-r0.0_amd64.deb,/
dosfstools_4.1-r0.0_amd64.deb - available
under inteld1521/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-image-virtualization-host-inteld1521.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-image-virtualization-host-inteld1521.tar.gz /
-C /mnt/sda
Alternately, you can do both steps in one command from the
server:
server> cat ./enea-image-virtualization-host-inteld1521.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.