Amazon.co.uk Widgets

Log in

X
Easily upgrading from Ubuntu 24.04 LTS to 25.04

Ubuntu 24.04 LTS - (Noble Numbat) is supported for a very long time, until 2029, but I thought that screen sharing via Gnome remote desktop (GRD) was broken in Gnome 46.x which is provided by Ubuntu in 24.04 LTS.

So I decided an upgrade was required for remote access to work. But on reflection its not so simple. GRD in Ubuntu is provided with Microsoft Remote Dektop Protocol (RDP) support and without Virtual network computing (VNC) support. I chiefly use macOS and would rather use Apple Remote Desktop (ARD) which supports VNC not RDP. RDP works fine with Remmina, the Ubuntu provided RDP client, but not so far for me with the Windows App for macOS, or Remote Desktop Connection for Windows 11. I briefly considered a VNC server like its the millenium again, but VNC doesn't play well with Wayland so that doesn't really seem to be the answer. Neither is a third party tool like RustDesk. It want it vanilla and provided by the operating system vendor.

TL:DR – Ubuntu 25.04 has a LOT of new features so the time seems right to give it a try. Upgrade observations and instructions follow. Gnome Remote Desktop continues to be a voyage of discovery to get working the way I want it.

Gnome in Ubuntu 25.04 compared to 24.04 LTS

GNOME’s remote desktop support was improved for version 47, with the addition of persistent remote login sessions which means that If you happen to be disconnected from a remote login session, it will continue, so that it is possible to log back in and continue from where you left off, with the system in the same state as when you left it. Gnome 47 was included in Ubuntu 24.10 but this has been superceded now by the current stable release Ubuntu 25.04 (Plucky Puffin) which gets Gnome 48 (Bengaluru). There are loads of new welcome features and fixes. Its quite a change. 

GNOME 47, “Denver”
Main features
  • Accent Colors
  • Enhanced Small Screen Support
  • Screen Capture Hardware Encoding
  • Faster, More Accurate Rendering
  • Persistent Remote Desktop Sessions
  • New Style Dialog Windows
  • New Open and Save File Dialogs
  • Improved Files App
  • Improved Navigation
  • Better Search Information
  • Modernized Interface
  • Improved settings
  • Improved Online Accounts
  • Improved Gnome web browser
  • Improved Calendar
  • Maps with public transit routing in selected locations
Introducing GNOME 47
GNOME 48, “Bengaluru”
Main features
  • Notification Stacking
  • Performance Improvements
  • Enhanced Image Viewer
  • New Fonts
  • Digital Wellbeing
  • Preserve Battery Health
  • New Audio Player App
  • Timezone Support in Calendar
  • HDR (High Dynamic Range) Support
  • Updated Text Editor
Introducing GNOME 48

 

Upgrading to Ubuntu 25.04 from 24.04 LTS

This is a multi step process via 24.10. Ubuntu assumes you want to keep on LTS - thats the point of it after all. So there are some steps to take.

First, upgrade to Ubuntu 24.10 (Oracular Oriole)

  1. Prepare to move from LTS to current stable. Double check your Ubuntu release, Here you can see it is Noble Numbat (24.04 LTS).
    $ lsb_release -c
    Codename:	noble
    
  2. Update everything in your current release.
    $ sudo apt update
    $ sudo apt upgrade
  3. If you try to upgrade an LTS release you'll see that it requires another step, that is, to tell the update manager you really want this.
    $sudo do-release-upgrade
    Checking for a new Ubuntu release
    There is no development version of an LTS available.
    To upgrade to the latest non-LTS development release 
    set Prompt=normal in /etc/update-manager/release-upgrades.
  4. Edit the release-upgrades file to change the value to normal
  5. If you are an ubuntu pro subscriber you'll need to disable some things before updating. This is likely a bug (2084208) so may go away. The next step is a workaround.
    $ sudo pro disable esm-apps esm-infra
  6. Now you should be able to do the release upgrade to Ubuntu 24.10 (Oracular Oriole), which is required before going to 25.04 (Plucky Puffin). You'll need to say 'y' for yes a few times during the upgrade. And you'll need a decent network connection as this takes a while! 
    $ sudo do-release-upgrade
    Checking for a new Ubuntu release
    
    = Welcome to Ubuntu 24.10 'Oracular Oriole' =
    ...
    ...
    Continue [yN] y
  7. Eventually it will complete
    System upgrade is complete.
    
    Restart required 
    
    To finish the upgrade, a restart is required. 
    If you select 'y' the system will be restarted. 
    
    Continue [yN] y
    

  8. Reboot and inspect your system :) 
    Welcome to Ubuntu 24.10 (GNU/Linux 6.11.0-26-generic x86_64)
    
     * Documentation:  https://help.ubuntu.com
     * Management:     https://landscape.canonical.com
     * Support:        https://ubuntu.com/pro
    
    0 updates can be applied immediately.
    

