Nessuna GLX su scheda Intel con multiseat con scheda nVidia aggiuntiva


10

Ho configurato il multiseat e il mio Xorg ha 2 layout di server. Uno è per la scheda nVidia e l'altro è per la scheda Intel. Entrambi funzionano, ma il server di visualizzazione assegnato alla scheda Intel non ha accelerazione hardware poiché il modulo DRI e GLX in uso proviene dal driver nVidia.

Quindi la mia domanda è: posso configurare i layout in qualche modo per usare il giusto DRI e GLX con ogni scheda?

Il mio Xorg.conf:

Section "ServerLayout"
    Identifier     "Default"
    Screen      0  "Screen0" 0 0
    Option         "Xinerama" "0"
EndSection

Section "ServerLayout"
    Identifier     "TV"
    Screen      0  "Screen1" 0 0
    Option         "Xinerama" "0"
EndSection

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "DELL E198WFP"
    HorizSync       30.0 - 83.0
    VertRefresh     56.0 - 75.0
    Option         "DPMS"
EndSection

Section "Monitor"
    Identifier     "Monitor1"
    VendorName     "Unknown"
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce GT 610"
EndSection

Section "Device"
    Identifier     "Device1"
    Driver         "intel"
    BusID          "PCI:0:2:0"
    Option         "AccelMethod" "uxa"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "nvidiaXineramaInfoOrder" "DFP-1"
    Option         "metamodes" "DFP-0: nvidia-auto-select +1440+0, DFP-1: nvidia-auto-select +0+0"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Section "Screen"
    Identifier     "Screen1"
    Device         "Device1"
    Monitor        "Monitor1"
    DefaultDepth    24
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

File di registro per Intel:

