Ubuntu 24.04 on QEMU?

Hi @mirzak, thank you for this support page. I have tried to make some quick tests and everything worked out-of-the-box.

I would have two further questions:

  1. Is there a pre-generated Ubuntu Noble (Numbat) image? I have found one for Jammy but I will be interested to run some quick tests using Ubuntu Server 24.04 LTS pre-generated image.
  2. The same example does not work with later git tags. For instance, the same instructions failed with 4.2.2, does that mean that Ubuntu generic x86 support is not officially maintained in mender-convert repo?

Thank you in advance.

Cheers,
N.T.

Hi @Nav,

I’m currently working on some things related to mender-convert, I’ll try to give it a spin in the upcoming days and then report back. There was some fix related to Ubuntu Server lately, which might be after 4.2.2., so have you tried master?

Greetz,
Josef

Hi @TheYoctoJester,

Thank you for feedback and planned efforts to give it a try. Any new findings from your recent efforts?

Yes, I have tried master as well recently but mender-convert seems to fail with later tags for Ubuntu Noble (Numbat).

Cheers,
N. T.

Hi @Nav,

I started working on it, but the first thing I got stuck on was appropriate image generation and fun with mkosi :frowning: Hopefully more progress tomorrow.

How are you creating the starting (golden) image?

Greetz,
Josef

@TheYoctoJester We build Ubuntu 24.04 images with mkosi v13 (the last version that supports grub as boot loader as far as I know). For ubuntu 24.04 mkosi v13 needs a patch to add tzdata to the base packages:

