Information for those using Raspberry Pi, Ubuntu Xenial, and ROS Kinetic

This is “hopefully” a point in time statement:

The following refers to images from this source: https://wiki.ubuntu.com/ARM/RaspberryPi

For those who are using or plan to use the Ubuntu 16.04 Xenial server builds for Raspberry Pi 3 (and 2), it is important to immediately disable unattended updates and avoid apt-get upgrade.

There is a temporary solution to prevent a system from upgrading critical kernel files: sudo apt-mark hold linux-raspi2 linux-image-raspi2 linux-headers-raspi2

There are known issues with various patches which have been introduced after 1034. These patches make the Raspberry Pi unstable - primarily during the boot process. The result is the Raspberry Pi will sometimes freeze during boot. Several re-attempts (power cycling) and the system may eventually boot. Occasionally even this is insufficient.

By installing the original images and not permitting upgrades of core kernel files, the RPi + Ubuntu Xenial + ROS Kinetic is stable.

Background:

Launchpad thread: https://bugs.launchpad.net/ubuntu/+source/linux-raspi2/+bug/1652270

[spoiler]
UPDATE: 2017-02-15: There is a better workaround available. Rather than use the “hold” feature, users may edit the config.txt and change the device_tree_address (editing the config.txt file BEFORE proceeding the upgrade). The result should be the following lines:
# set extended DT area #device_tree_address=0x100 #device_tree_end=0x8000 device_tree_address=0x02008000

Even with this improvement, completing apt-get dist-upgrade will break wlan0.

UPDATE: 2017-02-16: The config.txt has been repeatedly reported to work; however, I get boot issues.[/spoiler]

UPDATE 2017-02-17: The update from the 15th has proven unreliable. The suggestion of using a non-server version from ubuntu-pi-flavor-maker is proving more promising.

2 Likes

Just to be clear, we would modify the /boot/config.txt file to comment out the old device_tree parameters, then only set the device_tree_address to be 0x02008000.

In the launchpad thread you linked to, there was some references to ubuntu-pi-flavour-maker.org:
https://ubuntu-pi-flavour-maker.org/
Did you try those yet?
Does say the ubuntu-mate-16.04.2-desktop-armhf-raspberry-pi.img encounter that same issues?
I’m going to try it with ROS in a bit.

I did not attempt the alternate image because of the statement at the end of the thread …

Shuhao (shuhao) wrote on 2017-02-13: #41
The images listed on ubuntu-pi-flavour-maker and the one listed on ARM/RaspberryPi - Ubuntu Wiki is exactly the same. The same issue should exist on both systems.

The non-server ubuntu-pi-flavor-maker builds are built using a different process, and don’t seem to have this issue. They come with rpi-update and can easily run the RPi ‘mainline’ kernel (not the Ubuntu fork).

I have been using lubuntu-16.04.2-desktop-armhf-raspberry-pi.img.xz with no issues.

Rohan

1 Like

Today I am getting undiagnosed issues so I will try using the desktop image and then disable the GUI to have a facsimile of a server image.

[quote=“rohbotics, post:4, topic:1205”]
The non-server ubuntu-pi-flavor-maker builds are built using a different process, and don’t seem to have this issue.[/quote]

I can confirm. I have a functioning instance of my LoCoRo project. I started with the Lubuntu image from ubuntu-pi-flavor-maker and disabled LXDE. Then treated like an Ubuntu server image. Everything worked as expected.

The Ubuntu Bugs thread has demonstrated to me that “official Ubuntu support” for the Raspberry Pi is dubious at present and has an uncertain future. When the April drop of Ubuntu 17.04 occurs, things should be clearer one way or another.

For ROS, it would be best for the community if it supported buildfarm installable packages for a “supported Raspberry Pi operating system”. This translates to Raspbian. I’ve been trying to promote Ubuntu but I have to concede, its not an ideal situation for ROS.

I have talked with Canonical about the problem of Raspberry Pi support. They told me the lack of work on the ubuntu raspberry pi is do to the focus on ubuntu core. I agree with their logic. There is little reason to run a full version of ubuntu on a RPI.

I do see the attention to Ubuntu Core. This is why my previous conclusion was to suggest ROS to consider Raspbian or even one of the other fully supported Linux distributions for the Raspberry Pi audience.

Here is where I see a divergence between ROS and Ubuntu as far as the Raspberry Pi is concerned.

The majority of Raspberry Pi owners (and the focus of the Raspberry Pi org) is the experimentor, student, tinkerer, maker, learner, creator.

Ubuntu Core appears to focus on IoT which is more of a commercial direction.

Unless a lot more packages are constructed as Snaps, it leaves very little usefulness for a large segment of the Raspberry Pi user base. (You can’t just “apt-get install” on Ubuntu Core.

Is ROS considering a focus on Ubuntu Core?

My personal activity with ROS is more “research” and “creator” and not IoT. None of the Taspbery Pi based projects I’m involved in are looking at Ubuntu Core.