From: Dominik Csapak <d.csapak@proxmox.com>
To: Kaiyang Wu <wukaiyang2003@gmail.com>, pve-devel@lists.proxmox.com
Cc: Kaiyang Wu <wukaiyang@loongfans.cn>
Subject: Re: [PATCH qemu-server] qemuserver: make base path of libGL and libEGL libraries architecture aware
Date: Thu, 16 Jul 2026 08:43:45 +0200 [thread overview]
Message-ID: <8c161d95-f4f9-43fe-ad17-0b60ceb9cb8e@proxmox.com> (raw)
In-Reply-To: <20260716032704.250445-1-wukaiyang@loongfans.cn>
On 7/16/26 5:27 AM, Kaiyang Wu wrote:
> 'print_vga_device' assumed x86_64 library path to look for 'libGL.so.1'
> and 'libEGL.so.1', which leads to missing libraries error regardless of
> whether 'libgl1' and 'libegl1' were installed or not, on architectures
> other than x86_64.
>
> Make base path of the libraries architecture aware to correctly locate
> the libraries on non-x86_64 architectures.
>
> Signed-off-by: Kaiyang Wu <wukaiyang@loongfans.cn>
> ---
> src/PVE/QemuServer.pm | 10 +++++++++-
> 1 file changed, 9 insertions(+), 1 deletion(-)
>
> diff --git a/src/PVE/QemuServer.pm b/src/PVE/QemuServer.pm
> index 191ae549..1d740f81 100644
> --- a/src/PVE/QemuServer.pm
> +++ b/src/PVE/QemuServer.pm
> @@ -1540,7 +1540,15 @@ sub print_vga_device {
> }
>
> if ($vga->{type} eq 'virtio-gl') {
> - my $base = '/usr/lib/x86_64-linux-gnu/lib';
> + my $base;
> + if ($arch eq 'x86_64') {
> + $base = '/usr/lib/x86_64-linux-gnu/lib';
> + } elsif ($arch eq 'aarch64') {
> + $base = '/usr/lib/aarch64-linux-gnu/lib';
> + } else {
> + die "unsupported architecture $arch for '$vga->{type}'\n";
> + }
> +
i think this is wrong because 'arch' is the guest architecture, not the
host one, but we need the library in the hosts context
so doing
my $host_arch = PVE::QemuServer::Helpers::get_host_arch();
and using that would be better IMO
also, we could probably simply interpolate that:
my $base = "/usr/lib/${host_arch}-lnux-gnu/lib";
(if that does not work because the arch string is not equivalent
for the dirs, we could have a map:
my $libs_map = {
'x86_64' => '/usr/lib/x86_64-linux-gnu/lib',
...
};
and then do:
my $base = $libs_map->{$host_arch} // die "unsupported..."
(note that the snippets are just examples and untested)
> die "missing libraries for '$vga->{type}' detected! Please install 'libgl1' and 'libegl1'\n"
> if !-e "${base}EGL.so.1" || !-e "${base}GL.so.1";
>
next prev parent reply other threads:[~2026-07-16 6:44 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-16 3:26 [PATCH qemu-server] qemuserver: make base path of libGL and libEGL libraries architecture aware Kaiyang Wu
2026-07-16 6:43 ` Dominik Csapak [this message]
2026-07-16 7:39 ` superseded: " Kaiyang Wu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=8c161d95-f4f9-43fe-ad17-0b60ceb9cb8e@proxmox.com \
--to=d.csapak@proxmox.com \
--cc=pve-devel@lists.proxmox.com \
--cc=wukaiyang2003@gmail.com \
--cc=wukaiyang@loongfans.cn \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.