Contents

  1. General
    1. When 'ppc64el' images are released after 'amd64' images are released?
    2. What is the difference between the possible operating modes on Power?
      1. What are the operating modes on Power and their differences?
      2. What are the environments in which you might encounter/install Ubuntu and their differences?
    3. What are the new features for each release?
    4. What is the URL to download Ubuntu for Power?
    5. What is the URL to download Ubuntu daily images?
    6. How to build a new kernel?
    7. How to collect logs and data for a bug validation
    8. Mirrors
      1. I want to set up my own mirror
    9. Kdump failure
  2. Installation & Configuration
    1. How to do netboot on PowerVM
    2. How to Report an installation bug effectively?
    3. How to use Ubuntu as a hypervisor?
    4. Apt-get is using IPv6 to download repository information and I don't have it. How do I force IPv4?
    5. Swapfiles by default in 17.04 Zesty Zapus
    6. Btrfs does not support swapfiles
  3. Usage
    1. How to search and get more information about a package in Ubuntu?
    2. What are the build log for packages?
    3. How to discover in which repository (main, universe, multiverse) a package is
    4. How to upgrade a system to the most upgraded state, as from a beta to a GA release. (not migrating between major release as 14.04 -> 14.10)
    5. How to upgrade to a next standard release, as 14.10 to 15.04
    6. How to use VNC on Ubuntu for POWER
    7. How to enable the -proposed repository in ubuntu
    8. I want to move from 14.10 standard release to a point release of 14.04 LTS?
    9. How to upgrade an machine using Ubuntu to most recent version without internet access?
  4. Virtualization
    1. How to install qemu with DDW support from the PPA?
    2. What is the difference between the PowerKVM and using Ubuntu as hypervisor
    3. Can you give me an example of a Ubuntu guest libvirt XML
  5. Kernel
    1. I want to use the most recent kernel on my Ubuntu
    2. I want to install an iso with a custom kernel
      1. Assumptions
      2. Steps
      3. Appendix
    3. I want to Build a Custom ISO, IMG or Netboot Tar Ball with a Custom Kernel
  6. Upgrades
    1. How to upgrade to Ubuntu 16.04.X

General

When 'ppc64el' images are released after 'amd64' images are released?

Ubuntu, by definition, releases all architectures at the same time. So, all supported architecture are released at the same day.

What is the difference between the possible operating modes on Power?

This is really two different questions.

What are the operating modes on Power and their differences?

What are the environments in which you might encounter/install Ubuntu and their differences?

What is actually supported depends on the Ubuntu version and hardware model, see "Hypervisor support per version" here for the former and presumably IBM documentation for the latter) Note that the naming is somewhat vague (PowerKVM guest vs. KVM guest), but that is simply how it is.

What are the new features for each release?

What is the URL to download Ubuntu for Power?

What is the URL to download Ubuntu daily images?

How to build a new kernel?

The majority of users that are interested in building their own kernel are doing so because they have installed Ubuntu on their system and they wish to make a small change to the kernel for that system. In many cases the user just wants to make a kernel configuration change. Building a kernel for ppc64el is exactly the same as for amd64 architecture.

In order to do so, just follow the steps at https://wiki.ubuntu.com/Kernel/BuildYourOwnKernel

How to collect logs and data for a bug validation

Ubuntu has both apport and sosreport way of saving log files. The recommend way is using apport that is more Ubuntu specific and has a integration with Launchpad.

apport-bug reports problems to your distribution's bug tracking system, using Apport to collect a lot of local information about your system to help the developers to fix the problem and avoid unnecessary question/answer turnarounds.

You should always start with running apport-bug without arguments, which will present a list of known symptoms. This will generate the most useful bug reports.

If there is no matching symptom, you need to determine the affected program or package yourself. You can provide a package name or program name to apport-bug, e. g.:

For more information about apport, check the apport webpage.

Apport was the only tool ported to collect POWER specific information, as described in this bug

Mirrors

The main http://ports.ubuntu.com/ubuntu-ports/ is in the UK, there are a few mirrors:

Brazil http://www.las.ic.unicamp.br/pub/ubuntu-ports/

Germany http://ftp.fau.de/ubuntu-ports/

US http://us.ports.ubuntu.com/ubuntu-ports/

I want to set up my own mirror

The most common use case: provide Ubuntu ppc64el packages to a given organization or team.

Below is a list of steps that should help you to get up and running.

Get Ubumirror

There are many ways to accomplish this task, but the recommended one is to use a tool called ubumirror. It's a set of scripts that help to download Ubuntu images, packages and all resources that make up a full Ubuntu mirror.

Setup Rsync

Before you start, you should know that it uses rsync behind the scenes. Therefore, you will need to have rsync installed on the soon-to-be mirror.

Pick the scripts according to your needs

