Essendo il mio primo how-to, spero che sia esaustivo ma sopratutto efficace. Quindi chiunque trovi errori ed imprecisioni è tenuto a farmelo sapere. (ferenkileen@slacky.it) Devo naturalmente avvisarvi che la procedura da me effettuata potrebbe non essere valida per tutti. Se alla fine della procedura descritta il Direct rendering non fosse abilitato e se nella sfiga più totale vi si spapocchia il computer son cavoletti vostri. Anche se spero proprio che questo non accada... :-) Voglio anche farvi notare che dopo l'installazione del pacchetto 3ddesktop l'accelerazione grafica procedeva a scatti. Togliendolo, tutto ha reiniziato a funzionare.
Versione Xserver: X11-6.8.1 Versione Kernel: (2.4.26) & 2.6.7
In questo caso si suppone di iniziare con il kernel di default di slackware (2.4.26) per poi compilare un kernel 2.6.7 per ottenere il tanto agognato direct rendering.
In primo luogo è necessario abilitare in xorg.conf i driver appropriati quindi, per chi non lo avesse ancora fatto:
# **********************************************************************
# Graphics device section
# **********************************************************************
Section "Device"
Identifier "igp320m" (chiamami come vuoi, Baby!)
Driver "radeon"
#Option "FastVram" (questa opzione l'ho trovata sui tips&tricks di ziobuuda.net
dovrebbe in un certo senso overclockkare la scheda video, non so se sia realmente utile)
#VideoRam 131072 (in questa sezione potete decidere quanta ram dedicare alla scheda video, oppure decidetelo voi dal bios)
# Insert Clocks lines here if appropriate
EndSection
NOTA: Per evitare di bloccare tutto bisogna che in Screen Section il device si chiami nello stesso modo con cui avete nominato l'identifier e comunque non necessariamente igp320m, quindi date sfogo alla vostra fantasia ma non inserite spazi.
per capirci deve risultare così:
# **********************************************************************
# Screen sections
# **********************************************************************
Section "Screen"
Identifier "Screen 1"
device "igp320m" (chiamami come vuoi, Baby!)
Monitor "MyMonitor"
DefaultDepth 24
Naturalmente poi dovrete aggiungere ancora due cosettine:
in Section "Module"
dovete aggiungere (prima di EndSection naturalmente):
# This loads the GLX module
Load "glx"
# This loads the DRI module
Load "dri"
ed al fondo di xorg.conf (in questo caso dopo l'ultimo Endsection):
Section "DRI"
Mode 0666
EndSection
Fin qui nulla di nuovo.
Infatti se provate a riavviare non dovrebbe succedere nulla di particolare giusto? Peccato che il comando glxinfo dia ancora:
direct rendering: No
(oppure tutto funge alla grande se avete un kernel 2.6.X già ben configurato)
andando a zonzo per i file di log però ho trovato una cosa interessante in Xlog0.log:
(EE) RADEON(0): [dri] RADEONDRIScreenInit failed because of a version mismatch. [dri] radeon.o kernel module version is 1.7.0 but version 1.10.0 or newer is needed. [dri] Disabling DRI.
A questo punto, per merito di una illuminante affermazione di useless, ho capito che era necessario caricare dei moduli più recenti dal kernel. Quindi che ho fatto? Ho compilato un kernel 2.6.7 ed al riavvio il direct rendering era attivo.
Naturalmente non ha senso spiegare come ricompilare il kernel, visto che c'è una fantastica guida che vi aspetta nella sezione HOWTO. Come consiglia l'HOWTO sopracitato, vi conviene partire dal .config che PJV fornisce nel secondo cd e se non volete buttarvi in voli pindarici non modificarlo per niente, chissà magari il DR parte lo stesso..... Andiamo più nello specifico, quali sono i moduli da caricare?
La sezione Hardware configuration deve risultare così:
# # Hardware configuration # CONFIG_FT_STD_FDC=y # CONFIG_FT_MACH2 is not set # CONFIG_FT_PROBE_FC10 is not set # CONFIG_FT_ALT_FDC is not set CONFIG_FT_FDC_THR=8 CONFIG_FT_FDC_MAX_RATE=2000 CONFIG_FT_ALPHA_CLOCK=0 CONFIG_AGP=m # CONFIG_AGP_ALI is not set CONFIG_AGP_ATI=m # CONFIG_AGP_AMD is not set # CONFIG_AGP_AMD64 is not set # CONFIG_AGP_INTEL is not set # CONFIG_AGP_INTEL_MCH is not set # CONFIG_AGP_NVIDIA is not set # CONFIG_AGP_SIS is not set # CONFIG_AGP_SWORKS is not set # CONFIG_AGP_VIA is not set # CONFIG_AGP_EFFICEON is not set CONFIG_DRM=y # CONFIG_DRM_TDFX is not set # CONFIG_DRM_GAMMA is not set # CONFIG_DRM_R128 is not set CONFIG_DRM_RADEON=m # CONFIG_DRM_MGA is not set # CONFIG_DRM_SIS is not set
La sezione Graphics support deve risultare così:
# # Graphics support # CONFIG_FB=y # CONFIG_FB_PM2 is not set # CONFIG_FB_CYBER2000 is not set # CONFIG_FB_ASILIANT is not set # CONFIG_FB_IMSTT is not set CONFIG_FB_VGA16=m CONFIG_FB_VESA=y CONFIG_VIDEO_SELECT=y # CONFIG_FB_HGA is not set # CONFIG_FB_RIVA is not set # CONFIG_FB_MATROX is not set # CONFIG_FB_RADEON_OLD is not set CONFIG_FB_RADEON=m CONFIG_FB_RADEON_I2C=y # CONFIG_FB_RADEON_DEBUG is not set # CONFIG_FB_ATY128 is not set # CONFIG_FB_ATY is not set # CONFIG_FB_SIS is not set # CONFIG_FB_NEOMAGIC is not set # CONFIG_FB_KYRO is not set # CONFIG_FB_3DFX is not set # CONFIG_FB_VOODOO1 is not set # CONFIG_FB_TRIDENT is not set # CONFIG_FB_VIRTUAL is not set
Anche la sezione I2C deve essere modificata, naturalmente in questo caso in base al vostro sistema. La mia è così:
# # I2C support # CONFIG_I2C=m CONFIG_I2C_CHARDEV=m # # I2C Algorithms # CONFIG_I2C_ALGOBIT=m CONFIG_I2C_ALGOPCF=m # # I2C Hardware Bus support (dipende da che cosa avete voi, eventualmente caricate tutto come modulo) # CONFIG_I2C_ALI1535=m CONFIG_I2C_ALI1563=m CONFIG_I2C_ALI15X3=m # CONFIG_I2C_AMD756 is not set # CONFIG_I2C_AMD8111 is not set # CONFIG_I2C_ELEKTOR is not set # CONFIG_I2C_I801 is not set # CONFIG_I2C_I810 is not set CONFIG_I2C_ISA=m # CONFIG_I2C_NFORCE2 is not set # CONFIG_I2C_PARPORT_LIGHT is not set # CONFIG_I2C_PIIX4 is not set # CONFIG_I2C_PROSAVAGE is not set # CONFIG_I2C_SAVAGE4 is not set # CONFIG_SCx200_ACB is not set # CONFIG_I2C_SIS5595 is not set # CONFIG_I2C_SIS630 is not set # CONFIG_I2C_SIS96X is not set # CONFIG_I2C_VIA is not set # CONFIG_I2C_VIAPRO is not set # CONFIG_I2C_VOODOO3 is not set # # Hardware Sensors Chip support # CONFIG_I2C_SENSOR=m CONFIG_SENSORS_ADM1021=m CONFIG_SENSORS_ASB100=m CONFIG_SENSORS_DS1621=m CONFIG_SENSORS_FSCHER=m CONFIG_SENSORS_GL518SM=m CONFIG_SENSORS_IT87=m CONFIG_SENSORS_LM75=m CONFIG_SENSORS_LM78=m CONFIG_SENSORS_LM80=m CONFIG_SENSORS_LM83=m CONFIG_SENSORS_LM85=m CONFIG_SENSORS_LM90=m CONFIG_SENSORS_MAX1619=m CONFIG_SENSORS_VIA686A=m CONFIG_SENSORS_W83781D=m CONFIG_SENSORS_W83L785TS=m CONFIG_SENSORS_W83627HF=m # # Other I2C Chip support # CONFIG_SENSORS_EEPROM=m CONFIG_SENSORS_PCF8574=m CONFIG_SENSORS_PCF8591=m CONFIG_SENSORS_RTC8564=m # CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEBUG_ALGO is not set # CONFIG_I2C_DEBUG_BUS is not set # CONFIG_I2C_DEBUG_CHIP is not set
Al termine della (ri)compilazione, al riavvio tutto dovrebbe funzionare ed il comando glxinfo darà:
direct rendering: Yes
il comando glxgears recita:
1414 frames in 5.0 seconds = 282.800 FPS con rotellina davanti 1705 frames in 5.0 seconds = 341.000 FPS con rotellina davanti 21697 frames in 5.0 seconds = 4339.400 FPS con rotellina nascosta 24883 frames in 5.0 seconds = 4976.600 FPS con rotellina nascosta 24858 frames in 5.0 seconds = 4971.600 FPS con rotellina nascosta 22176 frames in 5.0 seconds = 4435.200 FPS con rotellina nascosta 21248 frames in 5.0 seconds = 4249.600 FPS conrotellina nascosta 17172 frames in 5.0 seconds = 3434.400 FPS con rotellina nascosta 20573 frames in 5.0 seconds = 4114.600 FPS con rotellina nascosta 17556 frames in 5.0 seconds = 3511.200 FPS con rotellina nascosta 18023 frames in 5.0 seconds = 3604.600 FPS con rotellina nascosta 5680 frames in 5.0 seconds = 1136.000 FPS con quake II in esecuzione 9086 frames in 5.0 seconds = 1817.200 FPS con quake II in esecuzione 12443 frames in 5.0 seconds = 2488.600 FPS con quake II in esecuzione 18254 frames in 5.0 seconds = 3650.800 FPS con quake II in esecuzione 22993 frames in 5.0 seconds = 4598.600 FPS con rotellina nascosta 24575 frames in 5.0 seconds = 4915.000 FPS con rotellina nascosta 23868 frames in 5.0 seconds = 4773.600 FPS con rotellina nascosta Pipe rotta
Spero che questo documento vi sia stato d'aiuto!
Cordialmente, Ferenkileen
Autore: Ferenkileen