How to Install Ubuntu Xenial 16.04 LTS on Power9 Machines

If you want to install Original LTS Ubuntu 16.04 (with initial LTS Kernel 4.4) on Power9, you were / are out of luck. This is because full kernel support for Power9 got in from 4.10 on wards.

But to some jubilation, 16.04.3 LTS got released today (08/03/17) with support for 17.04 Kernel (4.10). So work around to install Ubuntu LTS on Power9 is to use 16.04.03 LTS HWE kernel / initrd instead of ones I indicated in my previous blog post:



Again, Follow the same procedure in previous blog post  BUT with NEW kernel / initrd links.

Enjoy the first LTS port on Power9


How to Install Ubuntu Xenial 16.04 LTS on Power9 Machines

Optimizing CPU Frequency on OpenPOWER distributions

Before we go on to look at optimizing the CPU frequency on Power systems, it is important to know what frequency you are running at. For this make sure you have powerpc-utils package installed.

On Fedora 

dnf install powerpc-utils

On CentOS

yum install powerpc-utils

On Ubuntu:

apt-get install powerpc-utils

Once you install this package, you can run the following command to know the frequency your CPU can run at:

sudo ppc64_cpu  --frequency

STEP 1 of Optimization:

To optimize CPU frequency for OpenPOWER distributions for ppc64le we first need install the kernel module specific to POWER-PC Architecture and then change the governor to “performance” enhancing mode.

On Fedora and some other openPOWER distributions this kernel module is not installed by default. For example: On Barreleye server, because of absence of this module on Fedora 23, Kernel doesn’t have enough info to scale the CPU very well. And hence puts CPU at a defensive “2.0 Ghz” instead of full “3.5 Ghz”.

Here is how you load the kernel module specific to PPC64LE to make sure CPU scales.

sudo modprobe powernv-cpufreq
Next step is to Change the governor to the one that gives you best performance . Here is the list of default governors for different OS and what it can to be changed to for best performance. Please note the performance governor may not necessarily be needed for your workload, but is good to to have for getting best performance out of the system.
OS / Distribution DEFAULT CPU Frequency scaling Governor on PPC BEST CPU governor for  performance on PPC Linux Package needed to set governer Linux command for setting governor to performance
Fedora None (since builds are missing kernel module for frequency scaling) performance cpufrequtils cpufreq-set -g performance
CentOS conservative performance cpufrequtils cpupower frequency-set -g performance
Ubuntu ondemand performance cpufrequtils cpupower frequency-set -g performance


In my specific example, once we load this module on Fedora, and set the governor to “performance” Barreleye  (openPOWER server) starts to run at the full frequency.
Before loading the module:
[root@localhost ~]# sudo ppc64_cpu  –frequency
min:    2.063 GHz (cpu 126)
max:    2.063 GHz (cpu 0)
avg:    2.063 GHz
 After loading the module:
[live@localhost ~]$ sudo ppc64_cpu  –frequency
min:    3.494 GHz (cpu 120)
max:    3.494 GHz (cpu 7)
avg:    3.494 GHz
Optimizing CPU Frequency on OpenPOWER distributions

How to set OpenPOWER server to boot from any device

OpenPOWER servers have Petitboot bootloader to manage the bootup options / preferences.

Since petitboot is relatively new I am putting together this guide to help walk through on how to set up devices to boot from any device (network or disk).

Step 1. 

Power on the server and wait for Petitboot to come up via the VGA console (or OOB)

Step 2:

Select and click “system configuration” using the key-board arrows and enter key.

Screen Shot 2016-06-09 at 11.14.06 AM

Setup 3:

You will find below menu to customize the boot up options. In order to boot from any device, select and press enter on ” Clear and boot Any” option as below

Screen Shot 2016-06-09 at 11.29.28 AM

Setup 4:

Once you finish step 3, you will see that Boot Order in the first line of the screen short below changes to “(0) Any Device”

Screen Shot 2016-06-09 at 11.29.57 AM

Step 5:

Now let’s save this boot config. For saving the boot order we have to go all the way down to the boot menu with down arrow key and select and press enter on “OK”

Screen Shot 2016-06-09 at 11.30.27 AM

Step 6:

At this point you will be returned to petitboot menu and you have successfully set to boot from any device. From your next power on your server will automatically boot into an image that it finds first.

Power-off, Unrack and rack your server (or hard reboot) to test that “boot from any device” preference is working. When you un-rack and re-rack your server, you will have to wait few minutes (for BMC orange light to go off) before you press the host power on button.

Screen Shot 2016-06-09 at 11.31.40 AM

How to set OpenPOWER server to boot from any device

How to Install Ubuntu Xenial 16.04 on PPC64LE / OpenPOWER

Here’s how to install Ubuntu 16.04 on PPC64LE server. In my case Barreleye, our openPOWER server is running OPAL as BIOS firmware with Petitboot bootloader:

Here are steps through install:

1) Login to Out of band management and get into host console

  • Logging into host OOB console  is important since Ubuntu 16.04 PPC64EL installer doesn’t have  ASPEED VGA / Graphics drivers. So you cannot see the install progress through the VGA console.
  • In your case this might be a ipmi based command to get to host console
  • In my case since we are running a openBMC firmware for our out of band needs :
    • a) SSH into BMC
    • b) Typed the command:       obmc-console-client

2) Power on the server and get to Petitboot bootloader. Which should look like below:

Screen Shot 2016-05-06 at 1.37.12 PM

2) Now type “n” to have add a new boot option.

We are netboot installing 16.04. So let’s grab and add the kernel and initrd url’s for Xenial (16.04 code name) respectively:



Your screen should look like this:

Screen Shot 2016-05-06 at 1.38.58 PM

3) Press OK and you should return to Petitboot main screen. The boot option you just added should come up as “User Item 1”:

Screen Shot 2016-05-06 at 1.39.25 PM

4) Select and enter “User Item 1” for starting the install. Following which you will go through standard Ubuntu Install process, that you should be familiar with.


Thanks I hope this post helps you Install not just Ubuntu 16.04 but any OS of your choice using Petitboot.


How to Install Ubuntu Xenial 16.04 on PPC64LE / OpenPOWER

OS support for Linux on Power (Little Endian)

OpenPOWER movement is gaining pace. Linux community has been overwhelmingly supportive of Little Indian port of Power (PPC64LE).  As a result, most of the leading Linux server distributions have built server images in the past couple of years.

Through this post I want to aggregate the installer links to server install images for PPC64LE. Where available I also listed cloud images used to boot up VM’s / (OpenStack guests).

OS Hypervisor Install image Guest Installer Image
Fedora 23 Refer to Link Link
Fedora 22 Refer to Link Link
Fedora 24 Refer to Link Link
Ubuntu 15.10 Refer to Link Link
Ubuntu 15.04 Refer to Link Link
Ubuntu  14.04 LTS Refer to Link Link
Centos 7.2 Refer to Link NA (But you can use init from RHEL)
OpenSUSE 13.2 Refer to Link Link
Debian 8 Refer to Link NA
PowerKVM 3.1 Refer to Link NA
Ubuntu 16.04 Refer to Link Link
RHEL 7.2 Refer to Link (Needs Login) Link
SLES 12 Refer to Link (Needs Login) Link

Hopefully this table helps the audience who are just getting started on power servers, to finish a quick install.

OS support for Linux on Power (Little Endian)