[    18.239] 
X.Org X Server 1.13.0
Release Date: 2012-09-05
[    18.239] X Protocol Version 11, Revision 0
[    18.239] Build Operating System: Linux 2.6.24-32-xen x86_64 Ubuntu
[    18.239] Current Operating System: Linux bytewiper 3.5.0-18-generic #29-Ubuntu SMP Fri Oct 19 10:26:51 UTC 2012 x86_64
[    18.239] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-3.5.0-18-generic root=UUID=fc0616fd-f212-4846-9241-ba4a492f0513 ro quiet splash
[    18.239] Build Date: 20 September 2012  11:55:20AM
[    18.239] xorg-server 2:1.13.0+git20120920.70e57668-0ubuntu0ricotz (For technical support please see http://www.ubuntu.com/support) 
[    18.239] Current version of pixman: 0.26.0
[    18.239]    Before reporting problems, check http://wiki.x.org
    to make sure that you have the latest version.
[    18.239] Markers: (--) probed, (**) from config file, (==) default setting,
    (++) from command line, (!!) notice, (II) informational,
    (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[    18.239] (==) Log file: "/var/log/Xorg.1.log", Time: Wed Nov 21 18:32:14 2012
[    18.239] (==) Using config file: "/etc/X11/xorg.conf"
[    18.239] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
[    18.239] (++) ServerLayout "TV"
[    18.239] (**) |-->Screen "Screen1" (0)
[    18.239] (**) |   |-->Monitor "Monitor1"
[    18.240] (**) |   |-->Device "Device1"
[    18.240] (**) Option "Xinerama" "0"
[    18.240] (==) Automatically adding devices
[    18.240] (==) Automatically enabling devices
[    18.240] (==) Automatically adding GPU devices
[    18.240] (WW) The directory "/usr/share/fonts/X11/cyrillic" does not exist.
[    18.240]    Entry deleted from font path.
[    18.240] (WW) The directory "/usr/share/fonts/X11/100dpi/" does not exist.
[    18.240]    Entry deleted from font path.
[    18.240] (WW) The directory "/usr/share/fonts/X11/75dpi/" does not exist.
[    18.240]    Entry deleted from font path.
[    18.240] (WW) The directory "/usr/share/fonts/X11/100dpi" does not exist.
[    18.240]    Entry deleted from font path.
[    18.240] (WW) The directory "/usr/share/fonts/X11/75dpi" does not exist.
[    18.240]    Entry deleted from font path.
[    18.240] (WW) The directory "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType" does not exist.
[    18.240]    Entry deleted from font path.
[    18.240] (==) FontPath set to:
    /usr/share/fonts/X11/misc,
    /usr/share/fonts/X11/Type1,
    built-ins
[    18.240] (==) ModulePath set to "/usr/lib/x86_64-linux-gnu/xorg/extra-modules,/usr/lib/xorg/extra-modules,/usr/lib/xorg/modules"
[    18.240] (II) The server relies on udev to provide the list of input devices.
    If no devices become available, reconfigure udev or disable AutoAddDevices.
[    18.240] (II) Loader magic: 0x7f6917944c40
[    18.240] (II) Module ABI versions:
[    18.240]    X.Org ANSI C Emulation: 0.4
[    18.240]    X.Org Video Driver: 13.0
[    18.240]    X.Org XInput driver : 18.0
[    18.240]    X.Org Server Extension : 7.0
[    18.240] (II) config/udev: Adding drm device (/dev/dri/card0)
[    18.241] (--) PCI: (0:0:2:0) 8086:0152:1043:84ca rev 9, Mem @ 0xf7400000/4194304, 0xd0000000/268435456, I/O @ 0x0000f000/64
[    18.241] (--) PCI:*(0:1:0:0) 10de:104a:1458:3546 rev 161, Mem @ 0xf6000000/16777216, 0xe0000000/134217728, 0xe8000000/33554432, I/O @ 0x0000e000/128, BIOS @ 0x????????/524288
[    18.241] (II) Open ACPI successful (/var/run/acpid.socket)
[    18.241] Initializing built-in extension Generic Event Extension
[    18.241] Initializing built-in extension SHAPE
[    18.241] Initializing built-in extension MIT-SHM
[    18.241] Initializing built-in extension XInputExtension
[    18.241] Initializing built-in extension XTEST
[    18.241] Initializing built-in extension BIG-REQUESTS
[    18.241] Initializing built-in extension SYNC
[    18.241] Initializing built-in extension XKEYBOARD
[    18.241] Initializing built-in extension XC-MISC
[    18.241] Initializing built-in extension SECURITY
[    18.241] Initializing built-in extension XINERAMA
[    18.241] Initializing built-in extension XFIXES
[    18.241] Initializing built-in extension RENDER
[    18.241] Initializing built-in extension RANDR
[    18.241] Initializing built-in extension COMPOSITE
[    18.241] Initializing built-in extension DAMAGE
[    18.241] Initializing built-in extension MIT-SCREEN-SAVER
[    18.241] Initializing built-in extension DOUBLE-BUFFER
[    18.241] Initializing built-in extension RECORD
[    18.241] Initializing built-in extension DPMS
[    18.241] Initializing built-in extension X-Resource
[    18.241] Initializing built-in extension XVideo
[    18.241] Initializing built-in extension XVideo-MotionCompensation
[    18.241] Initializing built-in extension XFree86-VidModeExtension
[    18.241] Initializing built-in extension XFree86-DGA
[    18.241] Initializing built-in extension XFree86-DRI
[    18.241] Initializing built-in extension DRI2
[    18.241] (II) LoadModule: "glx"
[    18.241] (II) Loading /usr/lib/x86_64-linux-gnu/xorg/extra-modules/libglx.so
[    18.247] (II) Module glx: vendor="NVIDIA Corporation"
[    18.247]    compiled for 4.0.2, module version = 1.0.0
[    18.247]    Module class: X.Org Server Extension
[    18.247] (II) NVIDIA GLX Module  310.19  Thu Nov  8 01:12:43 PST 2012
[    18.247] Loading extension GLX
[    18.247] (II) LoadModule: "intel"
[    18.248] (II) Loading /usr/lib/xorg/modules/drivers/intel_drv.so
[    18.248] (II) Module intel: vendor="X.Org Foundation"
[    18.248]    compiled for 1.13.0, module version = 2.20.13
[    18.248]    Module class: X.Org Video Driver
[    18.248]    ABI class: X.Org Video Driver, version 13.0
[    18.248] (II) intel: Driver for Intel Integrated Graphics Chipsets: i810,
    i810-dc100, i810e, i815, i830M, 845G, 854, 852GM/855GM, 865G, 915G,
    E7221 (i915), 915GM, 945G, 945GM, 945GME, Pineview GM, Pineview G,
    965G, G35, 965Q, 946GZ, 965GM, 965GME/GLE, G33, Q35, Q33, GM45,
    4 Series, G45/G43, Q45/Q43, G41, B43, B43, Clarkdale, Arrandale,
    Sandybridge Desktop (GT1), Sandybridge Desktop (GT2),
    Sandybridge Desktop (GT2+), Sandybridge Mobile (GT1),
    Sandybridge Mobile (GT2), Sandybridge Mobile (GT2+),
    Sandybridge Server, Ivybridge Mobile (GT1), Ivybridge Mobile (GT2),
    Ivybridge Desktop (GT1), Ivybridge Desktop (GT2), Ivybridge Server,
    Ivybridge Server (GT2), Haswell Desktop (GT1), Haswell Desktop (GT2),
    Haswell Desktop (GT2+), Haswell Mobile (GT1), Haswell Mobile (GT2),
    Haswell Mobile (GT2+), Haswell Server (GT1), Haswell Server (GT2),
    Haswell Server (GT2+), Haswell SDV Desktop (GT1),
    Haswell SDV Desktop (GT2), Haswell SDV Desktop (GT2+),
    Haswell SDV Mobile (GT1), Haswell SDV Mobile (GT2),
    Haswell SDV Mobile (GT2+), Haswell SDV Server (GT1),
    Haswell SDV Server (GT2), Haswell SDV Server (GT2+),
    Haswell ULT Desktop (GT1), Haswell ULT Desktop (GT2),
    Haswell ULT Desktop (GT2+), Haswell ULT Mobile (GT1),
    Haswell ULT Mobile (GT2), Haswell ULT Mobile (GT2+),
    Haswell ULT Server (GT1), Haswell ULT Server (GT2),
    Haswell ULT Server (GT2+), Haswell CRW Desktop (GT1),
    Haswell CRW Desktop (GT2), Haswell CRW Desktop (GT2+),
    Haswell CRW Mobile (GT1), Haswell CRW Mobile (GT2),
    Haswell CRW Mobile (GT2+), Haswell CRW Server (GT1),
    Haswell CRW Server (GT2), Haswell CRW Server (GT2+),
    ValleyView PO board
[    18.248] (++) using VT number 8

[    18.593] (II) intel(0): using device path '/dev/dri/card0'
[    18.593] (**) intel(0): Depth 24, (--) framebuffer bpp 32
[    18.593] (==) intel(0): RGB weight 888
[    18.593] (==) intel(0): Default visual is TrueColor
[    18.593] (**) intel(0): Option "AccelMethod" "uxa"
[    18.593] (--) intel(0): Integrated Graphics Chipset: Intel(R) Ivybridge Desktop (GT1)
[    18.593] (**) intel(0): Relaxed fencing enabled
[    18.593] (**) intel(0): Wait on SwapBuffers? enabled
[    18.593] (**) intel(0): Triple buffering? enabled
[    18.593] (**) intel(0): Framebuffer tiled
[    18.593] (**) intel(0): Pixmaps tiled
[    18.593] (**) intel(0): 3D buffers tiled
[    18.593] (**) intel(0): SwapBuffers wait enabled

...

[    20.312] (II) Module fb: vendor="X.Org Foundation"
[    20.312]    compiled for 1.13.0, module version = 1.0.0
[    20.312]    ABI class: X.Org ANSI C Emulation, version 0.4
[    20.312] (II) Loading sub module "dri2"
[    20.312] (II) LoadModule: "dri2"
[    20.312] (II) Module "dri2" already built-in
[    20.312] (==) Depth 24 pixmap format is 32 bpp
[    20.312] (II) intel(0): [DRI2] Setup complete
[    20.312] (II) intel(0): [DRI2]   DRI driver: i965
[    20.312] (II) intel(0): Allocated new frame buffer 1920x1080 stride 7680, tiled
[    20.312] (II) UXA(0): Driver registered support for the following operations:
[    20.312] (II)         solid
[    20.312] (II)         copy
[    20.312] (II)         composite (RENDER acceleration)
[    20.312] (II)         put_image
[    20.312] (II)         get_image
[    20.312] (==) intel(0): Backing store disabled
[    20.312] (==) intel(0): Silken mouse enabled
[    20.312] (II) intel(0): Initializing HW Cursor
[    20.312] (II) intel(0): RandR 1.2 enabled, ignore the following RandR disabled message.
[    20.313] (**) intel(0): DPMS enabled
[    20.313] (==) intel(0): Intel XvMC decoder enabled
[    20.313] (II) intel(0): Set up textured video
[    20.313] (II) intel(0): [XvMC] xvmc_vld driver initialized.
[    20.313] (II) intel(0): direct rendering: DRI2 Enabled
[    20.313] (==) intel(0): hotplug detection: "enabled"
[    20.332] (--) RandR disabled

[    20.335] (EE) Failed to initialize GLX extension (Compatible NVIDIA X driver not found)

[    20.335] (II) intel(0): Setting screen physical size to 508 x 285
[    20.338] (II) XKB: reuse xkmfile /var/lib/xkb/server-B20D7FC79C7F597315E3E501AEF10E0D866E8E92.xkm
[    20.340] (II) config/udev: Adding input device Power Button (/dev/input/event1)
[    20.340] (**) Power Button: Applying InputClass "evdev keyboard catchall"
[    20.340] (II) LoadModule: "evdev"
[    20.340] (II) Loading /usr/lib/xorg/modules/input/evdev_drv.so

1
Se sei su 18.04, questo dovrebbe ora Just Work (TM) grazie al supporto glvnd. Nelle versioni precedenti, era necessario fare confusione con le variabili di ambiente LD_PRELOAD per fare in modo che i programmi usassero il giusto libGL ma questo non è ora necessario: D
Léo Lam

1
@ LéoLam ci sono voluti solo 5 anni. Meglio tardi che mai suppongo.
MeanEYE,

Risposte:


7

Bene, ho trovato una soluzione, ma c'è un bug che impedisce all'accelerazione hardware di funzionare sulle GPU Intel al momento in Ubuntu 12.10 con la nuova libreria Mesa 9.0.1.

In breve, il problema era con il caricamento di GLX. nVidia spingerebbe il proprio modulo GLX e calpesterebbe le dita dei piedi di Intel.

Ho trovato una soluzione notando questa riga:

[    18.240] (==) ModulePath set to "/usr/lib/x86_64-linux-gnu/xorg/extra-modules,/usr/lib/xorg/extra-modules,/usr/lib/xorg/modules"

Vale a dire i moduli situati in /usr/lib/x86_64-linux-gnu/xorg/extra-modulessono tutti specifici di nVidia. Quindi ho configurato LightDM per utilizzare due xorg.conffile. In Intel uno, ho impostato manualmente ModulePathescludendo la directory nVidia. Ciò ha comportato il caricamento del modulo GLX corretto.

Il mio /etc/lightdm/lightdm.conffile è simile al seguente:

[SeatDefaults]
user-session=ubuntu
greeter-session=unity-greeter
allow-guest=false

[Seat:0]
xserver-layout=Default
xserver-config=xorg.conf.nvidia

[Seat:1]
xserver-layout=TV
xserver-config=xorg.conf.intel

Linee aggiunte a xorg.conf.intel:

Section "Files"
    ModulePath     "/usr/lib/xorg/extra-modules"
    ModulePath     "/usr/lib/xorg/modules"
EndSection

1

Da parte mia, con Ubuntu 14.04, i percorsi sono diversi e Nvidia override di driver proprietari libglx.soin /usr/lib/xorg/modules/extensions/libglx.so.

Per risolvere il problema, ho duplicato /usr/lib/xorg/modulesin /usr/lib/xorg/modules-nvidia e quindi reinstallare il processore Intel accogliente libglx.socon:

sudo apt-get install --reinstall xserver-xorg-core

Questo ripristina l'originale libglx.so. Sul xorg.conf.nvidia, aggiungo il percorso ai moduli validi:

Section "Files" ModulePath "/usr/lib/xorg/modules-nvidia" EndSection

Inoltre, in /etc/lightdm/lightdm.confdevo aggiungere: xserver-command=/usr/bin/X -sharevtsnella [Seat:1]sezione. Questo consiglio è stato trovato qui .

Mille grazie a MeanEYE che mi ha indicato nel modo giusto.


1

Quindi ho fatto un po 'di ricerche e ho scoperto che ci sono diversi modi in cui è possibile ottenere configurazioni Multiseat (multi-stazione, multi-terminale ecc.).

1) Il metodo che consiglierei, poiché utilizza il tuo Xorg standard e un driver del kernel integrato, sta usando evdev . Ecco una guida su come impostare una configurazione multiseat per 4 GPU e 4 monitor usando evdev. La guida è pensata per le GPU Debian Sarge e SiS, ma penso che si possano dedurre molte informazioni molto utili da questa guida: https://en.wikibooks.org/wiki/Multiterminal_with_evdev

2) Un altro metodo sta usando Xypher , un altro server X Windows basato su KDrive. Non sono sicuro che questa sia la strada che vuoi percorrere, tuttavia ecco comunque quella guida: https://en.wikibooks.org/wiki/it:Multiterminal_with_Xephyr

