diff --git a/doc/tutorials/using_ubuntu_as_sos.rst b/doc/tutorials/using_ubuntu_as_sos.rst index 476414c82..3ff43b65e 100644 --- a/doc/tutorials/using_ubuntu_as_sos.rst +++ b/doc/tutorials/using_ubuntu_as_sos.rst @@ -13,11 +13,11 @@ Install Ubuntu (natively) ************************* Ubuntu 16.04.4 LTS was used throughout this document, other versions such as -18.04 may work too. +18.04 works too. * Download Ubuntu 16.04 from the `Ubuntu 16.04.4 LTS (Xenial Xerus) page - `_ and select the `ubuntu-16.04.4-desktop-amd64.iso - `_ image. + `_ and select the `ubuntu-16.04.4-desktop-amd64.iso + `_ image. * Follow Ubuntu's `online instructions `_ to install it on your device. @@ -35,6 +35,34 @@ Ubuntu 16.04.4 LTS was used throughout this document, other versions such as sudo service ssh status sudo service ssh start +Install build tools and dependencies +************************* + +Install development tools for ARCN development: +* On a Ubuntu development system: + +.. note:: + You need to use gcc version 7.3.* or higher else you will run into issue #1396. Follow these instructions to install the gcc-7 package on Ubuntu 16.04: + + .. code-block:: none + + sudo apt install gcc \ + git \ + make \ + gnu-efi \ + libssl-dev \ + libpciaccess-dev \ + uuid-dev \ + libsystemd-dev \ + libevent-dev \ + libxml2-dev \ + libusb-1.0-0-dev \ + python3 \ + python3-pip \ + libblkid-dev \ + e2fslibs-dev \ + sudo pip3 install kconfiglib + Install ACRN ************ @@ -137,11 +165,11 @@ You can download latest Service OS kernel from 1. The latest Service OS kernel from the latest Clear Linux release from this area: https://download.clearlinux.org/releases/current/clear/x86_64/os/Packages. Look for an - ``.rpm`` file named ``linux-pk414-sos--.x86_64.rpm``. + ``.rpm`` file named ``linux-iot-lts2018-sos--.x86_64.rpm``. While we recommend using the "current" (latest) release of Clear Linux, you can download a specific Clear Linux release from an area with that release number, e.g.: - https://download.clearlinux.org/releases/24040/clear/x86_64/os/linux-pk414-sos-4.14.57-69.x86_64.rpm + https://download.clearlinux.org/releases/26440/clear/x86_64/os/Packages/linux-iot-lts2018-sos-4.19.0-22.x86_64.rpm #. Download and extract the latest Service OS kernel(this guide is based on 24040 as the current example) @@ -149,16 +177,17 @@ You can download latest Service OS kernel from mkdir ~/kernel-build cd ~/kernel-build - wget https://download.clearlinux.org/releases/24040/clear/x86_64/os/Packages/linux-pk414-sos-4.14.57-69.x86_64.rpm + wget https://download.clearlinux.org/releases/26440/clear/x86_64/os/Packages/linux-iot-lts2018-sos-4.19.0-22.x86_64.rpm sudo apt-get install rpm2cpio - rpm2cpio linux-pk414-sos-4.14.57-69.x86_64.rpm | cpio -idmv + rpm2cpio linux-iot-lts2018-sos-4.19.0-22.x86_64.rpm | cpio -idmv #. Install the SOS kernel and its drivers (modules) .. code-block:: none - sudo cp -r ~/kernel-build/usr/lib/modules/4.14.57-69.pk414-sos/ /lib/modules/ - sudo cp ~/kernel-build/usr/lib/kernel/org.clearlinux.pk414-sos.4.14.57-69 /boot/acrn/ + sudo cp -r ~/kernel-build/usr/lib/modules/4.19.0-22.iot-lts2018-sos/ /lib/modules/ + mkdir /boot/acrn/ + sudo cp ~/kernel-build/usr/lib/kernel/org.clearlinux.iot-lts2018-sos.4.19.0-22 /boot/acrn/ #. Configure Grub to load the Service OS kernel @@ -173,7 +202,7 @@ You can download latest Service OS kernel from insmod gzio insmod part_gpt insmod ext2 - linux /EFI/org.clearlinux/kernel-org.clearlinux.pk414-sos.4.14.57-69 pci_devices_ignore=(0:18:1) console=tty0 console=ttyS0 i915.nuclear_pageflip=1 root=PARTUUID= rw rootwait ignore_loglevel no_timer_check consoleblank=0 i915.tsd_init=7 i915.tsd_delay=2000 i915.avail_planes_per_pipe=0x01010F i915.domain_plane_owners=0x011111110000 i915.enable_guc_loading=0 i915.enable_guc_submission=0 i915.enable_preemption=1 i915.context_priority_mode=2 i915.enable_gvt=1 i915.enable_initial_modeset=1 hvlog=2M@0x1FE00000 + linux /boot/acrn/org.clearlinux.iot-lts2018-sos.4.19.0-22 pci_devices_ignore=(0:18:1) console=tty0 console=ttyS0 i915.nuclear_pageflip=1 root=PARTUUID= rw rootwait ignore_loglevel no_timer_check consoleblank=0 i915.tsd_init=7 i915.tsd_delay=2000 i915.avail_planes_per_pipe=0x01010F i915.domain_plane_owners=0x011111110000 i915.enable_guc_loading=0 i915.enable_guc_submission=0 i915.enable_preemption=1 i915.context_priority_mode=2 i915.enable_gvt=1 i915.enable_initial_modeset=1 hvlog=2M@0x1FE00000 } .. note:: @@ -236,23 +265,23 @@ For the User OS, we are using the same `Clear Linux`_ release version as the Ser .. code-block:: none cd ~ - wget https://download.clearlinux.org/releases/24040/clear/clear-24040-kvm.img.xz - unxz clear-24040-kvm.img.xz + wget https://download.clearlinux.org/releases/26440/clear/clear-26440-kvm.img.xz + unxz clear-26440-kvm.img.xz * Download the Production Kernel (PK) kernel .. code-block:: none - wget https://download.clearlinux.org/releases/24040/clear/x86_64/os/Packages/linux-pk414-standard-4.14.57-69.x86_64.rpm - rpm2cpio linux-pk414-standard-4.14.57-69.x86_64.rpm | cpio -idmv + wget https://download.clearlinux.org/releases/26440/clear/x86_64/os/Packages/linux-iot-lts2018-4.19.0-22.x86_64.rpm + rpm2cpio linux-iot-lts2018-4.19.0-22.x86_64.rpm | cpio -idmv * Update the UOS kernel modules .. code-block:: none - sudo losetup -f -P --show /root/clear-24040-kvm.img + sudo losetup -f -P --show /root/clear-26440-kvm.img sudo mount /dev/loop0p3 /mnt - sudo cp -r /root/usr/lib/modules/4.14.57-69.pk414-standard /mnt/lib/modules/ + sudo cp -r /root/usr/lib/modules/4.19.0-22.iot-lts2018/ /mnt/lib/modules/ sudo cp -r /root/usr/lib/kernel /lib/modules/ sudo umount /mnt sync @@ -277,8 +306,8 @@ For the User OS, we are using the same `Clear Linux`_ release version as the Ser .. code-block:: none - -s 3,virtio-blk,/root/clear-24040-kvm.img - -k /lib/modules/kernel/org.clearlinux.pk414-standard.4.14.57-69 + -s 3,virtio-blk,/root/clear-26440-kvm.img + -k /lib/modules/kernel/default-iot-lts2018 Start the User OS (UOS) *********************** @@ -312,12 +341,12 @@ script example shows how to set this up (verified in Ubuntu 14.04 and 16.04 as t # if bridge not existed if [ "$br"x != "acrn-br0"x ]; then - #setup bridge for uos network - brctl addbr acrn-br0 - brctl addif acrn-br0 enp3s0 - ifconfig enp3s0 0 - dhclient acrn-br0 - # add existing tap devices under the bridge + #setup bridge for uos network + brctl addbr acrn-br0 + brctl addif acrn-br0 enp3s0 + ifconfig enp3s0 0 + dhclient acrn-br0 + # add existing tap devices under the bridge for tap in $taps; do ip tuntap add dev acrn_$tap mode tap brctl addif acrn-br0 $tap