docs: add installation.md 85/1285/1
authorJackie Huang <jackie.huang@windriver.com>
Tue, 29 Oct 2019 07:25:57 +0000 (15:25 +0800)
committerJackie Huang <jackie.huang@windriver.com>
Thu, 31 Oct 2019 07:17:03 +0000 (15:17 +0800)
Issue-ID: INF-4
Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
Change-Id: I25ab5dcf025178f915fa4461024d4f425288ac2f

docs/installation.md [new file with mode: 0644]

diff --git a/docs/installation.md b/docs/installation.md
new file mode 100644 (file)
index 0000000..d7e1958
--- /dev/null
@@ -0,0 +1,58 @@
+#  O-RAN INF image installation and configuration for better real time performance
+
+## 1. O-RAN INF image installation
+
+* Please see the README.md file for how to build the image.
+* The Image is a live ISO image with CLI installer: oran-image-inf-host-intel-x86-64.iso
+
+#### 1.1 Burn the image to the USB device
+
+* Assume the the usb device is /dev/sdX here
+
+```
+ $ sudo dd if=/path/to/oran-image-inf-host-intel-x86-64.iso of=/dev/sdX bs=1M
+```
+
+#### 1.2 Insert the USB device in the target to be booted.
+
+#### 1.3 Reboot the target from the USB device.
+
+#### 1.4 Select "Graphics console install" or "Serial console install" and press ENTER
+
+#### 1.5 Select the hard disk and press ENTER
+
+> Notes: In the CLI installer, you can only select which hard disk to install, the whole disk will be used and partitioned automatically.
+
+* e.g. insert "sda" and press ENTER
+
+#### 1.6 Remove the USB device and press ENTER to reboot
+
+## 2. Configuration for better real time performance
+
+> Some of the tuning options are machine specific or depend on use cases,
+> like the hugepages, isolcpus, rcu_nocbs, kthread_cpus, irqaffinity, nohz_full and
+> so on, please do not just copy and past.
+
+* Edit the grub.cfg with the following example tuning options
+
+```bash
+# Notes: the grub.cfg file path is different for legacy and UEFI mode
+#   For legacy mode: /boot/grub/grub.cfg
+#   For UEFI mode: /boot/EFI/BOOT/grub.cfg
+
+grub_cfg="/boot/grub/grub.cfg"
+#grub_cfg="/boot/EFI/BOOT/grub.cfg"
+
+# In this example, 1-16 cores are isolated for real time processes
+root@intel-x86-64:~# rt_tuning="crashkernel=auto biosdevname=0 iommu=pt usbcore.autosuspend=-1 nmi_watchdog=0 softlockup_panic=0 intel_iommu=on cgroup_enable=memory skew_tick=1 hugepagesz=1G hugepages=4 default_hugepagesz=1G isolcpus=1-16 rcu_nocbs=1-16 kthread_cpus=0 irqaffinity=0 nohz=on nohz_full=1-16 intel_idle.max_cstate=0 processor.max_cstate=1 intel_pstate=disable nosoftlockup idle=poll mce=ignore_ce"
+
+# optional to add the console setting
+root@intel-x86-64:~# console="console=ttyS0,115200"
+
+root@intel-x86-64:~# sed -i "/linux / s/$/ $console $rt_tuning/" $grub_cfg
+```
+* Reboot the target
+
+```bash
+root@intel-x86-64:~# reboot
+```