Difference between revisions of "Xen installation"

From ERIKA WIKI
Jump to: navigation, search
Line 36: Line 36:
  
 
   $ git clone https://github.com/xen-project/xen.git
 
   $ git clone https://github.com/xen-project/xen.git
 +
  $ cd xen
 
   $ git checkout RELEASE-4.11.0 -b RELEASE-4.11.0
 
   $ git checkout RELEASE-4.11.0 -b RELEASE-4.11.0
  

Revision as of 12:23, 30 November 2018

The section contains the instruction to install Xen hypervisor on platform x86_64 with one of the following operating system:

  • Ubuntu 16.04
  • Ubuntu 18.04.1 LTS

Build Dependencies

Install the following packages:

 # apt update && apt dist-upgrade #update/upgrade the kernel
 # apt install build-essential
 # apt install bcc bin86 gawk bridge-utils iproute2 
 # apt install libcurl4 libcurl4-openssl-dev bzip2 module-init-tools transfig tgif
 # apt install texinfo texlive-latex-base texlive-latex-recommended texlive-fonts-extra texlive-fonts-recommended
 # apt install pciutils-dev mercurial
 # apt install make gcc libc6-dev zlib1g-dev python python-dev python-twisted 
 # apt install libncurses5-dev patch libsdl-dev libjpeg-dev
 # apt install libvncserver-dev
 # apt install iasl libbz2-dev e2fslibs-dev git-core uuid-dev 
 # apt install ocaml ocaml-findlib libx11-dev bison flex xz-utils libyajl-dev
 # apt install gettext libpixman-1-dev libaio-dev markdown pandoc
 # apt install libc6-dev-i386
 # apt install lzma lzma-dev liblzma-dev #for rombios
 # apt install libsystemd-dev 

Retrieve the GRUB version

The Xen installation strictly depends on the installed Grub version: grub-pc or grub-efi. In order to retrieve the grub version, launch the following command:

 $ dpkg --get-selections | grep grub

Xen Installation

Retrieve Xen source

Clone the Xen repository and switch to the chosen version (i.e., RELEASE 4.11):

 $ git clone https://github.com/xen-project/xen.git
 $ cd xen
 $ git checkout RELEASE-4.11.0 -b RELEASE-4.11.0

In the following part of the tutorial, we refer to the Xen repository path as $XENPATH.

Configure

Configure:

 $ $XENPATH/configure --enable-systemd

In case of Xen EFI (as for example in Ubuntu 18.04.01), add the option --enable-targets=x86_64-pep as follows:

 $ $XENPATH/configure --enable-systemd --enable-targets=x86_64-pep

Build and install

Build all components (hypervisor, tools, docs, stubdomains, etc):

 $ cd $XENPATH
 $ make dist

Install (as root):

 # make install

Enable the Xen services Reload dynamic libraries:

 # /sbin/ldconfig

Enable systemd Xen services:

 # systemctl enable xen-qemu-dom0-disk-backend.service
 # systemctl enable xen-init-dom0.service
 # systemctl enable xenconsoled.service
 # systemctl enable xenstored.service
 # systemctl enable xendomains.service

Note that in case of error for enabling xendomains service, remove /etc/init.d/xendomains.

Grub setup

Grub-pc (e.g., Ubuntu 16.04)

Update grub and reboot:

 # udate-grub
 # reboot

Grub-efi (e.g., Ubuntu 18.04.01)

Remove the entry created for Grub-pc (it will no work since the installed grub is UEFI):

 # rm /etc/grub.d/20_linux_xen

Create the Xen UEFI entry as follows:

 # mkdir /boot/efi/EFI/xen
 # cp /usr/lib64/efi/xen.efi /boot/efi/EFI/xen
 # cp /boot/vmlinuz-$VERSION /boot/efi/EFI/xen
 # cp /boot/initrd.img-$VERSION /boot/efi/EFI/xen/

where $VERSION is the chosen version of the Linux kernel and initramdisk that MUST reside in the same directory as xen.efi.

Create the xen.cfg file in /boot/efi/EFI/xen/:

 [global]
 default=ubuntu
 [ubuntu]
 options=console=vga,com1 com1=115200,8n1 iommu=verbose ucode=scan flask=disabled conring_size=2097152  loglvl=all
 kernel=vmlinuz-$VERSION root=UUID=$ROOT_UUID ro quiet vt.handoff=7 console=hvc0
 ramdisk=initrd.img-$VERSION

where $VERSION is the chosen version moved into /boot/efi/EFI/xen and ROOT_UUID is the identifier of the Ubuntu partition (note: command used cat /proc/cmdline).

Create an entry for Grub /etc/grub.d/20_linux_xen_efi:

 menuentry "Ubuntu GNU/Linux, with Xen EFI hypervisor" {
   insmod part_gpt
   insmod search_fs_uuid
   insmod chain
   chainloader (hd0,gpt1)/EFI/XEN/xen.efi
 }
 # chmod +x /etc/grub.d/20_linux_xen_efi

Update grub and reboot:

 # udate-grub
 # reboot

Grub menu fix-up

Note, in case of no Grub menu at start-up, modify the following grub configuration parameter in /etc/default/grub:

 GRUB_TIMEOUT_STYLE=text
 GRUB_TIMEOUT=5