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.