all lists on lists.proxmox.com
 help / color / mirror / Atom feed
From: Kaiyang Wu <wukaiyang2003@gmail.com>
To: Dominik Csapak <d.csapak@proxmox.com>, pve-devel@lists.proxmox.com
Cc: Kaiyang Wu <wukaiyang@loongfans.cn>
Subject: superseded: [PATCH qemu-server] qemuserver: make base path of libGL and libEGL libraries architecture aware
Date: Thu, 16 Jul 2026 15:39:50 +0800	[thread overview]
Message-ID: <ffa71152-863c-4ea6-a9b3-b8f1954163d9@gmail.com> (raw)
In-Reply-To: <8c161d95-f4f9-43fe-ad17-0b60ceb9cb8e@proxmox.com>

https://lore.proxmox.com/pve-devel/20260716073544.284241-1-wukaiyang@loongfans.cn/#t

On 2026-07-16 14:43, Dominik Csapak wrote:
> 
> 
> 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";
> 
> 




      reply	other threads:[~2026-07-16  7:40 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
2026-07-16  7:39   ` Kaiyang Wu [this message]

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=ffa71152-863c-4ea6-a9b3-b8f1954163d9@gmail.com \
    --to=wukaiyang2003@gmail.com \
    --cc=d.csapak@proxmox.com \
    --cc=pve-devel@lists.proxmox.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.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal