Arxius

Nou article: Acceleració a les ATI en Debian

Escrit al 2004-07-28 00:00:00 per EliziR

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

    Categories: Articles, Nucli


    Comentaris

    • No ho aconsegueixo ! Tenc un error durant la construcció del mòdul: ATI module generator V 2.0 ========================== initializing... Error: XFree86 drm includes at /usr/src/kernel-headers-2.6.7-1-686/drivers/char/drm do not fit this driver. This driver is designed to only work with X4.1.0 or higher. You can match this by getting Linux kernel 2.4.8 or higher. La cosa és que tenc kernel 2.6.7 (precompilat), i X4.3... No aconsegueixo compilar el mòdul. Ja em passava amb altres tutorials. Alguna idea, suggerència, ajuda ???

      Escrit al 2006-12-28 13:18:41 per time2sail

    • Ho has fet exactament igual? No se pas com ho deus haber fet pq has penjat el comentari a les 13:41 i a akesta hora encara no estaven penjats els arxius per a poder-lo portar a terme. ;P (La confiança fa fastic) Prova de desinstalar totes les proves que has anat fent i tornar a instalar-ho seguint "pe a pa" l'article anterior i aviam si et torna a dir el mateix.... Llavors tb asegurat que el xfree que tens és "de sèrie", ha de ser algo aixi: albert@p4:~$ dpkg -l |grep xfree ii xfree86-common 4.3.0-7 X Window System (XFree86) infrastructure ii xserver-xfree8 4.3.0-7 the XFree86 X server avegades la gent s'instal·la versions com xserver-xfree86-dbg i llavors és possible k no funcionin del tot bé. Sort!

      Escrit al 2006-12-28 13:19:28 per whats_up

    • Re: No ho aconsegueixo ! I d'on as tret els arxius: fglrx-installer_3.9.0-5.dsc fglrx-installer_3.9.0-5.tar.gz Si encara no estan penjats? D'algun altre lloc? Bé, són bastant comuns... Poder és que et falten o fallen els paquets "patch", o "make", pot ser? root@tarat:/home/elizir# dpkg -l patch Si fica "ii" està instal·lat. No crec que faci falta tenir instal·lat l'"alien". Jo apostaria que poder el teu kernel no l'has compilat tu. M'equivoco? :S I ja has baixat els kernel-sources/headers? Apostaria que és això. Pots probar de fer això per si no et troba el kernel: root@tarat:/home/elizir# ln -s /usr/src/linux-2.6.7/ /usr/src/linux Pots probar amb això, i sino va bé, tornau a dir. Poder si as fet moltes altres probes hi han incompatibilitats però crec que és això del kernel. Sort!

      Escrit al 2006-12-28 13:20:36 per Elizir

    • He buscat per internet I he trobat els arxius del tutorial. Amb el mateix nom. De fet, ja havia seguit un tuto amb aquestes mateixes instruccions (sense gaire explicació, hehe, ni en català!!! xD ) amb els mateixos resultats: que no tenc cap versió compatible amb l'Xfree... ( ????? ) Provaré el que m'heu dit, i llavors us tornaré a comentar coses. I sí, seguia les instruccions de pe a pa... El que també pot passar, es que tengui una versió diferent del gcc que el que es va usar per compilar el kernel. Com puc fer que facin "match" les dues versions, tenint en compte que el meu kernel és precompilat ??? Gràcies !!!

      Escrit al 2006-12-28 13:21:37 per time2sail

    • M'oblidava ! Els headers ja els tenia, i l'enllaç també el vaig fer fa molt. Ara falta comprovar lo que diu el what's, perquè el Xfree el vaig descarregar i instalar amb l'apt-get, fa bastant, i amb el markitus ! xD ( i el what's ja sap que amb el markitus... tot es possible !!! ) xD Fins ara

      Escrit al 2006-12-28 13:22:31 per time2sail

    • RE: he buscat per internet Massa que ho se k amb el markitus tot és possible... ;P Dons per mirar amb quina versió del gcc està compilat el teu kernel, pots fer això: albert@p4:~$ cat /proc/version Linux version 2.6.7 (root@p4) (gcc versió 3.3.3 (Debian 20040314)) #13 SMP Tue Jul 27 01:07:13 CEST 2004 (Per cert, si vinc per l'aniversari de l'anna, et puc ajudar i donar-hi un cop d'ull aviam que t'hi passa :P ) Sort!

      Escrit al 2006-12-28 13:23:14 per whats_up

    • hehe Pos també és cert ! A veure si concretam coses, perquè serà aquest cap de setmana ( dissabte ). Marxam dimarts !!!. Si pots contacta pel MSN, ( encara que jo no m'hi passo gaire xDDD )

      Escrit al 2006-12-28 13:24:44 per time2sail

    • Genial! Eiiii! Ja era hora de que algu fes un tutorial de la nostra estimada ati en català!!! ;) Bé aquest comentari només és per donar les gràcies als companys de CATUX i donar suport moral si més no! VISCA CATUX!!!

      Escrit al 2006-12-28 13:25:23 per PaNiTuX

    • Si algú té problemes.... Si algú té problemes, o l'article queda desfassat, podeu provar d'anar a : http://xoomer.virgilio.it/flavio.stanchina/debian/fglrx-installer.html#install . Aquesta web va ser la nostre referencia a l'hora de posar els drivers.

      Escrit al 2006-12-28 13:26:11 per whats_up

    • Noves versions dels drivers de Ha sortit una nova versió dels drivers d'ATI per Linux =) La 3.12.0. En el pròxims dies probaré com van i actualitzaré l'article. Encara que, de l'aricle, només s'hauran de canviar els paquets que s'han de baixar al principi de tot (fglrx-installer_3.9.0-5.dsc i fglrx-installer_3.9.0-5.tar.gz). Aquí teniu el link Fins aviat!!!

      Escrit al 2006-12-28 13:27:20 per Elizir

    • Re: Noves versions dels driver No penseu que he suat... És que encara hi han alguns petits problemes amb aquesta versió. No patiu que aniré probant :)

      Escrit al 2006-12-28 13:28:01 per EliziR

    • Controladors fglrx per a XFree Algu te els paquets per a la Xfree 4.1.0.1 per a una debian woody r2 no tinc internet a casa i no ho puc fer com dius: podeu passarme els paquets o enviarmels a Maxs666@hotmail.com fglrx-xxx-driver-dev_3.9.0-5_i386.deb fglrx-xxx-kernel-src_3.9.0-5_i386.deb per a les Xfree 4.1.0.1 si teniu els altres tambe. GRACIES!!!!! Maxs Snake.

      Escrit al 2006-12-28 13:28:45 per Anònim

    • Problemes amb el driver de ATI He seguit les intruccions pas a pas, i sembla que tot funciona, pero a l'hora de cambiar de les X a la consola o de tancar les X, l'ordinador es penja. He llegit pagines on diu que el driver no funciona be amb el framebuffer, i l'he eliminat, pero segueix igual. Si algu em pot sap perque hem passa aixo i hem pot ajudar... Gracies

      Escrit al 2006-12-28 13:29:26 per Anònim

    • Re: Controladors fglrx per a X Ja has mirat que no estiguin als CD's? Poder no els tens tots, però crec que el paquet del xserver-xfree86 està al primer. El problema que hi ha és que aquest paquest té algunes dependències, i aquestes en tenen d'altres. Per això, segurament tindràs el CD de Woody, i executant la comanda: # apt-cdrom add Afegiràs tots els paquets del CD a disposició de l'apt-get. Llavors només seria fer un: # apt-get install xserver-xfree86 Tot això sense necessitar internet. I si no hi han els paquets, quan tinguis accés a internet, pots anar a la pàgina de paquets de Debian, i des d'allà els podràs descarregar (ja et diu les dependències i demés). La pàgina és: http://packages.debian.org/stable/x11/xserver-xfree86 Tot i això, em sembla que amb fer ho primer que he dit ja faràs. I sinó, torna-ho a dir! =)

      Escrit al 2006-12-28 13:30:00 per Anònim

    • Re: Problemes amb el driver de Bé, a mi de vegades també em fa el tontu... =)) El què em fa és que quan canvio a consola i torno a les X, hi han algunes línies que no hi haurien de ser, però marxen quan hi passes alguna cosa per sobre. Aviam si els d'ATI es fiquen més en món de GNU/Linux (com en el d'altres sistemes operatius). Però a què et refereixes exactament quan dius "el driver no funciona be amb el framebuffer, i l'he eliminat"? Què has eliminat? No crec que et pugui ajudar amb això que dius que el PC es queda penjat quan fas això amb les X, no m'hi he trobat mai. L'únic que et puc dir és (si no ho has fet), és que miris els logs en què pot haber informació (fixan-te amb l'hora possible de la fallida): /var/log/XFree86.0.log /var/log/syslog No sé què més dir-te, poden ser mil coses. En el què segurament et podré ajudar és en treure l'acceleració ;_( Si tens gaires problemes més i et va millor, pots enviar-me algun mail, que el trobaràs a la secció "Llistar usuaris". Això va per tu i per tothom!

      Escrit al 2006-12-28 13:31:17 per Anònim

    • Re: Acceleració 3D a les ATI e Hola he seguit el teu article pas per pas i la veritat es va molt be. el meu problema ve a l'ultim pas avans de configurar l'xfreeconfig-4, exactament en el moment de fer el modprobe fglrx, em surt un missatge d'error que es el seguent. fglrx: unknown symbol pci_find_class. espero la resposta d'algu que em pugui ajudar. gracies.

      Escrit al 2006-12-28 13:31:54 per Anònim

    • Re: Acceleració 3D a les ATI e Bones. M'equivoco si penso que ho has probat amb un kernel 2.6.10? És que ja m'hi habia trobat, i pel què vaig buscar en aquell moment va ser que era un bug. Una de les coses que vaig trobar van ser que això es podia sol·lucionar amb un patch, que es pot trobar a: http://www.pissflitsche.net/scripts/agpgart_be.patch En principi és baixar aquest patch i ficar-lo a "/usr/src/ati/fglrx-installer-3.9.0/lib/modules/fglrx/build_mod" o depenent de la carpeta corresponent que es tingui. Llavors: # patch -p0 < agpgart_be.patch Després d'això, tornar a seguir aquest article pel pas que diu "root@tarat:/usr/src/modules/fglrx-4.3.0-3.9.0# ./make.sh" (per construir el mòdul). Bé, tant si et funciona com si no, et demanaria que ho diguessis, aviam com t'ha anat =) (La resposta ha sigut ràpida perquè en aquesta pàgina hi ha el servei de que quan es fica un comentari, al seu autor s'envia un correu ;) )

      Escrit al 2006-12-28 13:32:34 per Elizir

    • Re: Acceleració 3D a les ATI e Veig que el comentari no ha entrat del tot :S És que aquests dies s'està tocant molt el codi de la pàgina, coses que es pot apreciar en alguns detalls de format. Bé, després de fer el "patch -p0", pots tornar a seguir l'article pel punt de "root@tarat:/usr/src/modules/fglrx-4.3.0-3.9.0# ./make.sh" (es es crea el mòdul). Tant si funciona com si no, t'agrairia que ho diguessis, per veure si hi pot tenir a vaure o no. (La resposta ha sigut ràpida perquè en aquesta pàgina hi ha el servei de que quan algú posa un comentari, l'autor rep un correu ;) )

      Escrit al 2006-12-28 13:46:25 per EliziR

    • Re: Acceleració 3D a les ATI e Hola soc el mateix d'abans. El patch que em vas donar no hem funciona, quan faig el comandu patch -p0 es keda com si fes algu pero no fa res, pero l'ordinador no es keda penjat ni res. Vaig probar la teva guia amb un amic amb un kernel 2.6.8 i a anat perfecte menys en que sempre li surt que esta amb mesa en lloca d'ati. perque pot ser? I una altre pregunta, hauria de funconar amb una ati 9550 no? per lo menys a la pagina d'ati oficial els drivers i son, ho dic perque a l'últim pas de tots, al fer el modprobe fglrx hem dona el seguent error: FATAL: Error inserting fglrx (/lib/modules/2.6.8/kernel/drivers/fglrx.ko): No such device I aquest error ens de no reconeixer la tarjeta veritat? espero no ser pesat. gracies.

      Escrit al 2006-12-28 13:47:47 per Anònim

    • Re: Acceleració 3D a les ATI e Bé, poden ser varies les coses que poden fer que no et funcioni :( Però ja són coses específiques de cada usuari i no sé exactament com ajudar-te, ja que poden ser mil coses :( En canvi, si dius que al teu amic tot li ha anat bé però que li surt "Mesa" en comptes de "ATI", segurament serà per tenir alguna cosa malament a l'arxiu /etc/X11/XF86Config-4 Però això, igual que abans t'he dit que amb el patch era possible que es sol·lucionés, és una causa que ara se'm passa pel cap. Pel què fa a l'altre pregunta de si aquest article pot funcionar per a una ATI 9550, el més segur és que si (és a dir, no ho he probat però estic bastant segur que si). L'error aquest és del mòdul, i pot ser tant de no reconèixer la tarja com de molts altres problemes :S Em sap greu respondre't tant ambiguament.

      Escrit al 2006-12-28 13:48:56 per EliziR

    • Nou driver d'ATI Les coses canvien... Ara ja fa uns dies aquí a Catux va sortir una notícia que ho anunciava. Només afegir que va molt bé, però no amb tots els nuclis. Per exemple, va perfecte en un nucli 2.6.11, però no amb un 2.6.11.5 o un 2.6.12. Aquesta és la meva experiència (m'hi he barellat bastant). És només executar el .run, apretar un parell o tres de botons, i al driver ja està instal·lat. Llavors només és carregar el mòdul (el fglrx) i canviar alguna cosa a l'arxiu de configuració /etc/X11/XF86Config-4 . Aviam si aviat hi penso i faig un article explicant detalladament aquests passos.

      Escrit al 2006-12-28 13:49:42 per Elizir

    Arxius