PID 파일을 가져올 수 없습니다: /var/local/run/libvirt/qemu/driver.pid

PID 파일을 가져올 수 없습니다: /var/local/run/libvirt/qemu/driver.pid

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

$ 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를 설치했습니다. 소스에서 모든 것을 다시 컴파일한 이유를 묻는다면 내 대답은 복잡할 것입니다. 간단히 말해서 알 수 없는 이유로 다음과 같은 오류가 보고됩니다.

"Warning : Failed to set up UEFI / 
The Libvirt version does not support UEFI /
Install options are limited"

그래서 저는 가장 복잡한 경로를 선택했습니다. 모든 것을 처음부터 컴파일하는 것입니다.

아래에는 제가 따라온 전체 과정을 게시하여 여러분이 무엇이 잘못되었는지 잘 이해할 수 있도록 했습니다.

$ apt build-dep libvirt

$ git clone https://github.com/libvirt/libvirt.git 
Cloning into 'libvirt'...

$ cd libvirt 
$ meson setup build 
$ ninja -C build 
$ ninja -C build install

$ which virsh
/usr/local/bin/virsh

$ which libvirtd
/usr/local/sbin/libvirtd

$ apt install libgtk-3-dev libpulse-dev libgbm-dev libspice-protocol-dev \
libspice-server-dev libusb-1.0-0-dev libepoxy-dev libfdt-dev

$ git clone -b v5.1.0 http://git.qemu.org/qemu.git

$ cd qemu-v5.1.0

$ git submodule add -f https://git.kernel.org/pub/scm/utils/dtc/dtc.git dtc

$ ./configure --disable-werror --target-list=arm-softmmu \
--enable-opengl --enable-gtk --enable-kvm --enable-guest-agent \
--enable-spice --audio-drv-list="oss pa" --enable-libusb \
--enable-trace-backend=simple --enable-debug

$ make

$ make install

$ git clone https://github.com/virt-manager/virt-manager.git

$ apt install gobject-introspection libosinfo-1.0-0 libosinfo-1.0-dev \
gir1.2-libosinfo-1.0 libvirt-glib-1.0-dev

$ cd virt-manager 
$ ./setup.py configure --prefix=/usr/local 
$ sudo ./setup.py install

$ sudo usermod -a -G libvirt root 
$ sudo usermod -a -G libvirtd root 
$ sudo usermod -a -G libvirt-qemu libvirt-qemu 
$ sudo usermod -a -G libvirt marietto
$ sudo adduser libvirt-qemu 
$ sudo groupadd --system libvirt 
$ sudo groupadd --system libvirt-qemu 
$ sudo newgrp libvirt-qemu 
$ newgrp libvirt

$ /usr/local/sbin# libvirtd & 
[1] 2875

$ /usr/local/sbin# virtqemud & 

info : libvirt version: 9.7.0 info : 
hostname: chromarietto error : virPidFileAcquirePathFull:409 
Failed to acquire pid file : /var/local/run/libvirt/qemu/driver.pid 
Resource temporarily unavailable error : virStateInitialize:672 : 
Initialization of QEMU state driver failed 
Failed to acquire pid file : /var/local/run/libvirt/qemu/driver.pid 
Resource temporarily unavailable error : daemonRunStateInit:617 : 
Driver state initialization failed

$ /usr/local/sbin# ps ax | grep libvirt 
2875 pts/0    Sl     0:00 libvirtd

$ /usr/local/sbin# ps ax | grep virtqemu 
nothing


If I do the opposite way :


$ /usr/local/sbin# virtqemud &

$ /usr/local/sbin# ps ax | grep virtqemu 
3041 pts/0    Sl     0:00 virtqemud

$ /usr/local/sbin# libvirtd & 

info : libvirt version: 9.7.0 info : 
hostname: chromarietto 
error : virPidFileAcquirePathFull:409 
Failed to acquire pid file : /var/local/run/libvirt/qemu/driver.pid 
Resource temporarily unavailable 
virStateInitialize:672 : Initialization of QEMU state driver failed 
Failed to acquire pid file : /var/local/run/libvirt/qemu/driver.pid 
Resource temporarily unavailable daemon
RunStateInit:617 : Driver state initialization failed

$ /usr/local/sbin# ps ax | grep virtqemu 
3041 pts/0    Sl     0:00 virtqemud

$ /usr/local/sbin# ps ax | grep libvirt 
nothing

간단히 말해서, libvirt를 시작한 다음 virtqemu를 시작하면 첫 번째는 자동으로 닫히지 않지만 두 번째는 닫힙니다. virtqemud를 시작한 다음 libvirt를 시작하면 첫 번째는 자동으로 닫히지 않지만 두 번째는 자동으로 종료됩니다. 따라서 이 두 프로세스는 서로 호환되지 않지만 동시에 실행되어야 합니다. 그렇지 않으면 virt-manager가 전혀 작동하지 않고 가상 머신을 실행할 수 없습니다.

관련 정보