Out of the scripts provided, I only use two scripts: ubuports [1] and ubumirror.conf [2]. Both scripts are written in Bash and are pretty self explanatory. The comments in the scripts will also help you to get a better understanding of what's happening behind the scenes.

Adapt the scripts

The requirements may vary from one user to another, hence you may want to adapt the ubumirror.conf file to your needs. This is where you'll specify the location of the files, which repositories will be mirrored (archives, cdimages, releases, ports or cloud-images), exclude file, exclusion list, emails that will be notified in case of failures and more.

A quick example

My setup is the following: (Disclaimer: for reference only and without any warranty )

  1. ubuports goes inside /usr/bin/ with 775 permissions and is owned by root
     [root@server ~]# ls -lha /usr/bin/ubuports
     -rwxr-xr-x 1 root root 3.6K Oct 30  2014 /usr/bin/ubuports
  2. ubumirror.conf goes inside /etc/ with 644 permissions and is also owned by root
     [root@server ~]# ls -lha /etc/ubumirror.conf
     -rw-r--r-- 1 root root 3.2K Aug 25 13:27 /etc/ubumirror.conf
    1.On the crontab there's an entry to make sure it runs every 6 hours:
     # Ubuntu Ports
     0 */6 * * *   root    /usr/bin/ubuports >/dev/null

After this, when the time comes, cron should invoke the /usr/bin/ubuports script using the configuration file located at /etc/ubumirror.conf., and if it all goes well, you should have a new Ubuntu ppc64el mirror up and running!

P.S.: Feel free to stop by #ubuntu-mirrors on the irc.freenode.net.

[1] https://github.com/nickcharlton/ubumirror/blob/master/ubuports

[2] https://github.com/nickcharlton/ubumirror/blob/master/ubumirror.conf

Kdump failure

If you get a problem with kdump not being ready to kdump, as showed below:

root@boslcp3g4:~# kdump-config show
* no crashkernel= parameter in the kernel cmdline
DUMP_MODE:        kdump
USE_KDUMP:        1
KDUMP_SYSCTL:     kernel.panic_on_oops=1
KDUMP_COREDIR:    /var/crash
crashkernel addr:
  /var/lib/kdump/vmlinuz
kdump initrd:
  /var/lib/kdump/initrd.img
current state:    Not ready to kdump

It might be due to the lack of update of your current initrd, which could be done calling the kdump-tools postinstall script using your kernel version.

/etc/kernel/postinst.d/kdump-tools 4.4.0-122-generic

Installation & Configuration

How to do netboot on PowerVM

In conversations with perspective Linux on POWER clients, we are often asked if POWER supports PXE boot. The short answer is “not exactly”, because a true PXE environment has some x86 architecture specific functions/extensions within it. That said, we do support the same basic functions and underlying protocols as PXE. And now that POWER , beginning with Fedora 17, has moved to grub2 for a bootloader, the appearance and function are quite similar. In other words, it is functionally equivalent to PXE.

For more information, check this tutorial: Netbooting on POWER - An Introduction

How to Report an installation bug effectively?

It's important to add the log in the bug report. To get it you need:

  1. At the error message, choose "Back" button;
  2. Go to the item "Exit to shell"
  3. Get the file /var/log/syslog

How to use Ubuntu as a hypervisor?

Ubuntu is able to be used as a hypervisor, as an alternative to PowerKVM. Just install in bare metal (NV) it following the steps in Running Ubuntu non-virtualized on POWER8 After the installation you need:

  1. Install the missing virtualization packages:

    # sudo apt-get install qemu-user qemu-utils cloud-image-utils qemu-system-ppc qemu-slof libvirt-bin numactl

  2. Add the users that would be able to run virtual machines into the kvm group:

    # sudo usermod -a -G kvm <user>

  3. Disable the SMT:

    # sudo ppc64_cpu --smt=off

  4. Enable KVM module in the kernel (Add a line "kvm_hv" in /etc/modules in order to automatically load it after a reboot):

    # sudo modprobe kvm_hv

  5. [Ubuntu 14.10 only] Assure that you have the /usr/bin/qemu-system-ppc64le file, otherwise, create a link as follow. This is only required in Ubuntu 14.10 and this is already 'fixed' on later releases, check [1]:

    # sudo ln -s qemu-system-ppc64 /usr/bin/qemu-system-ppc64le

  6. [Ubuntu 14.10 only] Allow apparmor to access the SLOF (firmware). This is only required in Ubuntu 14.10 and this is already 'fixed' on later releases, check[2]:

    # echo "/usr/share/slof/** r," >> /etc/apparmor.d/abstractions/libvirt-qemu

  7. If you hit "failed to parse default acl file `/etc/qemu/bridge.conf", you need to edit (or create) file /etc/qemu/bridge.conf and add:

    allow br0

  8. If you hit "failed to create tun device: Operation not permitted", you need to set the setuid attribute:

    # chmod u+s /usr/lib/qemu/qemu-bridge-helper

