Немає GLX на картці Intel з мультисеантом із додатковою карткою nVidia


10

У мене налаштовано багатосезонний режим, і мій Xorg має 2 макети сервера. Один призначений для nVidia, а інший - для Intel. Вони обидва працюють, але сервер дисплея, призначений для картки Intel, не має апаратного прискорення, оскільки DRI та GLX модуль використовується від драйвера nVidia.

Отже, моє запитання полягає в тому, чи можу я налаштувати макети якось використовувати правильні DRI та GLX для кожної карти?

Мій 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

Файл журналу для 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
Якщо ви перебуваєте 18.04, тепер це має бути Just Work (TM) завдяки підтримці glvnd. У старих версіях вам потрібно було возитися зі змінними середовища LD_PRELOAD, щоб змусити програми використовувати правильний libGL, але це зараз непотрібно: D
Léo Lam

1
@ LéoLam пройшло всього 5 років. Краще пізно, ніж ніколи я гадаю.
MeanEYE

Відповіді:


7

Гаразд, тому знайшли рішення, але є помилка, яка заважає апаратному прискоренню працювати на Intel GPU на даний момент в Ubuntu 12.10 з новою бібліотекою Mesa 9.0.1.

Словом, проблема була з завантаженням GLX. nVidia підштовхне власний модуль GLX та наступить на ноги Intel.

Я знайшов рішення, помітивши цей рядок:

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

А саме модулі, розташовані в /usr/lib/x86_64-linux-gnu/xorg/extra-modulesусіх, є специфічними для nVidia. Тому я налаштував LightDM використовувати два xorg.confфайли. В Intel One я встановив вручну ModulePathвиключаючи каталог nVidia. Це призвело до завантаження належного модуля GLX.

Мій /etc/lightdm/lightdm.confфайл виглядає приблизно так:

[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

Рядки додаються до xorg.conf.intel:

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

1

З мого боку, з Ubuntu 14.04, шляхи різні і Nvidia пропріетарний драйвер перевизначення libglx.soв /usr/lib/xorg/modules/extensions/libglx.so.

Щоб вирішити цю проблему, я дублювати /usr/lib/xorg/modulesв , /usr/lib/xorg/modules-nvidia а потім переустановити Intel дружній libglx.soз:

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

Це відновить оригінал libglx.so. Після цього xorg.conf.nvidiaя додаю шлях до дійсних модулів:

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

Також у, /etc/lightdm/lightdm.confя повинен додати: xserver-command=/usr/bin/X -sharevtsпід [Seat:1]розд. Цю пораду знайшли тут .

Велике спасибі MeanEYE, який вказує на мене правильним чином.


1

Тож я трохи провів дослідження і виявив, що існує декілька різних способів, за допомогою яких можна досягти конфігурацій мультисеансу (мультистанція, мультитермінал тощо).

1) Я рекомендував би метод, оскільки він використовує ваш стандартний Xorg та вбудований драйвер ядра, використовуючи evdev . Ось посібник про те, як налаштувати конфігурацію багатосезонних процесорів 4 та монітора за допомогою evdev. Посібник призначений для графічних процесорів Debian Sarge та SiS, але, думаю, ви можете отримати багато корисної інформації з цього посібника: https://en.wikibooks.org/wiki/Multiterminal_with_evdev

2) Іншим методом є використання Xypher , іншого сервера X Windows на базі KDrive. Я не впевнений, що це маршрут, яким ви хочете пройти, проте ось цей посібник все одно: https://en.wikibooks.org/wiki/en:Multiterminal_with_Xephyr

3) Ще одним варіантом є використання інструменту під назвою Multiseat Display Manager (MDM), який обіцяє автоматизувати весь процес налаштування для вас, однак він, здається, не оновлюється, тому я не рекомендую його. Однак це можна легко знайти в Google як крайній захід.

Я не знаю, що ви маєте чи ще не зробили зі своєю конфігурацією, тому найкраще зробити, щоб прочитати посібник evdev і спробувати визначити кроки, які ви ще не зробили. Найбільші відмінності я бачу

A) У прикладі xorg.conf є лише 1 розділ "Екран" та "Серверне макет". Додаткові екрани та ServerLayout визначаються в окремому конфлікті разом: xorg.conf.probe

