Difference between revisions of "Xen installation"

From ERIKA WIKI
Jump to: navigation, search
(Grub setup)
Line 73: Line 73:
 
<li> UEFI boot manager
 
<li> UEFI boot manager
 
</ol>
 
</ol>
 
In case of Grub menu start at the beginning to choose between 'Ubuntu' and 'Ubuntu with Xen hypervisor' install <code>grub-pc</code>. Note, in case of no Grub menu at start-up, please check the grub configuration parameters. The solution strictly depends on the installed Grub and one of solution could be set the following configuration parameters in <code>/etc/default/grub</code>:
 
  GRUB_TIMEOUT_STYLE=text
 
  GRUB_TIMEOUT=5
 
  
 
<b>[OPTION 1] Grub-pc</b><br>
 
<b>[OPTION 1] Grub-pc</b><br>
Line 82: Line 78:
 
   # udate-grub
 
   # udate-grub
 
   # reboot
 
   # reboot
 +
 +
Note, in case of no Grub menu at start-up, please check the grub configuration parameters. The solution strictly depends on the installed Grub and one of solution could be set the following configuration parameters in <code>/etc/default/grub</code>:
 +
  GRUB_TIMEOUT_STYLE=text
 +
  GRUB_TIMEOUT=5
  
 
<b>[OPTION 2] UEFI boot manager</b><br>
 
<b>[OPTION 2] UEFI boot manager</b><br>

Revision as of 16:35, 7 December 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

The final step to install Xen hypervisor, strictly depends on the chosen boot options:

  1. Using Grub-PC
  2. UEFI boot manager

[OPTION 1] Grub-pc
Update grub and reboot:

 # udate-grub
 # reboot

Note, in case of no Grub menu at start-up, please check the grub configuration parameters. The solution strictly depends on the installed Grub and one of solution could be set the following configuration parameters in /etc/default/grub:

 GRUB_TIMEOUT_STYLE=text
 GRUB_TIMEOUT=5

[OPTION 2] UEFI boot manager
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 the Xen entry in the UEFI boot manager:

 # efibootmgr -w -L Xen -l "\EFI\Xen\xen.efi" -c

Reorder the UEFI boot order so that Xen will be the default choice. More in detail, launch efibootmgr commant to get the current order.

 # efibootmgr
 BootCurrent: 0000
 Timeout: 5 seconds
 BootOrder: 0000,0001,0002
 Boot0000* ubuntu
 Boot0001* Hard Drive
 Boot0002* Xen

In this example, Xen has boot number 0002. So, in order to change the UEFI boot order, launch the following commad:

 # efibootmgr -o 0002,0000,0001

Then, reboot:

 # reboot