3) Un'altra opzione è quella di utilizzare uno strumento chiamato Multiseat Display Manager (MDM) che promette di automatizzare l'intero processo di configurazione per te, tuttavia, non sembra essere aggiornato, quindi non lo consiglio. Puoi trovarlo facilmente con Google come ultima risorsa, tuttavia.

Non sono a conoscenza di ciò che hai o non hai già fatto nella tua configurazione, quindi la cosa migliore da fare è leggere la guida di evdev e provare a identificare i passaggi che non hai ancora fatto. Le maggiori differenze che sto vedendo è

A) Nell'esempio xorg.conf, c'è solo 1 sezione Screen e ServerLayout. Gli schermi aggiuntivi e ServerLayout sono definiti in una conf separata tutti insieme: xorg.conf.probe

B) Inoltre, tutti i dispositivi sono esplicitamente referenziati dai loro BusID, che sono stati ottenuti usando lspci e

C) Gli interrupt sono disabilitati su irq 10.

Spero che questo ti aiuti a metterti in moto, buona fortuna!


Va bene, questo aiuta molto. Proverò con 2 xorg.conffile diversi e spero che funzioni.
MeanEYE,

Questo non risolve ancora il mio problema con il caricamento di nVidia GLX in caso di scheda Intel.
MeanEYE,

