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 */
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.