Raspberry Pi: how to install Xubuntu 22.04


Back to the home page



Contents of this page:

Raspberry Pi OS Desktop features the austere lightweight PIXEL desktop (actually a modified LXDE). But you can also install the 64-bit version of Ubuntu 22.04 Server as base, and use it to create a "mean and lean" Xubuntu, or Xfce, desktop on your computer (with your own set of installed applications).

Xubuntu looks nicer, is more user-friendly and is more full-fledged than PIXEL (LXDE). This is how to get it:


General

1. This how-to is written based on my experience with the Raspberry Pi 400 with 4 GB RAM, which is 64-bit hardware. The oldest editions of the Raspberry Pi are 32-bit, which makes them unfit for this how-to.

Downloading and installing

2. The clearest and easiest way to download and install is this:

2.1. First download Ubuntu 22.04 Server ARM (64-bit) for the Raspberry Pi.

The Server edition doesn't even have a graphical desktop environment. That's important, because in this way, you prevent "pollution" of your system by (remnants of) another desktop environment.

2.2. Then you put that on a micro SD card, by means of the official tool "Imager" of the Raspberry Pi (CHOOSE OS - Use custom).

Note: Before you click on the "button" WRITE, I recommend to click first on the small gear wheel below on the right. In the dialogue window that appears, make these choices:

a. Image customization options - set that to: to always use

b. Scroll down and tick:
Set username and password

Compose your own username and password. The username shouldn't contain capital letters!

c. Then tick:
Configure wifi

Fill out the name of your wireless network and its password. Also -and this is important!- select your Wifi country. Because by doing so, you also regulate the number of available wireless channels for your WiFi.

d. Scroll to the bottom and deselect:
Enable telemetry

Reason: telemetry is nearly always bad for your privacy. Why oh why was this option enabled by default in the first place?

e. Click on the "button" SAVE and then on the "button" WRITE.

2.3. Boot your Pi from that micro SD card.

Note: It's rather unclear when you can log in. Because after the login prompt has appeared, there'll still follow a lot of lines from the boot sequence (sigh....). When the boot process clearly has come to a halt, the moment has probably arrived that you can log in.

When you haven't changed it, the default login name is: ubuntu
The default password is: ubuntu

Establish internet connection

3. If you haven't established internet connection yet as described above, now establish a temporary internet connection by means of a network cable (ethernet).

TEN ESSENTIAL ACTIONS

4. Always do these things, in this order:

Apply all available updates

4.1. Start by updating everything:

sudo apt-get update && sudo apt-get dist-upgrade

Install the Xubuntu desktop environment

4.2. Then you install the graphical desktop environment of Xubuntu (lightweight yet full-featured):

sudo apt-get install xubuntu-desktop

Remove some crud

4.3. Then you remove some crud that causes malfunctions (numlockx) and dead weight (gedit, gnome-shell, cloud-init):

sudo apt-get remove numlockx cloud-init gedit gnome-shell

Reboot and log in graphically

4.4. Now do a reboot:

sudo reboot

This time, you should be able to log in by means of a nice graphical login window.

Launch Firefox for applying the rest of the how-to

4.5. Now launch Firefox on the Raspberry Pi, by means of the menu (click the small mouse head in the upper left). And navigate with Firefox to this web page, so that you can from now on copy/paste the terminal commands into the terminal, which is a lot easier and prevents typos.

Install some essential applications

4.6. Then you're going to install a couple of must-have applications:

Copy/paste the following command line into the terminal (it's just one long line, don't chop it up):

sudo apt-get install gdebi abiword vlc epiphany-browser catfish gnumeric xpad

Freezes by the screensaver: remove the culprits

4.7. Now you need to remove the screensaver packages, because they can cause your Raspberry Pi to freeze.Execute the following terminal command, in order to remove the offending packages:

sudo apt-get remove gnome-screensaver xfce4-screensaver

Set the Pi to your own language

4.8. Non-English user? If you want a Pi that speaks your non-English language, you can install some of the available localization (translation) packages for your language. Menu - Settings - Language Support

c. Follow the required steps and then reboot. The Pi should speak your language now.

Note: Firefox might still be in English, the first time that you launch it. In that case, simply close Firefox and launch it again. After that, it should be fully localized.

Select the right keyboard layout

4.9. Then you can change your keyboard layout. For example: for Dutch you'll want "US international (with dead keys)". Like this:

sudo dpkg-reconfigure keyboard-configuration

Whenever you select something, activate the <Ok> "button" by means of the Tab key. For Dutch, you select: Generic 105-key PC (intl.) - Other - English (US) -
English (US) - English (US, intl., with dead keys)

Reboot.

Improve WiFi connection by disabling power management for the wireless chipset

4.10. The easiest way to improve your WiFi connection by disabling power management for the WiFi chipset, goes like this:

a. First you need to find out whether Mint applies power management to your WiFi chipset. For this, launch a terminal window.
(You can launch a terminal window like this: *Click*)

b. Type in the terminal:

iwconfig

Press Enter.

You can then not only see the name for your wireless chipset (for example: wlp2s0), but also whether Power Management is on for it. When it's off, or when no mention is made of Power Management at all, you don't need to do anything.

When Power Management is on (which is expected), proceed as follows:

