오류: virHostCPUGetKVMMaxVCPUs: KVM은 이 플랫폼에서 지원되지 않습니다. 기능이 구현되지 않았습니다.

오류: virHostCPUGetKVMMaxVCPUs: KVM은 이 플랫폼에서 지원되지 않습니다. 기능이 구현되지 않았습니다.

저는 ARM Chromebook 모델 "xe303c12"에서 Debian bookworm을 실행하고 있으며 KVM을 활성화하기 위해 커널(5.4)을 다시 컴파일했으므로 이제 시스템 소리는 다음과 같습니다.

$ lsb_release -a

No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 12 (bookworm)
Release:        12
Codename:       bookworm

$ uname -a
Linux chromarietto 5.4.244-stb-cbe
#8 SMP PREEMPT Sat Aug 19 22:19:32 UTC 2023 armv7l GNU/Linux

$ uname -r
5.4.244-stb-cbe

$ kvm-ok
INFO: /dev/kvm exists
KVM acceleration can be used

$ qemu-system-arm --version
QEMU emulator version 5.1.0 (v5.1.0-dirty)
Copyright (c) 2003-2020 Fabrice Bellard and the QEMU Project developers

$ python3 --version
Python 3.11.2

qemu, kvm 및 libvirt를 함께 연결하여 Arm 32비트용 FreeBSD 13.2를 가상화할 수 있다는 궁극적인 목표를 가지고 소스에서 libvirt 9.7.0, qemu 5.1 및 virt-manager를 설치했습니다. 내 플랫폼에 대한 유용한 정보:

root@chromarietto:/home/marietto/Desktop# virt-host-validate


QEMU: Checking if device /dev/kvm exists                                  : PASS
QEMU: Checking if device /dev/kvm is accessible                           : PASS
QEMU: Checking if device /dev/vhost-net exists                            : PASS
QEMU: Checking if device /dev/net/tun exists                              : PASS
QEMU: Checking for cgroup 'cpu' controller support                        : PASS
QEMU: Checking for cgroup 'cpuacct' controller support                    : PASS
QEMU: Checking for cgroup 'cpuset' controller support                     : PASS
QEMU: Checking for cgroup 'memory' controller support                     : PASS
QEMU: Checking for cgroup 'devices' controller support                    : PASS
QEMU: Checking for cgroup 'blkio' controller support                      : PASS

QEMU: Checking for device assignment IOMMU support                        : WARN 
(No ACPI IORT table found, IOMMU not supported by this hardware platform)

QEMU: Checking for secure guest support                                   : WARN 
(Unknown if this platform has Secure Guest support)

LXC: Checking for Linux >= 2.6.26                                         : PASS
LXC: Checking for namespace ipc                                           : PASS
LXC: Checking for namespace mnt                                           : PASS
LXC: Checking for namespace pid                                           : PASS
LXC: Checking for namespace uts                                           : PASS
LXC: Checking for namespace net                                           : PASS
LXC: Checking for namespace user                                          : PASS
LXC: Checking for cgroup 'cpu' controller support                         : PASS
LXC: Checking for cgroup 'cpuacct' controller support                     : PASS
LXC: Checking for cgroup 'cpuset' controller support                      : PASS
LXC: Checking for cgroup 'memory' controller support                      : PASS
LXC: Checking for cgroup 'devices' controller support                     : PASS

LXC: Checking for cgroup 'freezer' controller support                     : FAIL
(Enable 'freezer' in kernel Kconfig file or mount/enable cgroup controller in your system)

LXC: Checking for cgroup 'blkio' controller support                       : PASS
LXC: Checking if device /sys/fs/fuse/connections exists                   : PASS


# lsmod | grep kvm
no errors (I have embedded the options needed to enable KVM inside the kernel)


# virsh --connect qemu:///system capabilities | grep baselabel

<baselabel type='kvm'>+1002:+1002</baselabel>
<baselabel type='qemu'>+1002:+1002</baselabel>

해결할 수 없는 오류는 다음과 같습니다.

root@chromarietto:~#  virsh domcapabilities --machine virt --emulatorbin /usr/local/bin/qemu-system-arm

2023-08-29 10:17:59.110+0000: 1763: error : virHostCPUGetKVMMaxVCPUs:1228 : 
KVM is not supported on this platform: Function not implemented ; 
error: failed to get emulator capabilities
error: KVM is not supported on this platform: Function not implemented

디버그 옵션이 활성화된 상태에서 libvirtd를 실행할 때 얻는 로그입니다.

root@chromarietto:~# libvirtd --debug

[Tue, 29 Aug 2023 10:10:11 virt-manager 2141] DEBUG (createvm:494) UEFI found, setting it as default.
[Tue, 29 Aug 2023 10:10:11 virt-manager 2141] DEBUG (createvm:728) Guest type set to os_type=hvm, arch=armv7l, dom_type=kvm
[Tue, 29 Aug 2023 10:10:11 virt-manager 2141] DEBUG (guest:546) Prefer EFI => True
2023-08-29 10:10:12.972+0000: 1765: error : virHostCPUGetKVMMaxVCPUs:1228 : KVM is not supported on this platform: Function not implemented
[Tue, 29 Aug 2023 10:10:12 virt-manager 2141] DEBUG (domcapabilities:250) Error fetching domcapabilities XML
Traceback (most recent call last):
  File "/usr/local/share/virt-manager/virtinst/domcapabilities.py", line 245, in build_from_params
    xml = conn.getDomainCapabilities(emulator, arch,
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/libvirt.py", line 4612, in getDomainCapabilities
    raise libvirtError('virConnectGetDomainCapabilities() failed')
libvirt.libvirtError: KVM is not supported on this platform: Function not implemented


2023-08-29 10:10:14.157+0000: 1762: error : virHostCPUGetKVMMaxVCPUs:1228 : KVM is not supported on this platform: Function not implemented

[Tue, 29 Aug 2023 10:10:14 virt-manager 2141] DEBUG (domcapabilities:250) Error fetching domcapabilities XML
Traceback (most recent call last):
  File "/usr/local/share/virt-manager/virtinst/domcapabilities.py", line 245, in build_from_params
    xml = conn.getDomainCapabilities(emulator, arch,
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/libvirt.py", line 4612, in getDomainCapabilities
    raise libvirtError('virConnectGetDomainCapabilities() failed')
libvirt.libvirtError: KVM is not supported on this platform: Function not implemented
[Tue, 29 Aug 2023 10:10:14 virt-manager 2141] DEBUG (createvm:497) Error checking for UEFI default
Traceback (most recent call last):
  File "/usr/local/share/virt-manager/virtManager/createvm.py", line 491, in _set_caps_state
    guest.enable_uefi()
  File "/usr/local/share/virt-manager/virtinst/guest.py", line 589, in enable_uefi
    path = self._lookup_default_uefi_path()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/share/virt-manager/virtinst/guest.py", line 848, in _lookup_default_uefi_path
    raise RuntimeError(_("Libvirt version does not support UEFI."))
RuntimeError: Libvirt version does not support UEFI

누군가 이 오류를 해결하기 위한 몇 가지 제안을 해줄 수 있나요? 감사해요.

답변1

KVM의 32비트 ARM 지원은 5.2(및 5.7 커널 이상)에서 제거되었습니다. 바라보다https://qemu.readthedocs.io/en/master/about/removed-features.html#kvm-guest-support-on-32-bit-arm-hosts-removed-in-5-2

관련 정보