Public bug reported:

I want use one of the Ubuntu arm64 installer media with virt-manager on
an amd64 system.

Virt-manager creates this node in the libvirt xml:

  <cpu mode="maximum"/>

Booting stops after this output line presumably from EDK II:

UEFI firmware (version 2025.11-3ubuntu7 built at 11:11:58 on Mar 31
2026)

With this cpu it works:

  <cpu mode="custom" match="exact" check="none">
    <model fallback="allow">cortex-a76</model>
  </cpu>

We can not expect average desktop users to know which CPU model is
needed.

qemu-system-aarch64 should use a default CPU for the virt machine which
works out of the box.

I assume this is the problematic code. For TCG emulation it always
returns an 32bit CPU.

hw/arm/virt.c:

static const char *virt_get_default_cpu_type(const MachineState *ms) 
{
    return tcg_enabled() ? ARM_CPU_TYPE_NAME("cortex-a15")
                         : ARM_CPU_TYPE_NAME("max");
}

The following works for me:

static const char *virt_get_default_cpu_type(const MachineState *ms) 
{
    const char *ret;

    if (tcg_enabled()) {
        return target_aarch64() ? ARM_CPU_TYPE_NAME("neoverse-v1")
                                : ARM_CPU_TYPE_NAME("cortex-a15")
    } else {
        return ARM_CPU_TYPE_NAME("max");
    }    
}

Let's send this as suggestion to upstream.
--- 
ProblemType: Bug
ApportVersion: 2.34.0-0ubuntu2
Architecture: amd64
CasperMD5CheckResult: unknown
CurrentDesktop: KDE
DistroRelease: Ubuntu 26.04
InstallationDate: Installed on 2025-06-20 (376 days ago)
InstallationMedia: Kubuntu 25.10 "Questing Quokka" - Daily amd64 (20250607)
MachineType: LENOVO 21SR0046GE
NonfreeKernelModules: zfs
Package: qemu (not installed)
ProcKernelCmdLine: BOOT_IMAGE=/vmlinuz-7.0.0-27-generic 
root=UUID=a476770a-95d4-472e-b29e-beff8417d10e ro 
rd.luks.uuid=84f09755-731e-4a6a-83b9-6b933dadee6e
ProcVersionSignature: Ubuntu 7.0.0-27.27-generic 7.0.6
Tags: resolute wayland-session
Uname: Linux 7.0.0-27-generic x86_64
UpgradeStatus: Upgraded to resolute on 2025-10-30 (244 days ago)
UserGroups: adm cdrom dialout dip libvirt lpadmin lxd plugdev sambashare sudo
_MarkForUpload: True
dmi.bios.date: 02/25/2026
dmi.bios.release: 1.57
dmi.bios.vendor: LENOVO
dmi.bios.version: R30ET57W(1.57 )
dmi.board.asset.tag: Not Available
dmi.board.name: 21SR0046GE
dmi.board.vendor: LENOVO
dmi.board.version: SDK0T76530 WIN
dmi.chassis.asset.tag: No Asset Information
dmi.chassis.type: 10
dmi.chassis.vendor: LENOVO
dmi.chassis.version: None
dmi.ec.firmware.release: 1.57
dmi.modalias: 
dmi:bvnLENOVO:bvrR30ET57W(1.57):bd02/25/2026:br1.57:efr1.57:svnLENOVO:pn21SR0046GE:pvrThinkPadE16Gen3:rvnLENOVO:rn21SR0046GE:rvrSDK0T76530WIN:cvnLENOVO:ct10:cvrNone:skuLENOVO_MT_21SR_BU_Think_FM_ThinkPadE16Gen3:pfaThinkPadE16Gen3:
dmi.product.family: ThinkPad E16 Gen 3
dmi.product.name: 21SR0046GE
dmi.product.sku: LENOVO_MT_21SR_BU_Think_FM_ThinkPad E16 Gen 3
dmi.product.version: ThinkPad E16 Gen 3
dmi.sys.vendor: LENOVO

** Affects: qemu (Ubuntu)
     Importance: Low
     Assignee: Heinrich Schuchardt (xypron)
         Status: New


** Tags: apport-collected resolute wayland-session

** Tags added: apport-collected resolute wayland-session