0

In Ubuntu 16.04 avevo bisogno di aggiornare il /usr/local/bin/Xwrapper con:

exec /usr/bin/Xorg -modulepath '/usr/lib/xorg/extra-modules,/usr/lib/xorg/modules' "$@"

/etc/X11/Xsession.d/00ldlibrarypuò testare la $XDG_SEATvariabile e imposta export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/mesa:/usr/lib/i386-linux-gnu/mesa/solo per la scheda Intel.


0

Nel 18.04, il supporto glvnd consente agli utenti di installare sia i driver Mesa che i driver Nvidia proprietari molto facilmente , senza dover fare confusione con LD_PRELOAD! Tutte le cose variabili d'ambiente e gli script wrapper ora non sono necessari.


Poiché questo non è taggato con una versione specifica di Ubuntu e le risposte esistenti non hanno funzionato completamente con il mio sistema (Ubuntu 15.10), sto pubblicando questa risposta che utilizza logind.

Fondamentalmente, per far funzionare GLX e libGL, è necessario configurare sia il server X che la sessione utente per utilizzare l'implementazione corretta di libGL, a seconda del posto.

Pertanto è necessario uno script wrapper per LightDM per avviare X e uno script Xsession da impostare in LD_LIBRARY_PATHmodo che la sessione utilizzi il libGL corretto.


