Mike Slinn

Ubuntu 22.04 Breaking Changes

Published 2022-07-24. Last modified 2024-09-18.
Time to read: 3 minutes.

This page is part of the posts collection, categorized under Ubuntu, X11.

Ubuntu 22.04 was a traumatic release for me. It had many breaking changes.

The Ubuntu Desktop

It seems that the Ubuntu desktop technology changes radically for every major release. Sometimes, what worked for the previous release no longer works, and you need to figure out why the server you are updating no longer starts up properly.

One of the big changes is that many/most processes now run under systemd, instead of SystemV init. Even though systemd provides support for the old SystemV and Linux Standard Base (LSB) init scripts, the boot sequence, for example, has completely changed. Learning to love systemd is a good overview article.

As an example of how change causes pain to the uninitiated, I found I had to execute the following when rebuilding the server, to make it boot into the graphical target once the desktop environment had been installed. Before I did that, all kinds of weird error messages were appearing that gave no clue as to what the problem was.

Shell
$ sudo systemctl set-default graphical.target

$ sudo systemctl default

The Geek Diary has a good article entitled How to set default target (default runlevel). Althought the article was written about CentOS / RHEL 7 it is perfectly applicable to Ubuntu 22.04, and explains the above commands.

GNOME Dumped VNC

It is no longer possible to remotely view the default Ubuntu desktop under VNC. The windowing manager is now Wayland with the GNOME desktop environment, as per the standard Ubuntu 22.04 desktop ISO image. By default, the GNOME Display Manager (GDM3) display manager starts the X11 and Wayland windowing systems.

Happily, this means X11 apps continue to work standalone, as they should, for example xeyes, meld and gedit.

However, the GNOME desktop will no longer work with any VNC server. Unfortunately, GNOME 42 dropped support for VNC and now requires RDP instead. You can enable X-Windows and run an older desktop, such as XFCE, to support VNC, but I do not want to do that.

Ubuntu's Default VNC Server: Vino

Vino is a VNC server that is preinstalled by the Ubuntu 22.04 Desktop ISO image.

However (emphasis mine):

Vino was a VNC server for the GNOME desktop environment, the GNOME developers now recommend using GNOME Remote Desktop instead.  – From Wikipedia page for Vino

GNOME Remote Desktop is part of the GNOME Mutter project. GitLab project.

Mutter is a window and compositing manager that displays and manages your desktop via OpenGL. Mutter combines a sophisticated display engine using the Clutter toolkit with solid window-management logic inherited from the Metacity window manager.

While Mutter can be used stand-alone, it is primarily intended to be used as the display core of a larger system such as GNOME Shell. For this reason, Mutter is very extensible via plugins, which are used both to add fancy visual effects and to rework the window management behaviors to meet the needs of the environment.  – From GNOME Mutter
GNOME Remote Desktop currently supports "screen share", also known as "remote assistance" mode through VNC or RDP.

There is no longer any user interface for enabling VNC support; instead use the command line utility grdctl.  – From GNOME Remote Desktop

RDP

The command line tool for configuring GNOME Remote Desktop is called grdctl. This is the help message:

Shell
$ grdctl --help
Usage: grdctl [OPTIONS...] COMMAND [SUBCOMMAND]...
Commands:
rdp - RDP subcommands:
enable - Enable the RDP backend
disable - Disable the RDP backend
set-tls-cert <path-to-cert> - Set path to TLS certificate
set-tls-key <path-to-key> - Set path to TLS key
set-credentials <username> <password> - Set username and password
credentials
clear-credentials - Clear username and password
credentials
enable-view-only - Disable remote control of input
devices
disable-view-only - Enable remote control of input
devices
vnc - VNC subcommands: enable - Enable the VNC backend disable - Disable the VNC backend set-password <password> - Set the VNC password clear-password - Clear the VNC password set-auth-method password|prompt - Set the authorization method enable-view-only - Disable remote control of input devices disable-view-only - Enable remote control of input devices
status [--show-credentials] - Show current status
Options: --help - Print this help text

RDP Problems

The following gave me a black screen:

Shell
$ sudo apt install xrdp
$ sudo adduser xrdp ssl-cert # add xrdp into ssl-cert group
$ sudo systemctl start xrdp # start xrdp service
$ systemctl is-active xrdp # display current xrdp service state active
$ sudo systemctl enable xrdp # start xrdp on system startup

To configure vino Remote Desktop from within GNOME, go to System / Preferences / Remote Desktop, and enable Allow other users to view your desktop in the Remote Desktop.

I fussed around for a while, then gave up.

VNC and systemd

After much searching I found Install RealVNC Server and Client on Ubuntu 22.04|20.04|18.04 by Frankline Bett. This article was the only one that seemed to explain how to work with systemd properly, and it uses the existing desktop graphical server, instead of installing something another like xfce4 or Mate.

If only the instructions in the article actually worked with Ubuntu 22.04!

WS-Discovery Service

wsdd is a Linux daemon for the ONVIF WS-Discovery service. It has worked well for me.

Wsdd (v2:0.7.0-1) is available in the Ubuntu 22.04 (Jammy Jellyfish) Universe repository. Install it so your samba server appears in the Network section of the Windows 10 File Manager.

Shell
$ sudo apt install wsdd
* indicates a required field.

Please select the following to receive Mike Slinn’s newsletter:

You can unsubscribe at any time by clicking the link in the footer of emails.

Mike Slinn uses Mailchimp as his marketing platform. By clicking below to subscribe, you acknowledge that your information will be transferred to Mailchimp for processing. Learn more about Mailchimp’s privacy practices.