c. Use copy/paste for transferring the following blue line into the terminal (don't try to type it!):

sudo sed -i 's/3/2/' /etc/NetworkManager/conf.d/default-wifi-powersave-on.conf

Press Enter. Type your password when prompted. In Ubuntu this remains entirely invisible, not even dots will show when you type it, that's normal. In Mint this has changed: you'll see asterisks when you type. Press Enter again.

d. Reboot your computer.

e. Then check in the terminal, by the command iwconfig, whether Power Management for the wireless chipset is off now.

If so, you're done!


EIGHT RECOMMENDED ACTIONS

Do these things if and when you have the time:

Asterisks when typing the sudo password

5.1. Would you like to see feedback in the form of asterisks when you type your password? That can be achieved like this:

sudo visudo

Use the arrow keys to go to this line:

Defaults env_reset

Delete it and replace it by the following line (use copy/paste):

Defaults env_reset,pwfeedback

Save the change with: Ctrl x - y - Enter

Enable the firewall

5.2. Enable the firewall, but disable its useless spammy log, with these two commands:

sudo ufw enable

sudo ufw logging off

Update inxi

5.3. Update inxi, so that it recognizes all hardware. Proceed as described below.

a. First remove the update block:

sudo rm -v /etc/inxi.conf

b. Then apply the actual update:

sudo inxi -U
(when you type the commands: note that the U is a capital letter!)

c. Check (first make the terminal window full screen, to avoid chopped lines in the output):

inxi -Fxpmr
(when you type the command: note that the F is a capital letter!)

Don't need Bluetooth? Disable it completely by blocking its driver

5.4. Don't you use Bluetooth? Then disable it entirely by blocking its driver. That decreases the power consumption and can also contribute to the stability of the network connection.

a. Copy/paste the following command line into the terminal (it's just one line):

echo "blacklist hci_uart" | sudo tee /etc/modprobe.d/blacklist-bluetooth.conf

Press Enter.

b. Reboot your Pi.

Decrease swappiness

5.5. Now you're going to reduce the swappiness (the inclination to use the RAM swap on the micro SD card) from 60 to 25, thus decreasing the usage of the micro SD card:

a. First check the current swappiness:

cat /proc/sys/vm/swappiness

b. Apply the reduction:

echo "vm.swappiness=25" | sudo tee -a /etc/sysctl.conf

c. Reboot. Then test:

cat /proc/sys/vm/swappiness

Activate zswap

5.6. Then activate zswap, thus decreasing the usage of the micro SD card even further:

a. First open an existing file for editing, like this:

pkexec mousepad /boot/firmware/cmdline.txt

This text file contains one long line, with several parameters that are separated by a simple single space. At the very end, add these four parameters:

zswap.enabled=1

zswap.max_pool_percent=40

zswap.zpool=z3fold

zswap.compressor=lz4

So that it becomes (copy/paste: simply replace the existing line entirely by the line below, that's the easiest way):

console=serial0,115200 dwc_otg.lpm_enable=0 console=tty1 root=LABEL=writable rootfstype=ext4 rootwait fixrtc quiet splash zswap.enabled=1 zswap.max_pool_percent=40 zswap.zpool=z3fold zswap.compressor=lz4

b. Save the changes and close Mousepad.

c. The module for the z3fold feature isn't present by default in the initramfs during booting, so it won 't be loaded automatically. As z3fold (threefold compression) is better than the default zbud (double compression), you'll need to change that like this:

In the terminal (use copy/paste to transfer the command line below to the terminal):

pkexec mousepad /etc/initramfs-tools/modules

Press Enter.

d. At the bottom of the text in that text file you create a new line with z3fold in it, so that it becomes:

# List of modules that you want to include in your initramfs.
# They will be loaded at boot time in the order below.
#
# Syntax: module_name [args ...]
#
# You must run update-initramfs(8) to effect this change.
#
# Examples:
#
# raid1
# sd_mod
z3fold


(note: The "l" in "z3fold" is a lower-case letter L)

e. Save the changes and close Mousepad.

f. Then in the terminal:

sudo update-initramfs -u

Press Enter.

g. Reboot your Pi.

h. Check the result with the following terminal command:

sudo dmesg | grep zswap

It should report in the last line of its output:

zswap: loaded using pool lz4/z3fold

i. You can check the percentage of your RAM that's being used by zswap with this terminal command:

cat /sys/module/zswap/parameters/max_pool_percent

It should report 40. Don't increase that, because higher percentages might have negative consequences.

Warning: there's also a RAM swap feature calles zRam. Don't install it, because it's counterproductive in combination with zswap!

Tame your Firefox

5.7. Now tame your Firefox, so that it won't write to the micro SD card overly and unnecessarily.

Improve the updating

5.8. The way that the software on your computer is being updated, can be improved. Like this:

Menu - Settings - Software & Updates
Tab Updates:
Automatically check for updates: set that to Daily
When there are security updates: set that to Display immediately
When there are other updates: set that to Display immediately

Reason for these choices: you need to know immediately about the availability of new updates. But it's bad when they're being installed automatically, because that might disrupt your work.

Close Software & Updates.


Do you want more tips and tweaks? There's a lot more of them on this website!

For example:

Speed up your Linux Mint!

Clean your Linux Mint safely

Avoid 10 fatal mistakes


To the content of this website applies a Creative Commons license.

Back to the home page

Disclaimer