** Description changed:

  I want use one of the Ubuntu arm64 installer media with virt-manager on
  an amd64 system.
  
  Virt-manager creates this node in the libvirt xml:
  
    <cpu mode="maximum"/>
  
  Booting stops after this output line presumably from EDK II:
  
  UEFI firmware (version 2025.11-3ubuntu7 built at 11:11:58 on Mar 31
  2026)
  
  With this cpu it works:
  
    <cpu mode="custom" match="exact" check="none">
      <model fallback="allow">cortex-a76</model>
    </cpu>
  
  We can not expect average desktop users to know which CPU model is
  needed.
  
  qemu-system-aarch64 should use a default CPU for the virt machine which
  works out of the box.
  
  I assume this is the problematic code. For TCG emulation it always
  returns an 32bit CPU.
  
  hw/arm/virt.c:
  
  static const char *virt_get_default_cpu_type(const MachineState *ms) 
  {
      return tcg_enabled() ? ARM_CPU_TYPE_NAME("cortex-a15")
                           : ARM_CPU_TYPE_NAME("max");
  }
  
  The following works for me:
  
  static const char *virt_get_default_cpu_type(const MachineState *ms) 
  {
      const char *ret;
  
      if (tcg_enabled()) {
          return target_aarch64() ? ARM_CPU_TYPE_NAME("neoverse-v1")
                                  : ARM_CPU_TYPE_NAME("cortex-a15")
      } else {
          return ARM_CPU_TYPE_NAME("max");
      }    
  }
  
  Let's send this as suggestion to upstream.
+ --- 
+ ProblemType: Bug
+ ApportVersion: 2.34.0-0ubuntu2
+ Architecture: amd64
+ CasperMD5CheckResult: unknown
+ CurrentDesktop: KDE
+ DistroRelease: Ubuntu 26.04
+ InstallationDate: Installed on 2025-06-20 (376 days ago)
+ InstallationMedia: Kubuntu 25.10 "Questing Quokka" - Daily amd64 (20250607)
+ MachineType: LENOVO 21SR0046GE
+ NonfreeKernelModules: zfs
+ Package: qemu (not installed)
+ ProcKernelCmdLine: BOOT_IMAGE=/vmlinuz-7.0.0-27-generic 
root=UUID=a476770a-95d4-472e-b29e-beff8417d10e ro 
rd.luks.uuid=84f09755-731e-4a6a-83b9-6b933dadee6e
+ ProcVersionSignature: Ubuntu 7.0.0-27.27-generic 7.0.6
+ Tags: resolute wayland-session
+ Uname: Linux 7.0.0-27-generic x86_64
+ UpgradeStatus: Upgraded to resolute on 2025-10-30 (244 days ago)
+ UserGroups: adm cdrom dialout dip libvirt lpadmin lxd plugdev sambashare sudo
+ _MarkForUpload: True
+ dmi.bios.date: 02/25/2026
+ dmi.bios.release: 1.57
+ dmi.bios.vendor: LENOVO
+ dmi.bios.version: R30ET57W(1.57 )
+ dmi.board.asset.tag: Not Available
+ dmi.board.name: 21SR0046GE
+ dmi.board.vendor: LENOVO
+ dmi.board.version: SDK0T76530 WIN
+ dmi.chassis.asset.tag: No Asset Information
+ dmi.chassis.type: 10
+ dmi.chassis.vendor: LENOVO
+ dmi.chassis.version: None
+ dmi.ec.firmware.release: 1.57
+ dmi.modalias: 
dmi:bvnLENOVO:bvrR30ET57W(1.57):bd02/25/2026:br1.57:efr1.57:svnLENOVO:pn21SR0046GE:pvrThinkPadE16Gen3:rvnLENOVO:rn21SR0046GE:rvrSDK0T76530WIN:cvnLENOVO:ct10:cvrNone:skuLENOVO_MT_21SR_BU_Think_FM_ThinkPadE16Gen3:pfaThinkPadE16Gen3:
+ dmi.product.family: ThinkPad E16 Gen 3
+ dmi.product.name: 21SR0046GE
+ dmi.product.sku: LENOVO_MT_21SR_BU_Think_FM_ThinkPad E16 Gen 3
+ dmi.product.version: ThinkPad E16 Gen 3
+ dmi.sys.vendor: LENOVO

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2158933

Title:
  Inadequate default cpu for aarch64 on virt machine

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/qemu/+bug/2158933/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to