If you've ever wanted to put a full-fledge, brand new (aka 20.10, the newest of the new) Ubuntu Linux desktop on your Pi, this is the article for you. his procedure SHOULD be straightforward, but there's nowhere on the internet that I could find that incorporates all the steps for specifically getting a Pi up and running with desktop Ubuntu, without having to reference several other articles. This procedure will give you the latest 64-bit Ubuntu version (20.10) with any desktop flavor you want (in my case it's the stock GNOME GUI that comes with vanilla Ubuntu). So let's get into it.
The first step is downloading the image. That'll be located here:
After you download it, go ahead and burn it to a MicroSD with Balena Etcher, here: https://www.balena.io/etcher/
After it's burned to the MicroSD, pop it in a Pi and boot up. It'll be on the commandline when it's booted, and just use "ubuntu" for the username, and "ubuntu" for the password. It'll prompt you to change the password, go ahead and do that.
Then, you've gotta get connected to the internet. I'll go over the wifi procedure as that's the most versatile. This walkthough (with some command tweaks) gets you through it: https://www.linuxbabe.com/ubuntu/connect-to-wi-fi-from-terminal-on-ubuntu-18-04-19-04-with-wpa-supplicant But I'll explain a little more clearly.
Start on Step 2 of the walkthrough above (ignore step 1, the commands aren't relevant or useable in Ubuntu 20.10). In more specific summary to this build, that's:
type: wpa_passphrase "your-ESSID" your-wifi-passphrase | sudo tee /etc/wpa_supplicant.conf
Replace your-ESSID with whatever your Wifi network name is, but KEEP THE QUOTES. That allows for spaces if you have something like "My Wifi Network" as your ESSID.
Replace your-wifi-passphrase with whatever your wifi password is. You don't need quotes here as passwords don't use spaces. If you use special characters like $, it will screw up the output of the .conf file and replace the character with a bunch of other characters. If it did, go to the following step (b).
That created the file "wpa_supplicant.conf" in your /etc/ folder. You can edit it from within the commandline but I honestly just like shutting down the machine, throwing the card in another Linux-based computer and opening the file from there. Sounds like more work but much, much easier to make text changes from within a GUI. Honestly I just hate how many text editors there are from Linux variant/version to Linux variant/version so throwing it back on my main Linux desktop is just so much easier.
From within the other Linux computer, go ahead and open up the wpa_supplicant.conf file in whatever text editor you prefer. For Raspbian, that would be nano, so use this command:
sudo nano /media/etc/wpa_supplicant.conf
-.The reason we're doing this in the commandline again (ironically) is because you need root privileges to modify this file, so opening a terminal and using 'sudo' before you open the nano text file editor gets that done for you.
ii. Now get rid of the # in front of the psk entry of your plaintext password, and put a # on the entry below it (the hash of your password).
iii. Now fix your password to include the correct characters. When you're done, add two lines making sure the } bracket is below the new lines you input:
iv. When that's done, press ctrl+o and then enter to save the file. Now you've got a working wpa_supplicant.conf file.
2. Put the newly updated MicroSD back into your Pi and boot it up again.
3. On bootup, login again and then map WLAN0 to wpa_supplicant to allow it to use the configuration you just set up. To do that use this command:
sudo wpa_supplicant -c /etc/wpa_supplicant.conf -i wlan0
4. If you see a successful connection prompt in the results after it's established, you're good to go. But you're stuck with wpa_supplicant in the foreground now, so hit ctrl+c to exit out of it, and then add -B to run it again as a background process:
sudo wpa_supplicant -B -c /etc/wpa_supplicant.conf -i wlan0
5. Now you'll need an IP address, so go ahead and use this to get a normal DHCP lease (if you need a static IP use the guide linked above Step 1 in this guide):
sudo dhclient wlan0
And now you're connected! Go ahead and run sudo apt-get update and sudo apt-get upgrade to make sure you're up to date. So let's move to the whole reason for the post, installing the desktop environment. Simply type:
sudo apt-get install ubuntu-desktop
Alternatively you can install any desktop environment you want (Mate, XFCE, etc) with these commands instead:
sudo apt-get install lxde sudo tasksel install xfce4-slim sudo tasksel install kubuntu-desktop sudo tasksel install lubuntu-core sudo tasksel install ubuntu-mate-core
After that, reboot your Pi (sudo reboot) and you're done!
Hopefully that took some of the confusion about this whole process of getting an Ubuntu desktop on a Pi out of the way. Plus this procedure gives you the latest version of Ubuntu, not reliant on any pre-built images!
PS: If you want to just run some older version of Ubuntu and do this the easy way like some kinda wimp, you can download this first-party tool from the Raspberry Pi foundation: https://www.raspberrypi.org/downloads/