In /etc/X11/Xsession.d/00ldlibrary:

#!/bin/bash

if ps aux | grep "/usr/local/bin/X $DISPLAY" | grep -q seat1; then
    export LD_LIBRARY_PATH=/usr/lib/nvidia-352:/usr/lib32/nvidia-352
fi
if ps aux | grep "/usr/local/bin/X $DISPLAY" | grep -q seat0; then
    export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/mesa:/usr/lib/i386-linux-gnu/mesa/
fi

(supponendo che seat1 usi nvidia e seat0 mesa)


Allo stesso modo, devi avvolgere X server ( /usr/local/bin/X):

#!/bin/bash

if grep -q seat1 <<<$*; then
    export LD_LIBRARY_PATH=/usr/lib/nvidia-352
    echo "Detected seat1, using nvidia-352 libs"
fi
if grep -q seat0 <<<$*; then
    export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/mesa
    echo "Detected seat0, using mesa libs"
fi

exec /usr/bin/Xorg "$@"

Infine, dovrai configurare LightDM per utilizzarli in /etc/lightdm/lightdm.conf:

[Seat:*]
# needed to use the correct libraries for mesa/nvidia,
# along with a Xsession.d script (00ldlibrary)
xserver-command=/usr/local/bin/X
session-setup-script=/etc/X11/Xsession.d/00ldlibrary