Next, upgrade to Ubuntu 25.04 (Plucky Puffin)

  1. This time it should be straightforward. Run the release upgrade again and you should be presented with 25.04 (Plucky Puffin)
    $ sudo do-release-upgrade
    Checking for a new Ubuntu release
    
    = Welcome to Ubuntu 25.04 'Plucky Puffin' =
    ...
    ...
    Continue [yN] y
  2. You'll need to answer y to the prompts again, and remember this might take a long time and needs a decent connection.
  3. Eventually it will complete
    System upgrade is complete.
    
    Restart required 
    
    To finish the upgrade, a restart is required. 
    If you select 'y' the system will be restarted. 
    
    Continue [yN] y
  4. Reboot and inspect your system again :) 
    Welcome to Ubuntu 25.04 (GNU/Linux 6.14.0-15-generic x86_64)
    
     * Documentation:  https://help.ubuntu.com
     * Management:     https://landscape.canonical.com
     * Support:        https://ubuntu.com/pro
    
    0 updates can be applied immediately

  5. Thats'it. Its quite an upgrade!

    $ lsb_release -c
    Codename:	plucky
  6. Last step. Does Remote Access work? Yes - but out of the box only from Remmina, the RDP client provided with Ubuntu Desktop.

    Remmina RDP client accessing my upgraded Ubuntu 25.04 computer
    Remmina RDP client accessing upgraded Ubuntu 25.04
    Remmina RDP client accessing fresh install Ubuntu 25.04
    Remmina RDP client accessing fresh install Ubuntu 25.04

    Just to show I'm not missing something in the configuration, Ive installed a fresh 25.04 on my Macbook as an Arm64 VM and it connects fine with Remmina but not with the Windows App. Its not me its them!
  7. Windows Remote Desktop and the and macOS Windows App would not work for me AT ALL until I set 'use redirection server name:i:1' in the rdp configuration file and imported it. This is not the default. Remmina for Ubuntu works fine. Microsoft Remote Desktop has been renamed 'Windows App' which helps nobody but their marketing doublespeak contortionists. Anyway, even though Remmina works fine the macOS Windows App and the Windows Remote Desktop Connection Apps both dont work at all unless you make that change despite me trying a dizzying array of different settings in the user interface. YMMV.

    See https://gitlab.gnome.org/GNOME/gnome-remote-desktop/-/issues/215 for the whole sorry story. 

    At the moment, my RDP connections from macOS from the Microsoft Windows App are working to a ThinkPad running Ubuntu 24.04.2 LTS (screenshots below) and not to a ThinkCentre running Ubuntu 25.04. I have used identical configurations on each computer so I am at a bit of a loss how to resolve the issue for Windows and macOS remote desktop access.

  8. I thought about the alternative of installing a VNC server and using Apple's venerable Remote Desktop app (ARD) which works well with VNC servers and perfectly with Mac computers. VNC doesn't play well with Wayland though so thats definitely not the way forward for Ubuntu, although other Linux distributions still using X might be fine.
  9. It really should be easier than this. More as I have it.

Troubleshooting Gnome Remote Desktop in Ubuntu 25.04

Upgraded systems don't have the gnome-remote-desktop directories set up correctly

This is tricky stuff. A bug has an impact in that Gnome Remote Desktop won't work for systems that were upgraded from earlier Ubuntu releases. (That would be me) https://bugs.launchpad.net/ubuntu/+source/gnome-remote-desktop/+bug/2063333

The workaround is in the bug report, repeated here for my note.

If you are affected by this issue, you can safely run the same 3 commands that this upgrade would run:

$ sudo systemd-tmpfiles --create /usr/lib/tmpfiles.d/gnome-remote-desktop-tmpfiles.conf

$ sudo systemd-sysusers /usr/lib/sysusers.d/gnome-remote-desktop-sysusers.conf

$ sudo systemd-tmpfiles --create /usr/lib/tmpfiles.d/gnome-remote-desktop-tmpfiles.conf

Check if you have the system user gnome-remote-desktop by examining the password file.

$ cat /etc/passwd |grep gnome-remote-desktop
gnome-remote-desktop:x:985:985:GNOME Remote Desktop:/var/lib/gnome-remote-desktop:/usr/sbin/nologin

Headless Remote Desktop

Headless means using the gnome-remote-desktop user to present a login screen so that any user can login as who they are.

This is turned on in Ubuntu Desktop by enabling Remote Login, not Desktop Sharing in system settings, and in the terminal using grdctl --system commands. --system means Remote Login, as opposed to Desktop Sharing.