В) Крім того, на всі пристрої прямо посилаються їх BusID, які були отримані за допомогою lspci та

C) Переривання вимкнено на irq 10.

Сподіваємось, це допоможе вам встати і працювати, удачі!


Гаразд, це дуже допомагає. Я спробую з двома різними xorg.confфайлами і, сподіваюсь, змусить його працювати.
MeanEYE

Це все ще не вирішує мою проблему із завантаженням nVidia GLX на випадок картки Intel.
MeanEYE

0

У Ubuntu 16.04 мені потрібно було оновити /usr/local/bin/Xобгортку на:

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

/etc/X11/Xsession.d/00ldlibraryможе перевірити $XDG_SEATзмінну та встановлює export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/mesa:/usr/lib/i386-linux-gnu/mesa/лише для картки Intel.


0

У 18.04 підтримка glvnd дозволяє користувачам встановлювати як Mesa, так і фірмові драйвери Nvidia дуже легко , не возившись з LD_PRELOAD! Усі речі із змінною середовищем та сценарії обгортки тепер непотрібні.


Оскільки це не позначено конкретною версією Ubuntu, а існуючі відповіді не повністю працюють з моєю системою (Ubuntu 15.10), я публікую цю відповідь, яка використовує logind.

В основному, щоб змусити GLX та libGL працювати, вам потрібно налаштувати і сервер X, і сеанс користувача, щоб використовувати правильну реалізацію libGL, залежно від місця.

Тому вам потрібен сценарій обгортки для LightDM для запуску X, а сценарій Xsession для встановлення LD_LIBRARY_PATHтаким чином, щоб сеанс використовував правильний libGL.


В /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

(якщо припустити, що seat1 використовує nvidia та seat0 mesa)


Аналогічно вам потрібно обернути X-сервер ( /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 "$@"

Нарешті, вам потрібно буде налаштувати LightDM, щоб використовувати їх у /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

Для отримання більш детальної інформації дивіться мою репутацію multiseat-mesa-nvidia repo, яка містить більше деталей і містить цілі файли конфігурації та сценарії.


-1

Я використовую Arch linux, але це трохи допомогло мені отримати як мої Intel, так і мої Nvidia-фірмові драйвери, завантажені gl/vaapi/vdpauфункціоналом.

Все, що вам потрібно зробити (Q & D):

Встановіть фірмові nvidia-utils.

Скопіювати /usr/lib/xorg/modulesв/usr/lib/xorg/modules_nvidia

Завантажити і розпакувати останній libva-intel-driver, mesa-vdpau, mesa, mesa-libgl, і в xorg-serverвигляді пакетів , встановлених архітектуру в окремому каталозі. Потім cp -r(як root / sudo) вміст "separate directory"/usr/libчогось схожого /usr/lib_intelта "separate directory"/usr/lib/xorg/modules/*на ваш фактичний /usr/lib/xorg/modulesкаталог (перезапис).

І

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

Перезапустіть X-Servers, спробуйтеglxinfo

Це, безумовно, знищить звичайно оновлення nvidia.

Я з’ясував, що це не працює при перезавантаженні.

Набагато краще зламати:

Не створюйте файл ld.so.conf.d /. Замість цього додайте до / 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

змінити "vt7" на те, що ваш менеджер дисплеїв використовує для запуску Intel x-сервера (: 0,: ​​2, vt7, vt8, isolatodevice = ...)

Звичайно, ви також можете скопіювати / usr / bin / X в / usr / bin / Xintel і відредагувати це замість цього, вказуючи свій wm на цей файл (kdm 'ServerCmd').

Потім відредагуйте або створіть новий файл вашого сеансу, тобто / usr / bin / startkde (не перевіряючи наявність DISPLAY #!), Додавши:

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

Таким чином, вам навіть не потрібно нічого перезаписувати. rm'ing каталогу / usr / lib_intel та скидання 2-х відредагованих файлів - все, що потрібно зробити, щоб знову зняти цей злом.


Ubuntu сильно відрізняється від Arch Linux, тому хоча загальна ідея хороша ( LD_LIBRARY_PATH), вона не працюватиме в системі Ubuntu.
Лео Лам
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.