diff --git a/mkosi/__init__.py b/mkosi/__init__.py
index 3aab454..9a2086f 100644
--- a/mkosi/__init__.py
+++ b/mkosi/__init__.py
@@ -2834,7 +2834,7 @@ def install_debian_or_ubuntu(args: MkosiArgs, root: Path, *, do_run_build_script
         cmdline: List[PathString] = [
             "debootstrap",
             "--variant=minbase",
-            "--include=ca-certificates",
+            "--include=ca-certificates,tzdata",
             "--merged-usr",
             f"--components={','.join(repos)}",
         ]

Side note: Debian bookworm and later and Ubuntu Jammy and later need openssl 1.1 manually installed if you want to use it with mender client 3.x. Not sure if mender-convert supports mender client 4 already.

Hi @mari,

Thanks for the heads up! That perfectly explains why I keep on running into problems when building a reproducer here. Seems I need to extend the image generation scripts accordingly first to use a defined version of mkosi instead of relying on the host provided one.

Concerning Mender Client 4.0, it should be fully supported in mender-convert. Are you seeing any problems?

Greetz,
Josef

I haven’t tried in a while. Last time it was not supported. Will give it a try once I find some time.

mender-convert 4.2.2 and mender-client 4.0.2 work for me for debian bookworm but only by accident since I still have libssl1.1 installed. If I remove libssl1.1 I get the following error:

Preparing to unpack .../mender-auth_4.0.2-1+debian+buster_amd64.deb ...
Adding 'diversion of /usr/share/mender/identity/mender-device-identity to /usr/share/mender/identity/mender-device-identity.distrib by mender-auth'
Adding 'diversion of /etc/mender/identity/mender-device-identity to /etc/mender/identity/mender-device-identity.distrib by mender-auth'
Adding 'diversion of /usr/share/dbus-1/system.d/io.mender.AuthenticationManager.conf to /usr/share/dbus-1/system.d/io.mender.AuthenticationManager.conf.distrib by mender-auth'
Unpacking mender-auth (4.0.2-1+debian+buster) ...
dpkg: dependency problems prevent configuration of mender-auth:
 mender-auth depends on libssl1.1 (>= 1.1.1); however:
  Package libssl1.1 is not installed.

dpkg: error processing package mender-auth (--install):
 dependency problems - leaving unconfigured
Processing triggers for dbus (1.14.10-1~deb12u1) ...
Errors were encountered while processing:
 mender-auth

I have no idea why mender-convert thinks it’s a good idea to select buster packages for mender components when installing bookworm.

Same failure for ubuntu 24.04 by the way:

2024-10-24 07:16:14 [INFO] [mender-convert-modify] Installing Mender Auth and Mender Update version 4.0.2
2024-10-24 07:16:15 [DEBUG] [mender-convert-modify] Running: (modules/deb.sh:86): run_and_log_cmd_noexit():  

	wget -Nq https://downloads.mender.io/repos/debian/pool/main/m/mender-client4/mender-auth_4.0.2-1%2Bdebian%2Bbuster_amd64.deb -P work/deb-packages
2024-10-24 07:16:15 [INFO] [mender-convert-modify] Successfully downloaded mender-auth_4.0.2-1+debian+buster_amd64.deb from https://downloads.mender.io/repos/debian/pool/main/m/mender-client4/mender-auth_4.0.2-1%2Bdebian%2Bbuster_amd64.deb
2024-10-24 07:16:15 [DEBUG] [mender-convert-modify] Running: (modules/chroot.sh:50): run_and_log_cmd():  

	sudo mount work/boot /mender-convert/work/rootfs//boot/efi -o bind
2024-10-24 07:16:15 [DEBUG] [mender-convert-modify] Running: (modules/chroot.sh:54): run_and_log_cmd():  

	sudo mount /dev /mender-convert/work/rootfs//dev -o bind,ro
2024-10-24 07:16:15 [DEBUG] [mender-convert-modify] Running: (modules/chroot.sh:56): run_and_log_cmd():  

	sudo mount /dev/pts /mender-convert/work/rootfs//dev/pts -o bind,ro
2024-10-24 07:16:15 [DEBUG] [mender-convert-modify] Running: (modules/chroot.sh:57): run_and_log_cmd():  

	sudo mount /proc /mender-convert/work/rootfs//proc -o bind,ro
2024-10-24 07:16:15 [DEBUG] [mender-convert-modify] Running: (modules/chroot.sh:58): run_and_log_cmd():  

	sudo mount /sys /mender-convert/work/rootfs//sys -o bind,ro
2024-10-24 07:16:15 [DEBUG] [mender-convert-modify] Running: (modules/chroot.sh:116): run_and_log_cmd_noexit():  

	sudo chroot /mender-convert/work/rootfs/  env         DEBIAN_FRONTEND=noninteractive         DEVICE_TYPE=x86_64         dpkg --install /tmp/mender-auth_4.0.2-1+debian+buster_amd64.deb
	Selecting previously unselected package mender-auth.
(Reading database ... 62114 files and directories currently installed.)
Preparing to unpack .../mender-auth_4.0.2-1+debian+buster_amd64.deb ...
Adding 'diversion of /usr/share/mender/identity/mender-device-identity to /usr/share/mender/identity/mender-device-identity.distrib by mender-auth'
Adding 'diversion of /etc/mender/identity/mender-device-identity to /etc/mender/identity/mender-device-identity.distrib by mender-auth'
Adding 'diversion of /usr/share/dbus-1/system.d/io.mender.AuthenticationManager.conf to /usr/share/dbus-1/system.d/io.mender.AuthenticationManager.conf.distrib by mender-auth'
Unpacking mender-auth (4.0.2-1+debian+buster) ...
dpkg: dependency problems prevent configuration of mender-auth:
 mender-auth depends on libssl1.1 (>= 1.1.1); however:
  Package libssl1.1 is not installed.

dpkg: error processing package mender-auth (--install):
 dependency problems - leaving unconfigured
Processing triggers for dbus (1.14.10-4ubuntu4.1) ...
Errors were encountered while processing:
 mender-auth

2024-10-24 07:16:15 [INFO] [mender-convert-modify] Installing dependencies for /mender-convert/work/deb-packages/mender-auth_4.0.2-1+debian+buster_amd64.deb