Heres the status output from a working configuration. You can ignore the TPM credentials message, as it is not an issue. The username and password which are set in the gui or from the command line are stored in /var/lib/gnome-remote-desktop/.local/share/gnome-remote-desktop/credentials.ini. If you inspect it (as superuser) you'll see it contains the username and password to esablish the initial login session from which you can sign in to your linux account. This is nice, but terribly confusing if it doesn't work first time!

[RDP]
credentials={'username': <'thenametousetogetconnected'>, 'password': <'thepasswordtousetogetconnected'>}

You can set it using  grdctl --system rdp set-credentials and view it using grdctl --system status --show-credentials. l had lots of issues getting this properly set! Make sure it is properly set before continuing.

# grdctl --system status --show-credentials
Init TPM credentials failed because Failed to initialize transmission interface context: tcti:IO failure, using GKeyFile as fallback.
Overall:
	Unit status: active
RDP:
	Status: enabled
	Port: 3389
	TLS certificate: /var/lib/gnome-remote-desktop/.local/share/gnome-remote-desktop/certificates/rdp-tls.crt
	TLS fingerprint: co:ff:ee:is:a1:b0:11:d4:e4:61:21:ff:77:a5:05:12:30:19:81:b6:67:6d:12:4e:a5:f9:e5:45:86:f8:00:29
	TLS key: /var/lib/gnome-remote-desktop/.local/share/gnome-remote-desktop/certificates/rdp-tls.key
	Username: thenametousetogetconnected
	Password: thepasswordtousetogetconnected

Once it is properly set you will see [RDP] Sending server redirection in the log like this below. If you see that, then your RDP client is getting successfully through to gnome remote desktop (GRD)

journalctl -f -u gnome-remote-desktop.service
Jun 10 17:52:07 ubuntu gnome-remote-de[993]: [RDP] Sending server redirection

 

Checking the status of Gnome Remote Desktop

systemctl --system status gnome-remote-desktop.service
● gnome-remote-desktop.service - GNOME Remote Desktop
     Loaded: loaded (/usr/lib/systemd/system/gnome-remote-desktop.service; enabled; preset: enabled)
     Active: active (running) since Fri 2025-06-06 09:54:56 BST; 21min ago
 Invocation: 0858531b1bcf421b9c07370236961cb9
   Main PID: 1035 (gnome-remote-de)
      Tasks: 4 (limit: 37455)
     Memory: 9.7M (peak: 10.5M)
        CPU: 38ms
     CGroup: /system.slice/gnome-remote-desktop.service
             └─1035 /usr/libexec/gnome-remote-desktop-daemon --system

Jun 06 09:54:55 ubuntu systemd[1]: Starting gnome-remote-desktop.service - GNOME Remote Desktop...
Jun 06 09:54:56 ubuntu gnome-remote-de[1035]: Init TPM credentials failed because Failed to initialize transmission interface >
Jun 06 09:54:56 ubuntu systemd[1]: Started gnome-remote-desktop.service - GNOME Remote Desktop.
Jun 06 09:54:57 ubuntu gnome-remote-de[1035]: RDP server started
Jun 06 10:13:11 ubuntu gnome-remote-de[1035]: [RDP] Credentials are not set, denying client
Jun 06 10:13:24 ubuntu gnome-remote-de[1035]: [RDP] Credentials are not set, denying client
Jun 06 10:14:58 ubuntu gnome-remote-de[1035]: [RDP] Credentials are not set, denying client

 Watching the server logs is kind of the same

journalctl -f -u gnome-remote-desktop.service
Jun 06 09:54:55 ubuntu systemd[1]: Starting gnome-remote-desktop.service - GNOME Remote Desktop...
Jun 06 09:54:56 ubuntu gnome-remote-de[1035]: Init TPM credentials failed because Failed to initialize transmission interface context: tcti:IO failure, using GKeyFile as fallback
Jun 06 09:54:56 ubuntu systemd[1]: Started gnome-remote-desktop.service - GNOME Remote Desktop.
Jun 06 09:54:57 ubuntu gnome-remote-de[1035]: RDP server started
Jun 06 10:13:11 ubuntu gnome-remote-de[1035]: [RDP] Credentials are not set, denying client
Jun 06 10:13:24 ubuntu gnome-remote-de[1035]: [RDP] Credentials are not set, denying client

 

 

Working reference point in Gnome Remote Desktop in 24.04 LTS

I have this working with exactly the same settings in Ubuntu 24.04 LTS (Noble Numbat). Here are some screenshots from Microsoft's macOS Windows App (formerly known as Remote Desktop).

Gnome Remote Desktop System level login screenshot
Gnome Remote Desktop System level login screenshot
Gnome Remote Desktop System level desktop screenshot
Gnome Remote Desktop System level desktop screenshot
Gnome Remote Desktop System level settings about screenshot
Gnome Remote Desktop System level settings about screenshot
Gnome Remote Desktop System level settings settings screenshot
Gnome Remote Desktop System level settings settings screenshot