Technogeezer
Champion
Champion

Installing Ubuntu Server and desktop components when you can't find a Desktop release

Canonical doesn't seem to post GA builds of a generic release of Ubuntu Desktop for ARM. They only post x86 versions, or if you go poking around, pre-packaged versions for use on Raspberry Pi platform. 

The side effects of this decision are:

  • Daily builds of Desktop releases that are referenced by the TP guide seem to disappear when the next version of Ubuntu goes into development (e.g. Impish 21.10 daily builds are no longer available since development has started on Jammy 22.04).
  • If bugs exist in the daily builds that impact installation on the TP, a Ubuntu Desktop release that works may prove difficult-to-impossible to locate.

A workaround to this situation is to install a bare-bones version of a released Ubuntu Server for ARM, then install desktop components. This would turn the server version into the equivalent of generic release of Ubuntu Desktop.

Procedure:

  • Download a Ubuntu Server for ARM release .iso (such as the 21.10 version) from https://ubuntu.com/#download
  • Create a new virtual machine and install it from the .iso
  • Answer the questions to install the release on your VM’s hard drive.
    • You will be prompted during the process to install popular server packages. You do not need to select any.
  • When the installation is complete reboot and log in.
  • Install the tasksel manager utility:
sudo apt-get install tasksel
  • Invoke the tasksel utility and choose "Ubuntu desktop" for installation - this installs GNOME 
  • After the desktop installs, edit the /etc/gdm3/custom.conf file to disable Wayland
  • /etc/netplan/*.yaml must be edited in order for networking to work in the GUI environment. Add the following line after the “version: 2” entry: 
renderer: NetworkManager 
  • You may also wish to install the GNOME Software application which will allow easier installation of other software packages:
sudo apt-get install gnome-software
  • While open-vm-tools is installed by default, open-vm-tools-desktop is not. Install it with:
sudo apt-get install open-vm-tools-desktop
  • Reboot. You should now be presented with the “usual” graphical login and GNOME desktop.

Once the VM has rebooted,, you may now wish to install any software updates that are being offered by Ubuntu. Also, you may wish to install Firefox (it's not installed by default) from the "Software" application. It'll be useful later on.

Also, if you want to find a 5.14 kernel, you can actually pick a later version than that found in the TP Guide.

The kernel repository can found at https://kernel.ubuntu.com/~kernel-ppa/mainline You will find the v5.14 version referenced in the guide, plus earlier and later versions. Each version has its own directory containing the associated files you'll need for the installation instructions in the TP guide.

The TP Guide documents the 4 files you need to download for the 5.14 release. If you decide to use another kernel, the 4 files you will need are similarly named to the ones found in the guide.

I've successfully used both the v5.14 and v5.14.19 versions. but have had problems with the 5.15 ones (I'd avoid them for the time being)

 

 

0 Kudos
5 Replies
WillieP
Contributor
Contributor

I followed the steps here through the install tasksel. I then invoked tasksel by typing "sudo tasksel" at the command prompt. I cleared everything in the tasksel menu window except selecting Ubuntu Desktop. Tasksel changed to a window with "installing packages," showed a task bar indicating 100%. The terminal window below the tasksel window has the line: tasksel:apt-get failed (100). The file /etc/... in the next step did not exist. I would appreciate any suggestions. TIA.

 

Screen Shot 2021-12-21 at 10.42.16 PM.png

0 Kudos
vmwaresec_rs
Contributor
Contributor

@Technogeezer - Great article! / Thanks much for the contribution!

 

I was able to follow it to a successful working installation of the Ubuntu desktop. Before finding this post I was trying to do the same thing , only I prefer the KDE / Kubuntu  flavor.

I tried just installing the KDE environment via the CLI, then I used tasksel to do it and was never able to get it to work. It always hangs before presenting the desktop. I can ssh into the server but the VMware window where the GUI should be is just hung at the

Reached target Cloud-init target.

point of loading

vmwaresec_rs_0-1640291028419.png

I looked for the /etc/gdm3/custom.conf file and found that there was none. There were two files under the /etc/sddm directory, one for Wayland and one for XFCE if I remember correctly. Based on your post it seems that Wayland may be the problem.

Can you please provide some additional information about that and any thoughts on what I need to do to get a KDE desktop working?

One other thing that I found is that it appears that the best resolution that I am able to get from the Ubuntu desktop is 1024 x 768. I did run 

sudo apt-get install open-vm-tools-desktop

and i also ran

ps aux | grep tools

to ensure that I could see that the tools are indeed running (they are). Is it possible to get a better resolution? If so, how? If not, any idea when we might see the ability to use a better resolution?

Any information pointing me in the right direction would be greatly appreciated.

TIA,

Robert

 

0 Kudos
vmwaresec_rs
Contributor
Contributor

So I have solved a few of my issues, but not all.

As far as the issues go I have solved the hanging at the "Reached target Cloud-init target." state. That was me not reading as much as I should have. I have been using some version or another of VMware since about 2000 so I installed the program and just started installing ARM OS'es. In this case, needed to RTFM. I also found another post where you commented about some of the links to OS versions no longer existed. I downloaded the Ubuntu Jammy Jellyfish desktop release and started from there.

  • Disabled Wayland
  • Upgraded the kernel version to 5.14
  • Installed VMware Tools (I had already done this in the original Ubuntu Server to Ubuntu Desktop build)

Once I did these things I had a very nice, fully functional OS that I could change the resolution on. Yeah!

Then I cloned the image so that I could play around with installing KDE. When I installed it i left the display manager as gdm3 and made sure that Wayland was still commented out before rebooting.

It works, but I am unable to change the resolution and make it stick. I see other resolutions when I go to change it. I can make the change but it immediately switches back to 1024 x 768 yet I can logoff of the KDE desktop and then switch to the Ubuntu Desktop on the same machine and the Ubuntu desktop environment will have the higher resolution that I have configured.

Right now, that is my only issue.

I will continue to play around and research to see if I can get it working but any thoughts that anyone has regarding fixing this issue will be greatly appreciated.

 

Thanks,

Robert

0 Kudos
Technogeezer
Champion
Champion

There is a long standing KDE Plasma issue (not arm64 architecture or even Ubuntu specific) that impacts the ability to have a screen resolution change “stick” in a virtual machine  

I posted a workaround for this in the thread https://communities.vmware.com/t5/Fusion-for-Apple-Silicon-Tech/Cannot-change-openSUSE-screen-resolu... . While the post originated as a problem with OpenSUSE Tumbleweed, the problem exists on any Linux that uses KDE Plasma including Ubuntu. 

The only thing about this workaround is that it does not persist between logins and reboots. The screen resolution will default back to 1024x768 at each login. 

As you have found, though, GNOME and Ubuntu Desktop works fine and the resolution changes are persistent. 

0 Kudos
vmwaresec_rs
Contributor
Contributor

@Technogeezer - Thanks for the reply. In between my last post and seeing this I found the same exact "work-around" that your post mentions, changing the System "Background Services"  to disable "KScreen 2". I am seeing the same behavior that you are describing with KDE on the M1 MacBook (allowing resolution settings change while running and then reverting back upon reboot) but I did an install of Jammy in VMware Workstation 16 on a Linux host and disabled the same setting and it is sticking through reboots.

0 Kudos