Per maggiori dettagli, vedere il mio repository multiseat-mesa-nvidia che ha più dettagli e ha i file e gli script di configurazione completi.


-1

Sto usando Arch Linux, ma questo mi ha aiutato un po 'a caricare sia la mia Intel che i miei driver proprietari di Nvidia gl/vaapi/vdpau.

Tutto quello che devi fare (domande e risposte):

Installa proprietario nvidia-utils.

Copia /usr/lib/xorg/modulesin/usr/lib/xorg/modules_nvidia

Scaricare e scompattare l'ultima libva-intel-driver, mesa-vdpau, mesa, mesa-libgl, e xorg-servercome pacchetti che corrispondono ai tuoi architettura in una directory separata. Quindi cp -r(come root / sudo) il contenuto di "separate directory"/usr/libqualcosa di simile /usr/lib_intele "separate directory"/usr/lib/xorg/modules/*della tua /usr/lib/xorg/modulesdirectory reale (sovrascrittura).

E

echo "/usr/lib_intel" > /etc/ld.conf.d/intel_glx.conf
ldconfig

Riavvia X-Servers, provaglxinfo

Ciò si autodistruggerà ovviamente sugli aggiornamenti nvidia.

Ho scoperto che questo non funziona al riavvio.

Hack molto migliore:

Non creare un file ld.so.conf.d /. Invece, aggiungi quanto segue a / usr / bin / X:

PREV_LD_LIBRARY_PATH=$LD_LIBRARY_PATH
if [[ "$@" == *"vt7"* ]]
then
export LD_LIBRARY_PATH=/usr/lib_intel;$PREV_LD_LIBRARY_PATH
export LD_PRELOAD=/usr/lib_intel/libGL.so
fi

cambia "vt7" in qualunque cosa il tuo display manager usi per avviare il tuo x-server intel (: 0,: ​​2, vt7, vt8, isolatodevice = ...)

Naturalmente, puoi anche copiare / usr / bin / X in / usr / bin / Xintel e modificarlo invece, puntando il tuo wm su questo file (kdm 'ServerCmd').

Quindi, modifica o crea un nuovo file di sessione, ad esempio / usr / bin / startkde (nessun controllo per DISPLAY #!), Aggiungendo:

export LD_LIBRARY_PATH=/usr/lib_intel;$PREV_LD_LIBRARY_PATH
export LD_PRELOAD=/usr/lib_intel/libGL.so

In questo modo, non è nemmeno necessario sovrascrivere nulla. rm'ing la directory / usr / lib_intel e reimpostare i 2 file modificati è tutto ciò che devi fare per rimuovere di nuovo questo hack.


Ubuntu è abbastanza diverso da Arch Linux, quindi sebbene l'idea generale sia buona ( LD_LIBRARY_PATH), non funzionerà su un sistema Ubuntu.
Léo Lam,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.