[1] https://bugs.launchpad.net/ubuntu/+source/virt-manager/+bug/1374558
[2] https://bugs.launchpad.net/ubuntu/+source/libvirt/+bug/1374554

Apt-get is using IPv6 to download repository information and I don't have it. How do I force IPv4?

Just run the following command:

Swapfiles by default in 17.04 Zesty Zapus

A change in swap setup during install for 17.04 has been documented in the following blog.

The key summary from that blog is:

Btrfs does not support swapfiles

Related to the change in 17.04 to use swapfiles: btrfs does not currently support swapfiles

The use of btrfs is not currently recommended for Ubuntu. If you must use btrfs, you will need to either manually configure your partitions to add a swap partition or use an LVM config with a swap volume if swap is required.

Usage

How to search and get more information about a package in Ubuntu?

If you have Ubuntu installed on a machine, you can run the following command to grab the package version and details for the Ubuntu version you are using:

On the other side, you can go to the web and look for the package on the Ubuntu webpage:

What are the build log for packages?

How to discover in which repository (main, universe, multiverse) a package is

Append the package name at https://launchpad.net/ubuntu/+source/, as (https://launchpad.net/ubuntu/+source/nmap for nmap). Look at the Component field.

How to upgrade a system to the most upgraded state, as from a beta to a GA release. (not migrating between major release as 14.04 -> 14.10)

Run the following commands:

How to upgrade to a next standard release, as 14.10 to 15.04

It is quite easy to upgrade from a next standard release. I just upgraded from a 14.10 to 15.04 in less than 20 minutes.

In order to do so, run the following steps:

  1. At first, make sure the file /etc/update-manager/release-upgrades has the following line:

    • Prompt=normal

  2. Now run the following command:
    • $ sudo do-release-upgrade

Answer the expected questions, usually with a y letter and your system will be rebooted with a newer distro.

How to use VNC on Ubuntu for POWER

Ubuntu provides two VNC servers for ppc64el. linuxvnc and x11vnc. linuxvnc is basically a text-only VNC and works as a virtual TTY. On the other side, x11vnc can provide a full desktop environment on you POWER server.

If you want start a full desktop VNC serer, using XFCE window manager, you can use the following steps:

       # sudo apt-get install x11vnc xfce4 xvfb
       # x11vnc -create -forever -bg -env FD_TAG=my_xfce_1 -env FD_SESS=xfce -rfbport 5901

How to enable the -proposed repository in ubuntu

In order to enable the proposed repositories, you can modify the software sources manually by adding the following line to /etc/apt/sources.list:

deb http://archive.ubuntu.com/ubuntu/ trusty-proposed restricted main multiverse universe

If you are using a port arch such as armhf/arm64/ppc64el you need to add the following line instead :

deb http://ports.ubuntu.com/ubuntu-ports trusty-proposed restricted main multiverse universe

Replace "trusty" with "vivid", "utopic", "precise", or "lucid" depending on which release you are on. It is recommended to enable selective upgrading from -proposed as described in the next section!

I want to move from 14.10 standard release to a point release of 14.04 LTS?

As a matter of fact this is really a downgrade since 14.04.X is a update from 14.04 which is prior to 14.10. Currently, there is not an official way to do this and the safer way is to re-install the system with the desired version.

So, the recommendation is to back up your data, and restart a fresh installation from scratch, then, recover the data from your back up.

How to upgrade an machine using Ubuntu to most recent version without internet access?

You are able to upgrade your system to the next level even if you don't have internet access, as for example, upgrading from Beta to GA release, or even, upgrading to the next release version, as 14.04 to 14.04.2.

You must remember that the Ubuntu CD doesn't contain every package in the repository, so, you are only going to upgrade the main package for the distro, other packages will not be upgradable if you have installed them. (In this case, I would recommend doing a archive mirror using ubumirror tool).

In order to execute the procedure, it is quite easy, following these steps:

  1. If you don't have internet, go to your repository source list and remove the internet repositories commenting them, as:

    # deb http://ports.ubuntu.com/ubuntu-ports/ utopic-updates main restricted

  2. Grab the ISO image you want to upgrade to, and move it to the machine you want to upgrade
  3. Mount it at /media/cdrom, using the following command:

    # mount -o loop  <.ISO> /media/cdrom (avoid using another directory other than /media/cdrom otherwise you are going to change apt-get options later)

  4. Add the mounted directory to the reposiorty source list (/etc/apt/source.list) using the following command:

    # apt-cdrom  -d=/media/cdrom/  add -m

  5. Double check that /etc/apt/sources.list has a line like the following:

    deb cdrom:[Ubuntu-Server 14.10 _Utopic Unicorn_ - Release ppc64el (20141022.2)]/ utopic main restricted

  6. Here after, just do the standard procedure to install the system, as updating the repository, using:

    # apt-get update

  7. Then upgrade the packages to the newer version, using:

    # apt-get upgrade


