- When 'ppc64el' images are released after 'amd64' images are released?
- What is the difference between the possible operating modes on Power?
- 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?
- How to collect logs and data for a bug validation
- Kdump failure
- Installation & Configuration
- How to search and get more information about a package in Ubuntu?
- What are the build log for packages?
- How to discover in which repository (main, universe, multiverse) a package is
- 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)
- How to upgrade to a next standard release, as 14.10 to 15.04
- How to use VNC on Ubuntu for POWER
- How to enable the -proposed repository in ubuntu
- I want to move from 14.10 standard release to a point release of 14.04 LTS?
- How to upgrade an machine using Ubuntu to most recent version without internet access?
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?
- PowerVM (aka pHyp) hypervisor from IBM is effectively the "host" operating system, although it is largely hidden from the end-user.
- Guests are referred to as LPARs (Logical PARtitions).
- "Classic" IBM virtualization.
- PowerKVM hypervisor from IBM, which is the "host" operating system.
- Guests are referred to as KVMs (Kernel Virtual Machines).
- "New" IBM virtualization.
- non-virtulized or "baremetal".
- No hypervisor is present.
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.
- PowerVM LPAR
- Runs underneath the PowerVM (aka pHyp) hypervisor from IBM.
- "Classic" IBM virtualization solution.
- Power Management and console access are typically available via either an HMC (Hardware Management Console) or IVM (Integrated Virtualization Manager).
- Uses Grub bootloader.
- PowerKVM guest
- Runs underneath the PowerKVM hypervisor from IBM.
- Port of x86 KVM technology to Power hardware.
- "New" IBM virtualization solution.
- Power management and console access are typically available via libvirt, although IBM also provides tools such as Kimchi and Ginger that are more specialized.
- Guests are run with qemu, so qemu can be used directly, as well.
- Uses Grub bootloader.
- non-virtulized or "baremetal".
- No hypervisor is present.
- Uses the petitboot bootloader.
- Power management and console access are available over IPMI.
- Provides full system access, unpartitioned, but does not in and of itself imply any guests are available/usable.
When installed in PowerNV mode, Ubuntu can be configured to provide KVM host operations [see this FAQ].
- KVM guest
- Runs underneath an Ubuntu installation in PowerNV mode ("KVM host" above)
- Power management and console access are typically available via libvirt.
- Guests are run with qemu, so qemu can be used directly, as well.
- Uses Grub bootloader.
What are the new features for each release?
Ubuntu 14.10 Release Notes: https://wiki.ubuntu.com/UtopicUnicorn/ReleaseNotes
Ubuntu 14.04.1 Release Notes: https://wiki.ubuntu.com/TrustyTahr/ReleaseNotes
Ubuntu 15.04 Release Notes: https://wiki.ubuntu.com/VividVervet/ReleaseNotes
Ubuntu 15.10 Release Notes: https://wiki.ubuntu.com/WilyWerewolf/ReleaseNotes
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
The main http://ports.ubuntu.com/ubuntu-ports/ is in the UK, there are a few mirrors:
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.
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.
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  and ubumirror.conf . 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 )
- 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
- 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.conf1.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.
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.
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:
- At the error message, choose "Back" button;
- Go to the item "Exit to shell"
Get the file /var/log/syslog
How to use Ubuntu as a hypervisor?
Note Recommended 14.10 or later
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:
- Install the missing virtualization packages:
# sudo apt-get install qemu-user qemu-utils cloud-image-utils qemu-system-ppc qemu-slof libvirt-bin numactl
- Add the users that would be able to run virtual machines into the kvm group:
# sudo usermod -a -G kvm <user>
- Disable the SMT:
# sudo ppc64_cpu --smt=off
- 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
[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 :
# sudo ln -s qemu-system-ppc64 /usr/bin/qemu-system-ppc64le
[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:
# echo "/usr/share/slof/** r," >> /etc/apparmor.d/abstractions/libvirt-qemu
- 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:
- 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
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:
echo "Acquire::ForceIPv4 true;" > /etc/apt/apt.conf.d/99force-ipv4
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:
- "Starting from 17.04 Zesty Zapus release, instead of creating swap partitions, swapfiles will be used by default for non-lvm based installations."
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.
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:
apt-cache search <package name>
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
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:
sudo apt-get update sudo apt-get upgrade
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:
At first, make sure the file /etc/update-manager/release-upgrades has the following line:
- 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:
- 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
- Grab the ISO image you want to upgrade to, and move it to the machine you want to upgrade
- 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)
- Add the mounted directory to the reposiorty source list (/etc/apt/source.list) using the following command:
# apt-cdrom -d=/media/cdrom/ add -m
- 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
- Here after, just do the standard procedure to install the system, as updating the repository, using:
# apt-get update
- Then upgrade the packages to the newer version, using:
# apt-get upgrade
Here are some of the outputs when executing those commands:
sudo mount utopic-server-ppc64el_2014-10-29.iso /media/cdrom/ mount: /dev/loop0 is write-protected, mounting read-only sudo apt-cdrom -d=/media/cdrom/ add -m Using CD-ROM mount point /media/cdrom/ Identifying... [a726897a34d7d7434e324566e03954de-2] Scanning disc for index files... Found 2 package indexes, 0 source indexes, 0 translation indexes and 1 signatures This disc is called: 'Ubuntu-Server 14.10 _Utopic Unicorn_ - Release ppc64el (20141022.2)' Copying package lists...gpgv: Signature made Wed 22 Oct 2014 02:08:40 PM EDT using DSA key ID FBB75451 gpgv: Good signature from "Ubuntu CD Image Automatic Signing Key <email@example.com>" Reading Package Indexes... Done Writing new source list Source list entries for this disc are: deb cdrom:[Ubuntu-Server 14.10 _Utopic Unicorn_ - Release ppc64el (20141022.2)]/ utopic main restricted Repeat this process for the rest of the CDs in your set. cat /etc/apt/sources.list | grep -v ^# | grep -v ^$ deb cdrom:[Ubuntu-Server 14.10 _Utopic Unicorn_ - Release ppc64el (20141022.2)]/ utopic main restricted sudo apt-get update Ign cdrom://Ubuntu-Server 14.10 _Utopic Unicorn_ - Release ppc64el (20141022.2) utopic InRelease Ign cdrom://Ubuntu-Server 14.10 _Utopic Unicorn_ - Release ppc64el (20141022.2) utopic/main Translation-en_US Ign cdrom://Ubuntu-Server 14.10 _Utopic Unicorn_ - Release ppc64el (20141022.2) utopic/main Translation-en Ign cdrom://Ubuntu-Server 14.10 _Utopic Unicorn_ - Release ppc64el (20141022.2) utopic/restricted Translation-en_US Ign cdrom://Ubuntu-Server 14.10 _Utopic Unicorn_ - Release ppc64el (20141022.2) utopic/restricted Translation-en Reading package lists... Done sudo apt-get upgrade Reading package lists... Done Building dependency tree Reading state information... Done Calculating upgrade... The following packages were automatically installed and are no longer required: docbook-to-man g++-4.8 libavcodec54 libavformat54 libavutil52 libcamel-1.2-45 libcolord1 libcolorhug1 libept1.4.12 libgail-3-0 libgdata13 libgnome-desktop-3-7 libgnutls28 libgtop2-7 libpoppler44 libqmi-glib0 libqt5positioning5 libqt5sensors5 libqt5test5 libt1-5 libwpd-0.9-9 libwpg-0.2-2 libwps-0.2-2 linux-headers-3.15.0-4 linux-headers-3.15.0-4-generic linux-headers-3.15.0-6 linux-headers-3.15.0-6-generic linux-headers-3.16.0-3 linux-headers-3.16.0-3-generic linux-headers-3.16.0-6 linux-headers-3.16.0-6-generic linux-image-3.15.0-4-generic linux-image-3.15.0-6-generic linux-image-3.16.0-3-generic linux-image-3.16.0-6-generic linux-image-extra-3.15.0-4-generic linux-image-extra-3.15.0-6-generic linux-image-extra-3.16.0-3-generic linux-image-extra-3.16.0-6-generic python-cloudfiles python-gnomekeyring python-libxml2 python-pycurl python-smbc samba-dsdb-modules servicelog Use 'apt-get autoremove' to remove them. Done The following packages have been kept back: libbz2-1.0 libpng12-0 The following packages will be upgraded: libpam-modules libpam-modules-bin libpam0g libpciaccess0 libselinux1 libtiff5 linux-firmware linux-headers-3.16.0-23 linux-headers-3.16.0-23-generic linux-image-3.16.0-23-generic linux-image-extra-3.16.0-23-generic linux-libc-dev plymouth-theme-ubuntu-text 13 upgraded, 0 newly installed, 0 to remove and 2 not upgraded. Need to get 0 B/85.1 MB of archives. After this operation, 49.2 kB of additional disk space will be used. Do you want to continue? [Y/n] y Preconfiguring packages ... (Reading database ... 380705 files and directories currently installed.) Preparing to unpack .../libpam0g_1.1.8-3ubuntu4_ppc64el.deb ... Unpacking libpam0g:ppc64el (1.1.8-3ubuntu4) over (1.1.8-3ubuntu3) ... Setting up libpam0g:ppc64el (1.1.8-3ubuntu4) ... Processing triggers for libc-bin (2.19-10ubuntu2) ... (Reading database ... 380705 files and directories currently installed.) Preparing to unpack .../libselinux1_2.3-1build1_ppc64el.deb ... Unpacking libselinux1:ppc64el (2.3-1build1) over (2.3-1) ... Setting up libselinux1:ppc64el (2.3-1build1) ...
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:
- Huge DDW for the guests (Enabled in PowerKVM and not on Ubuntu yet)
- Status: Some folks working to enable Huge DDW exploitation in Linux kernel and Qemu, which will make it available in Ubuntu (possible version 15.10)
- Ubuntu runs the hypervisor in Little endian mode. On the other side, PowerKVM, as in 2.1.1, is still a BE hypervisor.
- PowerKVM has some additional software not yet available in Ubuntu, as Kimchi and Ginger. (To be available in version Ubuntu 15.10)
- In terms of packages available in the hypervisor, Ubuntu is a full-fledged hypervisor, while PowerKVM is a more restricted hypervisor.
- PowerKVM is based on RPM and YUM packaging, while Ubuntu is based in DEB and APT.
Can you give me an example of a Ubuntu guest libvirt XML
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.
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.
The procedure is basically the same as building a package from source.
Be sure to have dpkg-dev installed:
$ sudo apt-get update $ sudo apt-get install dpkg-dev
Then download debian-installer source package and install the build-dependencies:
$ sudo apt-get source debian-installer $ sudo apt-get build-dep debian-installer
Change to the directory of the source.
$ cd debian-installer*
The kernel udebs must be moved into the build/localudebs directory. Assuming the udebs are within ~/linux/:
$ cp ~/*.udeb ./build/localudebs
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:
$ make -C build build_netboot
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
The kernel can be built using the debian package version. Download it via
$ apt-get source linux $ cd linux
$ git clone git://kernel.ubuntu.com/ubuntu/ubuntu-xenial.git $ cd ubuntu-xenial
$ debian/rules editconfigs
Configure as needed.
Finally, build it using debian/rules targets. The command below accepts parallel jobs (-jN).
$ debian/rules binary-arch binary-udebs
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.
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:
- Install Ubuntu 16.04 or 16.04.1
Enable the proposed repository as explained here
- 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