Xorg/Hardveres 3D gyorsítási útmutató
Ez a dokumentum útmutatóként szolgál a 3D-gyorsítás működésének beállításához a DRM használatával az Xorg szerverrel működő Gentoo operációs rendszert alatt.
Bevezetés
Mi az a hardveres 3D-gyorsítás, és miért van rá szükségem?
A hardveres 3D-gyorsítás esetén a háromdimenziós renderelés a videokártya grafikus processzorát használja, ahelyett hogy értékes CPU-erőforrásokat venne igénybe a 3D-képek megrajzolásához. Ezt "hardveres gyorsításnak" nevezik a "szoftveres gyorsítás" helyett, mivel hardveres 3D-gyorsítás nélkül a CPU kénytelen mindent önmaga megrajzolni a Mesa szoftveres renderelési könyvtárak segítségével, ami jelentős mennyiségű feldolgozási kapacitást igényel.
Míg az Xorg általában támogatja a 2D-s hardveres gyorsítást, gyakran hiányzik belőle a hardveres 3D-gyorsítás. A háromdimenziós hardveres gyorsítás értékes olyan helyzetekben, amelyek 3D objektumok renderelését igénylik, például játékokban, 3D CAD-ben és modellezés során.
A 3D-gyorsítás beállítása
Sok esetben mind bináris, mind nyílt forráskódú illesztőprogramok léteznek. A nyílt forráskódú illesztőprogramok előnyösebbek, mivel Linuxot használunk, és a nyílt forráskód ennek egyik alapelve. Néha a bináris illesztőprogramok az egyetlen lehetőség, különösen akkor, ha a grafikus kártya annyira új, hogy a nyílt forráskódú illesztőprogramokat még nem írták meg a funkcióinak támogatására. A bináris illesztőprogramok közé tartozik az x11-drivers/nvidia-drivers szoftvercsomag az NVIDIA grafikus kártyákhoz, az x11-drivers/xf86-video-ati szoftvercsomag (korábban x11-drivers/ati-drivers) a régebbi AMD/ATI grafikus kártyákhoz, valamint a dev-libs/amdgpu-pro-opencl szoftvercsomag az újabb AMD grafikus kártyákhoz.
Mi a DRI?
A Direct Rendering Infrastructure (Közvetlen Renderelési Infrastruktúra), más néven DRI, egy olyan keretrendszer, amely lehetővé teszi a grafikus hardverek közvetlen elérését biztonságos és hatékony módon. Ez magában foglalja az Xorg szerver, számos klienskönyvtár és a kernel módosításait. A DRI első fő felhasználási területe a gyors OpenGL implementációk létrehozása.
Mi a DRM, és hogyan kapcsolódik a hagyományos Xorg szerverhez?
A DRM (Direct Rendering Manager, Közvetlen Renderelési Menedzser) egy továbbfejlesztés az Xorg szerver számára, amely 3D-gyorsítást biztosít a grafikus kártyák számára azzal, hogy hozzáadja a közvetlen rendereléshez szükséges kernelmodult.
Cél
Ez az útmutató azok számára készült, akik nem tudják beállítani a közvetlen renderelést kizárólag az Xorg szerver használatával. A DRM a következő illesztőprogramokkal működik:
- 3dfx
- amdgpu
- amdgpu-pro (zárt forráskódú)
- intel
- matrox
- nouveau
- nvidia-drivers (zárt forráskódú)
- rage128
- radeon
- radeonhd (elavult)
- mach64
- sis300
- via
További információkért és dokumentációért látogassa meg a DRI honlapját.
Xorg szerver telepítése, és a kernel beállítása
Xorg szerver telepítése
Olvassa el a Xorg beállítási útmutatót, hogy az Xorg szervert megfelelően beállíthassa és elindíthassa.
Kernel beállítása
Derítse fel a releváns hardver specifikus jellemzőit.
root #
emerge --ask sys-apps/pciutils
root #
lspci | grep -Ei "VGA|AGP|3D"
# 00:01.0 PCI bridge: Intel Corp. 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 03)
Az eredmény eltérhet a fentebbiekben leírtaktól a különböző hardverek miatt, azonban bármilyen visszatérő adat segíthet a felhasználónak abban, hogy milyen kernelopciókat vegyen fontolóra.
Bizonyos kernelopciók szükségesek lesznek, míg mások problémákat okozhatnak. A hardverre vonatkozó specifikus források, amelyek meghatározzák, hogy melyik kernelopció milyen hardverhez használható, megtalálhatók ebben a wikiben és más helyeken is.
Lehetséges, bár valószínűtlen, hogy az adott parancs semmilyen eredményt nem ad vissza. Ebben az esetben a teljes lspci -nnk kimenet hasznos információ lehet, amelyet érdemes áttekinteni és/vagy továbbítani, amikor segítséget keres.
A megadott példában, ahol a lapkakészlet egy AGP lapkakészlet, de egy másik, amelyet a kernel nem támogat, némi siker érhető el azzal, ha a agp=try_unsupported
kernelparamétert adja meg. Ez az Intel általános rutinjait használja az AGP támogatás érdekében. Ennek a paraméternek a hozzáadásához szerkessze a boot loader beállításfájlját. Ismételten, a szükséges kernelbeállítási opciók és az elérhető boot loader paraméterek a hardver specifikációi alapján változnak.
Mielőtt bármilyen kernelopciót módosítana, szükség esetén győződjön meg arról, hogy a /usr/src/linux az előirányzott kernelre mutat.
root #
ls -dl /usr/src/linux*
lrwxrwxrwx 1 root root 19 Feb 16 16:30 /usr/src/linux -> linux-5.4.18-gentoo drwxr-xr-x 27 root root 4096 Feb 16 21:27 /usr/src/linux-4.19.103-gentoo
A szimbolikus hivatkozás másik célra történő frissítéséhez használja az alábbi parancsokat. A második parancs egy olyan argumentumot fogad, amely az első parancs kimenetében megjelenített opciók közül választható ki:
root #
eselect kernel list
root #
eselect kernel set
A szimbolikus hivatkozás ellenőrzése után a kernelopciók módosításához:
root #
cd /usr/src/linux
root #
make menuconfig
A legtöbb, ha nem az összes kernelnek ezekkel az opciókkal kell rendelkeznie. Mindenesetre az <M> jelöléssel ellátott opciók modulokként kerülnek lefordításra és szükség szerint töltődnek be, így nagyon valószínűtlen, hogy problémát okoznának, ha nem szükségesek.
Ez egy standard sys-kernel/gentoo-sources kernel használatával lett beállítva.
Processor type and features --->
<*> MTRR (Memory Type Range Register) support
Device drivers --->
Graphics support --->
<M> /dev/agpgart (AGP Support) --->
(The agpgart option is not present on 64-bit kernels;
just choose the appropriate chipset support.)
<M> Intel 440LX/BX/GX, I8xx and E7x05 support
(Enable the appropriate chipset instead of the above.)
<M> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) --->
<M> (Select the appropriate graphics card from the list)
Fordítsa le és telepítse a kernelt
root #
make && make install && make modules_install
Ne feledje beállítani a(z) grub.conf vagy a(z) lilo.conf fájlt.
Amennyiben LILO boot loadert használ, akkor adja ki a következő parancsot:
root #
lilo
Ha GRUB2 boot loadert használ, akkor adja ki a következő parancsot:
root #
grub-mkconfig -o /boot/grub/grub.cfg
Adja hozzá a megfelelő felhasználó(kat) a video csoporthoz
Ezután adja hozzá a megfelelő felhasználó(kat) a video csoporthoz:
root #
gpasswd -a $USER video
Közvetlen renderelés beállítása
Xorg szerver beállítása
Remélhetőleg a megfelelő felhasználó hozzáadása a video
csoporthoz elegendő a közvetlen renderelés engedélyezéséhez. Azonban az Xorg szervernek szüksége lehet további beállításra a /etc/X11/xorg.conf.d/ könyvtárban. Az ebben a könyvtárban létrehozott új beállításfájlokat bármilyen alfanumerikus fájlnévvel el lehet nevezni, feltéve hogy a fájlnév .conf végződéssel zárul. Nyissa meg a kedvencs szövegszerkesztőjét, és hozzon létre egy fájlt az alábbi tartalommal:
/etc/X11/xorg.conf.d/10-dri.conf
Section "Device"
Identifier "AMD Radeon"
Driver "radeon"
EndSection
Section "dri"
Mode 0666
EndSection
Cserélje le a radeon
kifejezést a megfelelő illesztőprogram nevére.
Cserélje le az AMD Radeon
kifejezést egy egyedi és leíró karakterláncra az azonosítóhoz. Ez általában a grafikus kártya neve lesz, amely a szakasz elején lett meghatározva, de lehet bármely más egyedi karakterlánc is.
Változások az automatikus modulbetöltésben
Szükséges hozzáadni a grafikus kártyája által használt modul nevét a /etc/modules-load.d/video.conf fájlhoz, hogy biztosítsa, hogy a modul automatikusan betöltődjön a rendszer indításakor.
/etc/modules-load.d/video.conf
intel-agp # Ezt cserélje ki az Ön GPU illesztőprogramjára.
Ha az
agpgart
kernelmodult modul formájában fordította le, akkor azt is hozzá kell adnia a /etc/modules-load.d/video.conf fájlhoz.3D gyorsítás tesztelése
Indítsa újra az új kernelt
Indítsa újra a számítógépét az új kernelre, és jelentkezzen be normál felhasználóként. Ideje ellenőrizni, hogy van-e közvetlen renderelés, és annak mennyire jó a minősége. A glxinfo
és a glxgears
a x11-apps/mesa-progs szoftvercsomag részei, így győződjön meg arról, hogy ez telepítve van, mielőtt megpróbálja futtatni ezeket a parancsokat.
user $
startx
Nem szükséges modulokat betölteni az illesztőprogramhoz vagy az agpgarthoz, még akkor sem, ha azokat modulként fordította le. Automatikusan betöltődnek.
user $
glxinfo | grep rendering
direct rendering: Yes
Ha a "No" választ kapja vissza, akkor nincs 3D gyorsítása.
user $
glxgears
Tesztelje a képkockák másodpercenkénti (FPS) számát az alapértelmezett méretben. A számnak jelentősen magasabbnak kell lennie, mint a DRM beállítása előtt. Ezt akkor végezze el, amikor a CPU a lehető leginkább tétlen.
Az FPS értéket korlátozhatja a képernyő frissítési sebessége, ezért tartsa ezt szem előtt, ha a
glxgears
csak körülbelül 70-100 FPS értéket jelent. A games-fps/xonotic vagy más 3D játékok jobb benchmarking eszközök, mivel ezek valós teljesítményeredményeket nyújtanak.Hozza ki a legtöbbet a közvetlen renderelésből
Ha több funkciót szeretne beállítani, akkor teljesítménybeli vagy egyéb okokból, tekintse meg a funkciómátrixot a DRI weboldalán, vagy a funkciók listáját a Sourceforge weboldalon.
Hibaelhárítás
Probléma a rendereléssel
Próbálja ki a modprobe radeon
parancsot, mielőtt elindítja az X szervert (cserélje le a radeon
kifejezést az illesztőprogram nevére). Emellett próbálja meg az agpgart modult a kernelbe építeni ahelyett, hogy modulként készítené el.
Nem sikerült betölteni az agpgart kernelmodult a startx futtatásakor
A "[drm] failed to load kernel module agpgart" hiba a startx parancs futtatása után azért következik be, mert az agpgart modulként került lefordításra a kernelbe, nem pedig önálló modulként. Ezt a hibát figyelmen kívül hagyhatja, hacsak nem okoz problémákat a rendszer működésében.
TV-Out a Radeon GPU-n
A GATOS projekt által eredetileg kifejlesztett illesztőprogramok beolvadtak az Xorg szerver kódbázisába. TV-Out-hoz nincs szükség semmi különlegesre, ugyanis a x11-drivers/xf86-video-ati szoftvercsomag tökéletesen működni fog.
Kompatibilitás az újonnan megjelent GPU-kkal
Próbálja ki a bináris illesztőprogramokat. AMD kártyák esetén használja az ati-drivers
szoftvercsomagot. Ha ezek nem támogatják, akkor használja a fbdev
illesztőprogramot. Lassú, de működik.
PCI kártya nem működik megfelelően
Hozzon létre egy beállításfájlt a /etc/X11/xorg.conf.d/ könyvtárban. Nevezze el bárhogy. A fájl kiterjesztése .conf végződésű legyen. Adja hozzá a következőket a fájlhoz:
/etc/X11/xorg.conf.d/10-pcimode.conf
ForcePCI Mode hozzáadásaSection "Device"
Option "ForcePCIMode" "True"
EndSection
Külső források
- Direct rendering (DRI) using X11-DRM HOWTO on the Gentoo forums
- Radeon 7000-9700 DRI CVS Install Guide on the Gentoo forums
- https://dri.freedesktop.org/
This page is based on a document formerly found on our main website gentoo.org.
The following people contributed to the original document: Donnie Berkholz (dberkholz) , peesh, nightmorph
They are listed here because wiki history does not allow for any external attribution. If you edit the wiki article, please do not add yourself here; your contributions are recorded on each article's associated history page.