| Escrit per EliziR,
el 28-07-2004 01:00
|
Visites : 24740 |
Si tens una ATI i li vols ficar acceleració sota Debian (tant unstable, testing o estable), aquí podràs trobar un article de com posar-li. La veritat és que fa temps que tinc la ATI, però fins ara gairebé no havia probat d'instalar-li l'acceleració (i és que s'acosta la Game-party!!!). Espero que algú se'n pugui beneficiar, i no només jo :P
0 - Introducció Si teniu una ATI, segurament comprendreu que és una mica complicat ficar-li acceleració sota GNU/Linux. I un dels motius és precisament que la mateixa casa, no dóna gaire suport ni facilitats per a controladors de GNU/Linux (nVidia no fa tant que va començar a implicar-s'hi més). Per això, explicaré com ho vaig fer jo per configurar l’acceleració de la meva ATI Radeon 9600 sota Debian. Aquest article no solament explica com fer-ho per la 9600, sinó que serveix per a: ATI Radeon 8500, 9000, 9100, 9200, 9500, 9600, 9700, 9800, Mobility M9, M9+, M10 i la ATI FireGL 8700, 8800, E1, E2, X1, X2, Z1 Per cert, és indiferent quin tipus de Debian tingueu instal•lat (unstable, testing o stable), ja que en les seqüències, es detecta automàticament quina versió de l'XFree86 es posseeix, i es baixa els corresponents controladors per compilar. Aquest article, s'ha creat mentre els controladors d'ATI estaven per la versió 3.9 (26/05/2004), així que fins que no surti la nova versió, no sabrem si continua funcionant... Entre d'altres coses, pel canvi de llicència de les XFree86, que farà que no superi la filosofia de Debian, i a partir de la versió 4.3, Debian treballarà amb altres projectes. Ja veurem!!! (espero que no sigui poc després de fer l'article...). No us espanteu si l'article és llarg. Ho és perquè he ficat molt codi entremig, no perquè sigui complicat (no us podreu queixar, us ho he deixat bastant mastegat). 1 - Requeriments del sistema Primer de tot, us recomanaria dues coses. La primera, que traieu totes les altres proves per instal•lar l'acceleració, ja que poden crear problemes durant aquesta instal•lació. I la segona, que feu una còpia de seguretat de l'arxiu /etc/X11/XF86Config-4, ja que és l'arxiu que conté la vostra configuració actual de les "X". Així si falla alguna cosa, podreu recuperar la vostra configuració fàcilment. I com que us he dit que us ho havia deixat mastegadet...: root@tarat:~# cp /etc/X11/XF86Config-4 /etc/X11/XF86Config-4.anterior Una cosa molt important, és la versió del gcc, ja que ha de ser la mateixa versió amb la qual s'ha compilat el nucli. Si voleu saber les versions de cadascun: root@tarat:~# gcc --version root@tarat:~# cat /proc/version Pel que fa al nucli, ha de tenir suport per a l'AGP (sòcol on es posa la targeta de vídeo). I per als nuclis 2.6.x, no n'hi ha prou amb el mòdul agpgart, sinó que també s'ha de tenir activat l'específic per a cada placa mare (via-agp, nvidia-agp, ...). És evident, que també es necessiten les fonts del nucli. Així que si encara no t'atreveixes a baixar-te el "full", pots provar d'instal•lar-te-les via apt-get. És una cosa que no he fet mai =) Però he sentit que no va tant malament, encara que deu portar molta brossa innecessària... Podeu optar per algun dels següents: root@tarat:~# apt-get install kernel-source-2.x.y O root@tarat:~# apt-get install kernel-image-2.x.y-..... Jo t'animo a que vagis a www.kernel.org i t'animis a compilar :P Una de les opcions més a tenir en compte al kernel són (exemples extrets del kernel de linux 2.6.10): Secció Loadable module support (és essencial donar suport pel mòduls): [*] Enable loadable module support [*] __Module unloading [ ] ____Forced module unloading [ ] __Module versioning support (EXPERIMENTAL) [ ] __Source checksum for all modules [*] __Automatic kernel module loading Secció Device Drivers/Character devices: [ ] Non-standard serial port support ____Serial drivers ---> [*] Legacy (BSD) PTY support (256) Maximum number of legacy PTY in use {*} Parallel printer support [ ] __Support for console on line printer { } Support for user-space parallel port device drivers { } Texas Instruments parallel link cable support ____IPMI ---> ____Watchdog Cards ---> { } Intel/AMD/VIA HW Random Number Generator support {*} /dev/nvram support {*} Enhanced Real Time Clock Support { } Double Talk PC internal speech card support { } Siemens R3964 line discipline { } Applicom intelligent fieldbus card support { } Sony Vaio Programmable I/O Control Device support (EXPERIMENTAL) ____Ftape, the floppy tape device driver ---> {*} /dev/agpgart (AGP Support) { } __ALI chipset support { } __ATI chipset support { } __AMD Irongate, 761, and 762 chipset support { } __AMD Opteron/Athlon64 on-CPU GART support { } __Intel 440LX/BX/GX, I8xx and E7x05 chipset support { } __Intel i865 chipset support {*} __NVIDIA nForce/nForce2 chipset support { } __SiS chipset support { } __Serverworks LE/HE chipset support { } __VIA chipset support { } __Transmeta Efficeon support [ ] Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) { } ACP Modem (Mwave) support { } RAW driver (/dev/raw/rawN) (OBSOLETE) [ ] HPET - High Precision Event Timer (NEW) { } Hangcheck timer On hi ha seleccionat NVIDIA nForce/nForce2 chipset support, s'ha de posar el vostre xipset corresponent (i no cal ficar suport per a DRI). De vegades hi ha gent que confón la secció Device Drivers/Graphics support, on no cal especificar la nostra targeta, amb ficar els VESA ja n'hi ha prou: [*] Support for frame buffer devices { } __Cirrus Logic support { } __Permedia2 support { } __CyberPro 2000/2010/5000 support [ ] __Chips 69000 display support [ ] __IMS Twin Turbo display support { } __VGA 16-color graphics support [*] __VESA VGA graphics support { } __Hercules mono graphics support { } __nVidia Riva support { } __Matrox acceleration { } __ATI Radeon display support (Old driver) { } __ATI Radeon display support { } __ATI Rage128 display support { } __ATI Mach64 display support { } __SiS acceleration { } __NeoMagic display support { } __IMG Kyro support { } __3Dfx Banshee/Voodoo3 display support { } __3Dfx Voodoo Graphics (sst1) support { } __Trident support { } Virtual Frame Buffer support (ONLY FOR TESTING!) ____Console display driver support ---> ____Logo configuration ---> Faran falta alguns paquets addicionals, que en un moment o altre de la instal•lació es faran servir. Així que suggereixo que s'instal•lin abans. De tota manera els comentaré al llarg de l'article quan s'hagin de fer servir. wget - Serveix per poder baixar arxius d'Internet debhelper - És un paquet que conté utilitats pel debian/rules dpkg-dev - Eines per descomprimir, construir i pujar paquets de Debian rpm - S'utilitza per poder treballar amb paquets .rpm bzip2 - Eina per comprimir/descomprimir arxius .bz2 kernel-package - Per satisfer algunes dependències tar - Eina per a empaquetar arxius vim - Fantàstic editor d'arxius (Si veieu que en fa falta algun més, si us plau envieu-me un correu electrònic) Per instal•lar-los ara: root@tarat:~# apt-get install wget debhelper dpkg-dev rpm bzip2 kernel-package tar vim 2 - Baixem les fonts del controlador La veritat és que ja existeixen alguns controladors pre-compilats i que ens estalvien alguns passos, però he preferit que... Bé, per alguna cosa fem servir Debian no??? :P Primer, millor que creem un directori buit per treballar, per exemple que es digui "/usr/src/ati": root@tarat:~# mkdir /usr/src/ati root@tarat:~# cd /usr/src/ati root@tarat:/usr/src/ati# Llavors, ja podem baixar aquests dos paquets i els fiquem dins el directori: fglrx-installer_3.9.0-5.dsc fglrx-installer_3.9.0-5.tar.gz Ara, descomprimim utilitzant: (per fer-ho, es necessita tenir instal•lat el paquet dpkg-dev) root@tarat:/usr/src/ati# dpkg-source -x fglrx-installer_3.9.0-5.dsc dpkg-source: extracting fglrx-installer in fglrx-installer-3.9.0 root@tarat:/usr/src/ati# Això (segons la versió de les fonts), ens crea un directori anomenat fglrx-installer-3.9.0. Ara ens disposarem a utilitzar una seqüència, que ens mirarà la versió del nostre XFree86, i es baixarà els seus controladors de la pàgina oficial d’ATI. El que passa és que hi ha un petit problema amb la seqüència ;_( i farà que es baixin els paquets i al final ens donarà un error, però és molt fàcil de solucionar, així que no us espanteu! Per fer-ho, entrem al directori creat i fem: (necessitarem el paquet wget per baixar-los, el debhelper, que és un conjunt de programes pel debian/rules i l'rpm, que són utilitats per a treballar aquest tipus de paquets, i el bzip2 que és un sistema de compressió/descompressió d'arxius) root@tarat:/usr/src/ati# cd fglrx-installer-3.9.0 root@tarat:/usr/src/ati/fglrx-installer-3.9.0# debian/rules binary wget http://www2.ati.com/drivers/linux/fglrx-4.3.0-3.9.0.i386.rpm --03:35:09-- http://www2.ati.com/drivers/linux/fglrx-4.3.0-3.9.0.i386.rpm => `fglrx-4.3.0-3.9.0.i386.rpm' Resolent www2.ati.com... 195.53.49.18, 195.53.49.8 Conectant a www2.ati.com[195.53.49.18]:80... conectat. HTTP: Petició enviada, esperant resposta... 200 OK Longitud:4,285,357 [audio/x-pn-realaudio-plugin] 100%[================================================================================>] 4,285,357 4.65K/s ETA 00:00 03:50:24 (4.58 KB/s) - `fglrx-4.3.0-3.9.0.i386.rpm' guardat [4285357/4285357] wget http://www2.ati.com/drivers/linux/Linux_390.html --03:50:24-- http://www2.ati.com/drivers/linux/Linux_390.html => `Linux_390.html' Resolent www2.ati.com... 195.53.49.8, 195.53.49.18 Conectant a www2.ati.com[195.53.49.8]:80... conectat. HTTP: Petició enviada, esperant resposta... 200 OK Longitud:15,753 [text/html] 100%[================================================================================>] 15,753 20.65K/s 03:50:26 (20.61 KB/s) - `Linux_390.html' guardat [15753/15753] dh_testdir rpm2cpio fglrx-4.3.0-3.9.0.i386.rpm | cpio -i -d --no-preserve-owner 24099 blocks # unpack binaries rm -f usr/X11R6/bin/fireglcontrol.qtstatic.* bzip2 -d -v usr/X11R6/bin/*.bz2 usr/X11R6/bin/fireglcontrol.qt2.gcc2.96.bz2: done usr/X11R6/bin/fireglcontrol.qt3.gcc3.2.bz2: done chmod a+x usr/X11R6/bin/fireglcontrol.* # move licenses away from binary dir if [ ! -d usr/share/doc/fglrx ]; then \ mkdir -p usr/share/doc/fglrx; \ mv usr/X11R6/bin/LICENSE.* usr/share/doc/fglrx; \ fi # remove exec bit from files that don't deserve it find usr/X11R6/include \ usr/X11R6/lib \ usr/share usr/src opt -type f | xargs chmod -x find lib -not -name "*.sh" -type f | xargs chmod -x find lib -name "*.sh" -type f | xargs chmod +x touch build-stamp dh_testdir dh_testroot dh_clean -k dh_installdirs # Create the directories to install into dh_installdirs -pfglrx-4.3.0-driver \ usr/X11R6 \ usr/X11R6/bin \ usr/X11R6/lib \ usr/X11R6/lib/modules dh_installdirs -pfglrx-4.3.0-driver-dev \ usr/X11R6 \ usr/X11R6/include \ usr/X11R6/lib \ usr/include dh_installdirs -pfglrx-4.3.0-kernel-src \ usr/src/modules/fglrx-4.3.0-3.9.0 \ usr/src/modules/fglrx-4.3.0-3.9.0/debian dh_installdirs -A -pfglrx-4.3.0-control-qt2 -pfglrx-4.3.0-control-qt3 \ usr/X11R6 \ usr/X11R6/bin \ usr/share \ usr/share/applnk \ usr/share/gnome \ usr/share/icons \ usr/share/pixmaps dh_installdirs -pfglrx-4.3.0-sources \ usr/src dh_install dh_install -pfglrx-4.3.0-driver "usr/X11R6/bin/fgl*" "usr/X11R6/bin" dh_install -pfglrx-4.3.0-driver "usr/X11R6/lib/*.so*" "usr/X11R6/lib" dh_install -pfglrx-4.3.0-driver "usr/X11R6/lib/modules/*" "usr/X11R6/lib/modules" dh_install -pfglrx-4.3.0-driver-dev "usr/X11R6/lib/*.a" "usr/X11R6/lib" dh_install -pfglrx-4.3.0-driver-dev "usr/X11R6/include/*" "usr/X11R6/include" dh_install -pfglrx-4.3.0-driver-dev "usr/include/*" "usr/include" dh_install -pfglrx-4.3.0-kernel-src \ lib/modules/fglrx/build_mod/*.c \ lib/modules/fglrx/build_mod/*.h \ lib/modules/fglrx/build_mod/*.sh \ lib/modules/fglrx/build_mod/lib* \ lib/modules/fglrx/build_mod/2.6.x/Makefile \ usr/src/modules/fglrx-4.3.0-3.9.0 dh_install -pfglrx-4.3.0-kernel-src "debian/changelog" "usr/src/modules/fglrx-4.3.0-3.9.0/debian" dh_install -pfglrx-4.3.0-kernel-src \ debian/copyright \ debian/compat \ module/rules \ module/dirs.template \ usr/src/modules/fglrx-4.3.0-3.9.0/debian sed 's/#XVERS#/4.3.0/' \ < module/control.template \ > debian/fglrx-4.3.0-kernel-src/usr/src/modules/fglrx-4.3.0-3.9.0/debian/control.template (cd debian/fglrx-4.3.0-kernel-src/usr/src/modules/fglrx-4.3.0-3.9.0; for file in /usr/src/ati/fglrx-installer-3.9.0/debian/patches-3.9.0/[0-9]*-*; do patch -i $file -p0; done) patching file make.sh patching file Makefile patching file firegl_public.c patching file firegl_public.h patching file agpgart_be.c patching file firegl_public.c (cd debian/fglrx-4.3.0-kernel-src/usr/src && tar czf fglrx-4.3.0-3.9.0.tar.gz modules --remove-files && rm -r modules) # TODO: unpack into debian/tmp and use dh_movefiles install usr/X11R6/bin/fireglcontrol.qt2.gcc2.96 \ debian/fglrx-4.3.0-control-qt2/usr/X11R6/bin/fireglcontrol if [ -f usr/X11R6/bin/fireglcontrol.qt3.gcc3.2 ]; then \ install usr/X11R6/bin/fireglcontrol.qt3.gcc3.2 \ debian/fglrx-4.3.0-control-qt3/usr/X11R6/bin/fireglcontrol; fi dh_install -A -pfglrx-4.3.0-control-qt2 -pfglrx-4.3.0-control-qt3 "usr/share/gnome/*" "usr/share/gnome" dh_install -A -pfglrx-4.3.0-control-qt2 -pfglrx-4.3.0-control-qt3 "usr/share/icons/*" "usr/share/icons" dh_install -A -pfglrx-4.3.0-control-qt2 -pfglrx-4.3.0-control-qt3 "usr/share/pixmaps/*" "usr/share/pixmaps" dh_install -A -pfglrx-4.3.0-control-qt2 -pfglrx-4.3.0-control-qt3 "opt/kde3/share/applnk/*" "usr/share/applnk" dh_install -pfglrx-4.3.0-sources "usr/src/*" "usr/src" dh_installdocs Linux_390.html dh_installdocs -pfglrx-4.3.0-driver usr/share/doc/fglrx/LICENSE.* dh_installdocs -pfglrx-4.3.0-driver usr/share/doc/fglrx/*.html #dh_installdocs -pfglrx-4.3.0-sources usr/share/doc/fglrx/LICENSE.* dh_installchangelogs dh_link dh_compress dh_makeshlibs dh_installdeb dh_gencontrol -- -VXVERSION=4.3.0 -VXVERSIONMAX=4.3.99 (cd debian/fglrx-4.3.0-driver/DEBIAN; \ for file in preinst postinst prerm postrm; do \ mv -f $file $file.tmp; \ sed -e 's/fglrx-driver/fglrx-4.3.0-driver/g' < $file.tmp > $file; \ rm -f $file.tmp; \ chmod +x $file; \ done) dh_md5sums if [ -f usr/X11R6/bin/fireglcontrol.qt3.gcc3.2 ]; then \ dh_builddeb; else \ dh_builddeb -Nfglrx-4.3.0-control-qt3; fi dpkg-deb: s'està construint el paquet «fglrx-4.3.0-driver» en «../fglrx-4.3.0-driver_3.9.0-5_i386.deb». dpkg-deb: l'script `preinst' té permisos errònies 711 ( ha de ser > =0555 i 0775 ) dh_builddeb: command returned error code 512 make: *** [binary] Error 1 root@tarat:/usr/src/ati/fglrx-installer-3.9.0# Tranquils! Ja us havia avisat de l'error. Com molt bé diu la mateixa seqüència, és un error conseqüència d’un problema de permisos. I és curiós perquè si els canvieu i torneu a executar debian/rules binary, tornarà a dir el mateix. Deu ser que entremig els deu canviar ella mateixa. Així que canviarem els permisos, i continuarem la seqüència des del punt on ha donat l’error (al final de tot). Farem (des del mateix directori): root@tarat:/usr/src/ati/fglrx-installer-3.9.0# chmod 0555 ./debian/fglrx-4.3.0-driver/DEBIAN/* I ara, seguirem amb el que li quedava per fer a la seqüència(generar els paquets): root@tarat:/usr/src/ati/fglrx-installer-3.9.0# dh_builddeb dpkg-deb: s'està construint el paquet «fglrx-4.3.0-driver» en «../fglrx-4.3.0-driver_3.9.0-5_i386.deb». dpkg-deb: s'està construint el paquet «fglrx-4.3.0-driver-dev» en «../fglrx-4.3.0-driver-dev_3.9.0-5_i386.deb». dpkg-deb: s'està construint el paquet «fglrx-4.3.0-kernel-src» en «../fglrx-4.3.0-kernel-src_3.9.0-5_i386.deb». dpkg-deb: s'està construint el paquet «fglrx-4.3.0-control-qt2» en «../fglrx-4.3.0-control-qt2_3.9.0-5_i386.deb». dpkg-deb: s'està construint el paquet «fglrx-4.3.0-control-qt3» en «../fglrx-4.3.0-control-qt3_3.9.0-5_i386.deb». dpkg-deb: s'està construint el paquet «fglrx-4.3.0-sources» en «../fglrx-4.3.0-sources_3.9.0-5_i386.deb». root@tarat:/usr/src/ati/fglrx-installer-3.9.0# Els paquets són: fglrx-xxx-driver_3.9.0-5_i386.deb fglrx-xxx-driver-dev_3.9.0-5_i386.deb fglrx-xxx-kernel-src_3.9.0-5_i386.deb fglrx-xxx-control-qt2_3.9.0-5_i386.deb fglrx-xxx-control-qt3_3.9.0-5_i386.deb (només per a XFree86 4.3) fglrx-xxx-sources_3.9.0-5_i386.deb ("xxx" és la teva versió de XFree86) 3 – Instal•lar els paquets i compilar el mòdul del nucli Dels paquets que ens ha baixat/creat, només utilitzarem els necessaris per tenir acceleració, els altres són eines auxiliars. I aquests paquets són: fglrx-xxx-driver-dev_3.9.0-5_i386.deb fglrx-xxx-kernel-src_3.9.0-5_i386.deb El paquet fglrx-xxx-driver-dev_3.9.0-5_i386.deb conté capçaleres i la llibreria estàtica libfglrx_gamma.a, i només el necessites si desenvolupes aplicacions específiques d'ATI OpenGL. Els paquets fglrx-xxx-control-qtX_3.9.0-5_i386.deb instal•len un tauler de control, i poden ser útils per a configuracions de multi-monitor (si la teva targeta de vídeo ho permet). I el paquet fglrx-xxx-sources_3.9.0-5_i386.deb conté codi font del tauler de control. Són paquets que no es fan servir gaire. Per instal•lar aquests dos paquets, farem: root@tarat:/usr/src/ati/fglrx-installer-3.9.0# cd .. root@tarat:/usr/src/ati# dpkg -i fglrx-4.3.0-driver_3.9.0-5_i386.deb S'està seleccionant el paquet fglrx-4.3.0-driver previament no seleccionat. (S'està llegint la base de dades ... hi ha 46150 fitxers i directoris instal•lats actualment.) S'està desempaquetant fglrx-4.3.0-driver (de fglrx-4.3.0-driver_3.9.0-5_i386.deb) ... Adding `diversion of /usr/X11R6/lib/libGL.so.1.2 to /usr/share/fglrx/diversions/libGL.so.1.2 by fglrx-4.3.0-driver' S'està configurant fglrx-4.3.0-driver (3.9.0-5) ... root@tarat:/usr/src/ati# dpkg -i fglrx-4.3.0-kernel-src_3.9.0-5_i386.deb (S'està llegint la base de dades ... hi ha 46282 fitxers i directoris instal•lats actualment.) S'està preparant per a reemplaçar fglrx-4.3.0-kernel-src 3.9.0-5 (fent servir fglrx-4.3.0-kernel-src_3.9.0-5_i386.deb) ... S'està desempaquetant el reemplaç de fglrx-4.3.0-kernel-src ... S'està configurant fglrx-4.3.0-kernel-src (3.9.0-5) ... root@tarat:/usr/src/ati# Per cert, si en instal•lar el fglrx-xxx-kernel-src_3.9.0-5_i386.deb teniu problemes de dependències, en principi instal•lant el paquet kernel-package ja n'hi hauria d’haver prou. I llavors haureu de tornar a instal•lar-lo amb la mateixa comanda. Després d'instal•lar els paquets: (suposo que tindreu el tar oi???) root@tarat:/usr/src/ati# cd .. root@tarat:/usr/src# tar -xzvpf fglrx-4.3.0-3.9.0.tar.gz modules/ modules/fglrx-4.3.0-3.9.0/ modules/fglrx-4.3.0-3.9.0/Makefile modules/fglrx-4.3.0-3.9.0/agpgart_be.c modules/fglrx-4.3.0-3.9.0/agp.h modules/fglrx-4.3.0-3.9.0/libfglrx_ip.a.GCC2 modules/fglrx-4.3.0-3.9.0/libfglrx_ip.a.GCC3 modules/fglrx-4.3.0-3.9.0/firegl_public.c modules/fglrx-4.3.0-3.9.0/firegl_public.h modules/fglrx-4.3.0-3.9.0/agp_backend.h modules/fglrx-4.3.0-3.9.0/make.sh modules/fglrx-4.3.0-3.9.0/i7505-agp.c modules/fglrx-4.3.0-3.9.0/nvidia-agp.c modules/fglrx-4.3.0-3.9.0/agp3.c modules/fglrx-4.3.0-3.9.0/debian/ modules/fglrx-4.3.0-3.9.0/debian/rules modules/fglrx-4.3.0-3.9.0/debian/changelog modules/fglrx-4.3.0-3.9.0/debian/compat modules/fglrx-4.3.0-3.9.0/debian/dirs.template modules/fglrx-4.3.0-3.9.0/debian/control.template modules/fglrx-4.3.0-3.9.0/debian/copyright modules/fglrx-4.3.0-3.9.0/agpgart.h root@tarat:/usr/src# Ja falta poc!!! Després de descomprimir, podríem fabricar el mòdul de vàries maneres. Però jo us recomanaria fer-ho de la següent, per no embolicar-nos gaire: root@tarat:/usr/src# cd modules/fglrx-4.3.0-3.9.0/ root@tarat:/usr/src/modules/fglrx-4.3.0-3.9.0# ./make.sh ATI module generator V 2.0 ========================== initializing... cleaning... patching 'highmem.h'... skipping patch for 'drmP.h', not needed skipping patch for 'drm_os_linux.h', not needed assuming new VMA API since we do have kernel 2.6.x... doing Makefile based build for kernel 2.6.x and higher make -C /usr/src/linux-2.6.7 SUBDIRS=/usr/src/modules/fglrx-4.3.0-3.9.0 modules make[1]: Entering directory `/usr/src/linux-2.6.7' CC [M] /usr/src/modules/fglrx-4.3.0-3.9.0/agp3.o CC [M] /usr/src/modules/fglrx-4.3.0-3.9.0/nvidia-agp.o CC [M] /usr/src/modules/fglrx-4.3.0-3.9.0/agpgart_be.o CC [M] /usr/src/modules/fglrx-4.3.0-3.9.0/i7505-agp.o CC [M] /usr/src/modules/fglrx-4.3.0-3.9.0/firegl_public.o LD [M] /usr/src/modules/fglrx-4.3.0-3.9.0/fglrx.o Building modules, stage 2. MODPOST CC /usr/src/modules/fglrx-4.3.0-3.9.0/fglrx.mod.o LD [M] /usr/src/modules/fglrx-4.3.0-3.9.0/fglrx.ko make[1]: Leaving directory `/usr/src/linux-2.6.7' build succeeded with return value 0 done. ============================== You must copy fglrx.ko to /lib/modules/2.6.7/misc and then call 'depmod -ae' in order to install the built module. ============================== root@tarat:/usr/src/modules/fglrx-4.3.0-3.9.0# Si llegiu el final (si sabeu una mica d'anglès), us diu el que s'ha de fer. És qüestió de copiar l'arxiu fglrx.ko a la corresponent carpeta del nostre nucli (a mi em marca el 2.6.7 perquè és el que estic fent servir). Jo ho he fet de la següent manera: root@tarat:/usr/src/modules/fglrx-4.3.0-3.9.0# cp fglrx.ko /lib/modules/2.6.7/kernel/drivers/video/aty/(o un altre dins de "drivers") root@tarat:/usr/src/modules/fglrx-4.3.0-3.9.0# depmod -ae root@tarat:/usr/src/modules/fglrx-4.3.0-3.9.0# update-modules root@tarat:/usr/src/modules/fglrx-4.3.0-3.9.0# L'update-modules potser no cal, però millor ser previsors. Bé, ara arriba el punt culminant. Si tot ha anat més o menys bé, el mòdul que hem creat, es carregarà. Mirem-ho: root@tarat:/usr/src/modules/fglrx-4.3.0-3.9.0# modprobe fglrx root@tarat:/usr/src/modules/fglrx-4.3.0-3.9.0# Ueeeeeeeeee!!!!!!! No dóna cap error!!! Perfecte. Això vol dir que ho hem fet bé. Si no heu tingut problemes fins ara, però el modprobe no pot trobar el mòdul, assegureu-vos de que heu instal•lat bé el paquet del mòdul del nucli, observeu la vostra sortida del dmesg, i mireu l’error #248624, i si us plau, deixeu-hi tota la vostra informació possible relacionada. No us puc dir res més que això :( Si algú s’hi troba que m'ho comuniqui, encara que és molt poc comú que passi. Però si us dóna algun error amb el contingut "unresolved symbol dev_base_R863b01ad", significa que el mòdul ha estat compilat amb "CONFIG_MODVERSIONS=yes", però el nucli que esteu fent servir no. En principi només és error al compilar el nucli. Assegureu-vos que compliu els requisits de l'apartat "Requeriments del sistema", i si no us en sortiu, digueu-m'ho i intentaré ajudar-vos (però primer intenteu-ho eh... jjejeje). Bé, ara funciona, però si reiniciem el PC, el mòdul encara hi serà però no estarà carregat. Així que podem fer-ho de la manera que m'agrada a mi perquè cada cop que s'engegui el sistema el carregui: root@tarat:/usr/src/modules/fglrx-4.3.0-3.9.0# echo "fglrx" >> /etc/modules root@tarat:/usr/src/modules/fglrx-4.3.0-3.9.0# 4 - Configurar l'XF86Config-4 Sobretot, no utilitzeu la comanda fglrxconfig per configurar-lo. Primer proveu de modificar l'/etc/X11/XF86Config-4, i si no funciona llavors feu-ho. Feu-me cas! I si l'heu de fer servir, espero que tal com us he dit al principi hagueu fet una còpia de seguretat d'aquest arxiu, ja que la comanda fglrxconfig el sobreescriu. fglrxconfig seria útil per a obtenir "dual-head", però per poca cosa més. Si penseu que li he agafat mania, l'heu encertat. Encara que jo l'he hagut de fer servir... :( Per editar l'arxiu de configuració, utilitzarem el meu estimat vim: root@tarat:/usr/src/modules/fglrx-4.3.0-3.9.0# vim /etc/X11/XF86Config-4 Si no sabeu fer servir el vim, als articles de Catux n'hi ha un que és una petita guia que us ajudarà. Només tocarem les línies que ara us posaré (sigueu molt escrupolosos): Section "Module" ... Load "glx" Load "dri" ... # Carrega "extmod" però omet l'extensió DGA SubSection "extmod" Option "omit xfree86-dga" EndSubSection ... EndSection Section "Device" Identifier "ATI" Driver "fglrx" # Això és el més important # Si les X refusen la teva resolució, i la pantalla # hi arriba, descomenta això. #Option "NoDDC" # === Video Overlay for the Xv extension === Option "VideoOverlay" "on" # === OpenGL Overlay === # Nota: Si l'OpenGL Overlay està activat, el Video Overlay # es deshabilitarà automàticament Option "OpenGLOverlay" "off" # === Use internal AGP GART support? === # Si l'acceleració OpenGL no treballa, posa "yes" aquí # i deshabilita el driver agpgart del kernel. Option "UseInternalAGPGART" "no" EndSection Section "Screen" Identifier "your screen" Device "ATI" Monitor "your monitor" DefaultDepth 24 SubSection "Display" Depth 24 Modes "1280x960" # això només és un exemple, # utilitza la teva resol•lució de pantalla EndSubSection EndSection Section "DRI" Mode 0666 EndSection Ara, s'haurien de reiniciar les "X". Tant podem fer-ho amb el PC com només les "X". Si volem reiniciar les “X”: root@tarat:/usr/src/modules/fglrx-4.3.0-3.9.0# /etc/init.d/kdm restart (o gdm, wdm, xdm... depenent de quin fem servir) I si no s'arranquen les "X", és qüestió d'anar jugant amb la configuració del XF86Config-4, com ara resolucions de pantalla, refrescs verticals i horitzontals, alguna errada de sintaxis... Pel vim, recomanaria fer això, que va bé per aquests errors: root@tarat:~# echo "syntax on" > /root/.vimrc O sinó, parar les "X" i provar d'arrencar amb la comanda startx i observar l'error que dóna: root@tarat:/usr/src/modules/fglrx-4.3.0-3.9.0# /etc/init.d/kdm restart (o gdm, wdm, xdm... depenent de quin fem servir) root@tarat:/usr/src/modules/fglrx-4.3.0-3.9.0# startx Una altra opció seria observar el registre del XF86Config-4: root@tarat:/usr/src/modules/fglrx-4.3.0-3.9.0# cat /var/log/XFree86.0.log Després de jugar una mica, segurament haurem pogut aconseguir una bona configuració de les "X" i s'hauran pogut arrencar. Però si no és així, aquest cop us deixaré que utilitzem la comanda fglrxconfig... Només s'hauran de seguir uns petits passos que et va indicant. Quan ja haguem pogut arrencar les "X", comprovem que l'acceleració OpenGL funciona teclejant: root@tarat:~# fglrxinfo I si surt: root@tarat:~# fglrxinfo display: :0.0 screen: 0 OpenGL vendor string: ATI Technologies Inc. OpenGL renderer string: RADEON 9600 Generic OpenGL version string: 1.3 (X4.3.0-3.9.0) Molt bé! En canvi si surt una cosa similar però amb "MESA", d'acceleració no en tens... També podem comprovar-ho amb: root@tarat:~# glxinfo Si heu arribat aquí amb l’acceleració activada, molt ben fet! I sinó, us recomano que seguiu mirant els de "El Gran Hermano"... 00 - Conclusions Si no t'està bé, haver-te comprat una nVidia ;) La veritat és que aquest article l'he fet per egoisme. L'he fet per recordar-ho jo, i tenir-ho penjat a Internet perquè no sigui tant fàcil d’esborrar. No és una conclusió, però si et carregues el teu maquinari seguint aquest article, qui se'n fa responsable és en Rupert (el de Ximian). Què més dir... Ah sí... Visca GNU/Linux! Agraïments a en whats per algun "petit" consell :D |