Here are some of the outputs when executing those commands:

Virtualization

How to install qemu with DDW support from the PPA?

Ubuntu 16.10 still does not contain the DDW feature, so, it blocks some GPU passthrough. You can circumvent it using the qemu package from a PPA. These are the steps to do that:

# add-apt-repository  ppa:/ubuntu-virt
# apt-get update

Later you will be able to see the qemu version 2.6 with the ddw extention appended to it. Just install it using

# apt-get install qemu

PS: At this moment, due to a problem the package is not at the ppc64el repository, but will show up soon.

What is the difference between the PowerKVM and using Ubuntu as hypervisor

There is a set of differences, mainly some features that were not made upstream yet, as:

Can you give me an example of a Ubuntu guest libvirt XML

Yes. https://gist.github.com/leitao/81fcb3fe5120a1e75d64

Kernel

I want to use the most recent kernel on my Ubuntu

Canonical has a PPA that contains the most upstream Ubuntu's kernel available for you to test. It might not be well tested, neither ready for production yet, but it might help you to do some tests with a recent kernel.

In order to use it, you should add the PPA repository to your source list file, and update your apt-get cache. After this, just download the kernel (composed by 2 packages, linux-image-KERNEL_VERSION-generic and linux-image-extra-KERNEL_VERSION-generic).

Below, steps to perform this procedure on Ubuntu 14.04.3:

echo "deb http://ppa.launchpad.net/canonical-kernel-team/ppa/ubuntu trusty main" >> /etc/apt/sources.list 

echo "deb-src http://ppa.launchpad.net/canonical-kernel-team/ppa/ubuntu trusty main" >> /etc/apt/sources.list

apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B892ACEA

apt-get update

apt-get install linux-image-3.19.0-32-generic linux-image-extra-3.19.0-32-generic

After this, reboot machine and it should be updated. Notice that 3.19.0-32 is current "beta" version of Ubuntu's kernel on the time this text is written.

If you want to update another Ubuntu version to latest testing kernel, change "trusty" to the respective codename on ppa URL, and the kernel version probably will not be 3.19 - be sure which version you want to install.

I want to install an iso with a custom kernel

Probably, the most easy way to generate an Ubuntu iso image, is to use debian-installer to build a MinimalCD iso.

This guide also contains excerpts from https://wiki.debian.org/DebianInstaller/Modify/CustomKernel on how to build a Custom kernel.

Assumptions

It works better when you are inside the release you want to build to (eg, use Ubuntu 16.04 to build a 16.04 installation).

There might be a way to change the build system to generate another release, but the safe way would be to use an environment with the release you need, eg within a container, vm, schroot etc.

Make sure you have the necessary udebs before starting this procedure.

Following this guide may help you: Build Your Own Kernel, although it does not explicit how to build the udebs.

More on that in the Appendix.

Steps

The procedure is basically the same as building a package from source.

Be sure to have dpkg-dev installed:

Then download debian-installer source package and install the build-dependencies:

Change to the directory of the source.

The kernel udebs must be moved into the build/localudebs directory. Assuming the udebs are within ~/linux/:

Check that build/config/ppc64el.cfg has a variable KERNELVERSION field that matches the version of your custom kernel.

For example, if your kernel-image*.udeb produced in the kernel building is named kernel-image-4.4.0-17-generic-di_4.4.0-17.33_ppc64el.udeb, then set KERNELVERSION to 4.4.0-17-generic.

Now you just have to build the image:

If everything goes well, your mini.iso will be at build/dest/netboot/mini.iso as well as the netboot.tar.gz.

You can check the files that were used to construct the ISO in file dest/MANIFEST.udebs

Appendix

The kernel can be built using the debian package version. Download it via

or

Then

Configure as needed.

Finally, build it using debian/rules targets. The command below accepts parallel jobs (-jN).

This will generate the udebs.

I want to Build a Custom ISO, IMG or Netboot Tar Ball with a Custom Kernel

To use the Debian Live-Build tools, you can follow the tutorials on Live-Build.

Upgrades

How to upgrade to Ubuntu 16.04.X

In order to upgrade your Ubuntu 16.04 LTS image to version 16.04.2, you need to execute the following steps:

  1. Install Ubuntu 16.04 or 16.04.1
  2. Enable the proposed repository as explained here

  3. Install the kernel 4.8 kernel as:
    • # apt-get install linux-tools-4.8.0-34-generic linux-image-4.8.0-34-generic linux-image-extra-4.8.0-34-generic

The package source name is linux-hwe-edge

ppc64el/CommonQuestions (last edited 2018-05-10 13:47:29 by breno-leitao)