I was thinking about buying a Raspberry Pi, and running Ubuntu on it. I have looked around the web, and a lot of stuff says that it's difficult for it to work on ARM processors. Has anyone figured out how to get a Raspberry pi to run Ubuntu?
From the Official FAQ Page at Raspberry Pi:
What Linux distros will be supported at launch?
Fedora, Debian and ArchLinux will be supported from the start. We hope to see support from other distros later. (Because of issues with newer releases of Ubuntu and the ARM processor we are using, Ubuntu can’t commit to support Raspberry Pi at the moment.) You will be able to download distro images from us as soon as the Raspberry Pi is released, and we will also be selling pre-loaded SD cards shortly after release.
Source: My answer on Raspberry Pi SE
It seems that since the launch of Raspberry Pi 2, Snappy Ubuntu Core can be run on RP2.
Thanks to a very successful collaboration between the Raspberry Pi Foundation and Canonical, the company behind Ubuntu, we are pleased to announce that Snappy Ubuntu Core is available for the Raspberry Pi 2, the latest Raspberry Pi family member.
However, it should be noted for the anxious that this is not a desktop version of Ubuntu.
Some complications with ARM are a common issue for all distributions, they are not always Ubuntu-specific. They stem from the fact that ARM has a number of different architectures, offering limited to no compatibility between each other.
The leading Linux ARM distributions are the following (excluding Gentoo which by definition is compiled to the exact target), and I am listing the corresponding target architecture:
Ubuntu: ARMv7 and up, thumb 2 (32 bit)
Debian: ARMv4t and up (armel), ARMv7 and up (armhf)
Fedora: ARMv5tel (arm) ARMv7hl (armhf)
Arch Linux: ARMv5te or higher
To your specific question, the original Raspberry PI runs a BCM2835 (ARM1176JZF-S) Broadcom CPU. This is armv6k architecture, which is not compatible with recent builds of Ubuntu, which are optimized for performance at the expense of compatibility with older chip designs like this Broadcom's.
The obvious choice is to run the armel architecture of Debian -- you will feel almost at home as if you were on Ubuntu.
Revisiting this a few years later, there are now many models of R.PI available on the market:
Raspberry PI A, B, A+, B+, Zero, and Zero W: These are not compatible with Ubuntu ARM builds, as they use the BCM2835 Broadcom CPU (ARM v6k).
Raspberry PI 2, model B: this runs a BCM2836 Broadcom CPU. This is ARMv7 architecture, a Cortex A7 to be precise. This board (and presumably all subsequent "series 2" R.PI boards) will run Ubuntu just fine.
Raspberry PI 3, model A+, B, B+: these run on a BCM2837 Broadcom CPU. This is ARMv8 architecture, a Cortex-A53 64-bit chip to be exact. These board are a superior option over any R.PI 2 boards when it comes to running Ubuntu. Revision 1.2 of the Raspberry PI 2 uses this same 64 bit core, making the newer PI 2 boards significantly better than the original version.
Raspberry PI 4, model B: this one is based on the BCM2711, a Quad core Cortex-A72 (ARM v8) 64-bit chip almost thrice as fast as the SoC in PI model 3 boards. This board is now the best option to run Ubuntu on Raspberry PI.
Canonical has released Ubuntu Core (aka "Snappy") for the R.PI 2, but it bears noting this is a server distribution with no desktop environment. Additionally, standard Ubuntu 16.04 and 18.04 server images that can be expanded to include a desktop environment are available for R.PI 2 and R.PI 3. Ubuntu MATE is now also available for Raspberry PI.
Finally, starting with 20.04, official Ubuntu Desktop images are available for Raspberry PI. As long as Raspbian continues to ship a 32-bit userland, Ubuntu 20.04+ should be considered the best fully 64-bit option for Raspberry Pi.
All current Raspberry PI images are linked from this page on the Ubuntu wiki.
Raspberry Pi preinstalled Ubuntu 20.10 Desktop and preinstalled Ubuntu 20.10 Server images are available from ubuntu.com. The preinstalled images allow you to unpack a preinstalled version of Ubuntu onto a target device.
The Ubuntu Raspberry Pi wiki is the most reliable and up-to-date source for information about installing Ubuntu on the Raspberry Pi, but the Ubuntu image for Raspberry Pi linked to at the Ubuntu Raspberry Pi wiki is not an officially supported Ubuntu release. An Ubuntu 14.04 LTS (Trusty Tahr) image is available for the Raspberry Pi 2, which combines the released 14.04 distribution with a PPA containing kernels and firmware which work on the Raspberry Pi 2. The instructions for installing this image are at the same webpage.
Raspberry Pi 2: ubuntu-18.04-preinstalled-server-armhf+raspi2.img.xz (4G image, 296MB compressed)
Raspberry Pi 3: The official Raspberry Pi 2 images can be used with a Pi 3B/3B+ after minor changes (see instructions).
Raspberry Pi 4: You can install Ubuntu Server + desktop environment (optional) on a Raspberry Pi 4 by following the instructions in this answer.
Further releases can be found at http://cdimage.ubuntu.com/ubuntu/releases/
The generic arm64 ISO images can be used with the Raspberry Pi 3. Instructions for booting these are here.
Canonical has released official [Ubuntu Core 16 and Core 18 images for Raspberry Pi 3. The instructions for installing it are at Install Ubuntu Core on a Raspberry Pi 2 or 3. As the wiki says: Snappy Ubuntu Core is a new rendition of Ubuntu with transactional updates - a minimal server image with the same libraries as today’s Ubuntu, but applications are provided through a simpler mechanism.
Ubuntu Core 16 is based on Ubuntu 16.04, and is supported for 5 years.
Ubuntu Core 18 is based on Ubuntu 18.04, and is supported for 10 years.
A new release of Ubuntu Core is released every 2 years on even numbered years (2016, 2018, etc.).
Ubuntu MATE 16.04 has fully working bluetooth and wifi on the Raspberry Pi 3.
Raspberry Pi packages
Although the majority of the Raspberry Pi cloud/server image works like any other Ubuntu system, there are a few packages in all currently supported versions of Ubuntu that you may not be familiar with.
linux-firmware-raspi2- GPU firmware bootloader files and WiFi firmware configuration files
linux-image-raspi2) - Linux kernel with patches from https://github.com/raspberrypi/linux
u-boot-rpi- Provides the various uboot* binaries under
flash-kernel- Automatically copies the latest kernel, dtb file and u-boot script to the Pi's FAT-formatted GPU firmware partition.
Based on the latest update on the official website's FAQ:
Raspbian (based on Debian), Arch Linux, and Pidora run on the Raspberry Pi 1, 2, and 3. Ubuntu MATE and Ubuntu Snappy Core also run on Pi 2 and 3 only.
If you are considering purchasing a new Raspberry Pi 4 don't be dissuaded by articles stating Ubuntu doesn't support it. From:
- Ubuntu 19.10 delivers Kubernetes at the edge, multi-cloud infrastructure economics and an integrated AI/ML developer experience
The Raspberry Pi 4 Model B is supported by Ubuntu 19.10. The latest board from the Raspberry Pi Foundation offers a faster system-on-a-chip with a processor that uses the Cortex-A72 architecture (quad-core 64-bit ARMv8 at 1.5GHz) and offers up to 4GB of RAM. With the Raspberry Pi 4 Model B, developers get access to a low-cost board, powerful enough to orchestrate workloads at the edge with MicroK8s.