# [ebuild] ati-gatos : Mise à jour Xorg 7

## PabOu

Bonjour !

Je possède une carte graphique ATI All-In-Wonder avec chipset rage128. Cette carte possède (entre autres) une entrée TV-In et un tuner.

Jusqu'à présent, tout allait bien, et puis j'ai décidé de mettre xorg à jour, et je suis passé à la version 7. Je dois donc recompiler ati-gatos. J'ai corrigé l'ebuild (en partie) pour que la compilation fonctionne chez moi (il s'agissait de faire passer des paramètres différents à imake et gcc à cause du changements des répertoires de librairies et co.).

Mais lorsque je tente d'utiliser ce driver (r128), xorg me plante au nez à cause d'un unresolved symbol.

ligne utilisée dans le xorg.conf :

```
ModulePath "/usr/lib/modules-extra/gatos"
```

 avant la ligne 

```
ModulePath "/usr/lib/xorg/modules"
```

C'est la config que j'avais précédemment avec xorg 6.8.2 (sauf le chemin qui diffère un peu) et qui fonctionnait. Je suis maintenant obligé de commenter la premiere ligne pour que xorg fonctionne, mais sans les fonctions TV.

Le Unresolved symbol :  *Quote:*   

> (II) LoadModule: "r128"
> 
> (II) Loading /usr/lib/modules-extra/gatos/drivers/r128_drv.so
> 
> dlopen: /usr/lib/modules-extra/gatos/drivers/r128_drv.so: undefined symbol: fbdevHWSwitchMode
> ...

 

L'ebuild nouveau : 

```
# Copyright 1999-2005 Gentoo Foundation

# Distributed under the terms of the GNU General Public License v2

# $Header: /var/cvsroot/gentoo-x86/media-video/ati-gatos/ati-gatos-4.4.0.ebuild,v 1.4 2005/01/20 04:55:57 battousai Exp $

inherit eutils

SNAPSHOT=20040930

MYP=${P}-${SNAPSHOT}

DESCRIPTION="ATI Multimedia-capable drivers for Xorg"

HOMEPAGE="http://gatos.sourceforge.net/"

SRC_URI="mirror://gentoo/${MYP}.tar.bz2"

LICENSE="GPL-2"

SLOT="0"

KEYWORDS="~x86"

IUSE=""

DEPEND=">=x11-base/xorg-x11-6.7.0-r1"

pkg_setup() {

        if ! built_with_use x11-base/xorg-x11 sdk ; then

                ewarn "This package requires that xorg-x11 was merged with the sdk USE flag enabled."

                die "Please merge xorg-x11 with the sdk USE flag enabled."

        fi

}

src_unpack() {

        unpack ${A}

        cd ${S}

        if has_version '>=x11-base/xorg-x11-6.7.99*' ; then

                einfo "Patching ati-gatos for use with >=x11-base/xorg-x11-6.7.99"

                epatch ${FILESDIR}/${P}-new-xorg.patch

        fi

        epatch ${FILESDIR}/${P}-prototypes.patch

        # Build makefiles against Xorg SDK

        imake -I/usr/lib/X11/config -DUseInstalled -DXF86DriverSDK

        # Makefile fixes

        fix_makefile

}

src_compile() {

        cd ${S}

        emake DESTDIR=${D} || die "Problem compiling GATOS drivers."

}

src_install() {

        emake DESTDIR=${D} install

}

pkg_postinst() {

        einfo "To have Xorg make use of the new GATOS modules, you should add the following"

        einfo "line to /etc/X11/xorg.conf, in the files section and above any other"

        einfo "ModulePath directives:"

        einfo

        einfo "      ModulePath \"/usr/lib/modules-extra/gatos\""

        einfo

        einfo "Please note that you may need to uncomment or add another ModulePath line with"

        einfo "the default module path in it. If Xorg does not start after adding the line"

        einfo "above, add this one under it:"

        einfo

        einfo "      ModulePath \"/usr/lib/modules\""

}

fix_makefile() {

        cp Makefile Makefile.orig

        # Add the Xorg SDK include directories that gatos will use

        sed -i -e "s:\ *INCLUDES = \(.\+\):INCLUDES = \\1 -I/usr/include/xorg -I/usr/include/X11 -I/usr/include/X11/extensions -I/usr/include/X11/dri -I/usr/include/drm:" Makefile

        # Clean up the ugly sandbox violations

        sed -i -e "s:\(\ \+\)MODULEDIR = .*:\\1MODULEDIR = \\\$(USRLIBDIR)/modules-extra/gatos:" Makefile

        sed -i -e "s:\(\ \+\)BUILDLIBDIR = .*:\\1BUILDLIBDIR = \\\$(DESTDIR)\\\$(TOP)/exports/lib:" Makefile

        sed -i -e "s:\$(RM) \$(BUILDMODULEDIR):\$(RM) \$(DESTDIR)\$(BUILDMODULEDIR):g" Makefile

}

```

voilà, alors, ce unresolved symbol, c'est du à l'ebuild ou alors le snapshot cvs du code source de ati-gatos est simplement pas compatible avec xorg 7 ?

Autre chose, lorsque le premier problème sera résolu : s'occuper de la dépendance et mettre xorg 7 (ou alors faire un ebuild qui fonctionne avec xorg 6.8 et 7)

Est-ce que ce genre de modification mérite un changement de nom de l'ebuild ? dans le genre -r1 ? et qu'en est-il de l'ajout du nom dans le fichier Changelog ?

----------

## PabOu

rien ? personne ?

----------

## netfab

Salut,

Tu as emergé les drivers video_cards_fbdev c'est çà ?

La fonction a changé de nom dans le code de xorg :

Xorg 6.8.2 :

 *Quote:*   

> 
> 
> pScrn->Probe         = FBDevProbe;
> 
> pScrn->PreInit       = FBDevPreInit;
> ...

 

Xorg 7 :

 *Quote:*   

> 
> 
> pScrn->Probe         = FBDevProbe;
> 
> pScrn->PreInit       = FBDevPreInit;
> ...

 

source

En fait dans le code de xorg 6.8.2 voilà ce que l'on peut trouver :

```

xf86SwitchModeProc *

fbdevHWSwitchModeWeak(void) { return fbdevHWSwitchMode; }

```

Ceci expliquant peut-être cela.

Il faudrait voir :

 si c'est la seule modification.

 où est définie la fonction fbdevHWSwitchModeWeak dans le code de xorg 7

 tenter un patch sur ati-gatos.

----------

## PabOu

 *NetFab wrote:*   

> Salut,
> 
> Tu as emergé les drivers video_cards_fbdev c'est çà ?

 Si c'est de x11-drivers/xf86-video-fbdev dont tu veux parler, non je n'ai pas émergé ca. Je devais ?

 *NetFab wrote:*   

> La fonction a changé de nom dans le code de xorg :
> 
> Xorg 6.8.2 :
> 
>  *Quote:*   ...
> ...

 

je vais regarder un peu le code source pour voir tout ca...

----------

## netfab

 *PabOu wrote:*   

> Si c'est de x11-drivers/xf86-video-fbdev dont tu veux parler, non je n'ai pas émergé ca. Je devais ?
> 
> 

 

Je suis parti sur ce principe là : j'ai décompressé la source de xorg 6.8.2 (310 Mo  :Twisted Evil:  ).

[...]

[edit] non, et bien en fait, je faisais fausse route depuis le départ : le code n'a pas bougé d'un poil.

----------

## pilou254

 *PabOu wrote:*   

> Bonjour !
> 
> Je possède une carte graphique ATI All-In-Wonder avec chipset rage128. Cette carte possède (entre autres) une entrée TV-In et un tuner.......
> 
> 

 

Moi aussi je posséde cette carte graphique et j'aimerai monter une machine dédiée seulement à la TV + enregistrements avec gatos ( corrige moi si je me plante, mais je crois qu'il faut une carte mère avec 1 bus AGP 2x maxi, en 5V, on en trouve plus dans le commerce, il faut fouiner sur ebay ... ).

En dévellopement je suis " proche de zéro ", par contre le projet GATOS ne plait beaucoup et je suis d'accord pour faire un tuto, une traduction, un wiki etc ....

----------

## PabOu

euh.. j'ai cette carte sur un Pentium 3 500Mhz, mais je ne sais plus la carte mère.. matronic ? je vérifierai ce soir.

Par contre, sur une carte mère plus récente avec port AGP, tu as moyen de limiter les performances du port il me semble. Cela reste compatible, sinon ils n'auraient pas gardé le même port, pour éviter ce genre de conflits qui pourraient détruire le matériel.

----------

## pilou254

 *PabOu wrote:*   

> euh.. j'ai cette carte sur un Pentium 3 500Mhz, mais je ne sais plus la carte mère.. matronic ? je vérifierai ce soir. Par contre, sur une carte mère plus récente avec port AGP, tu as moyen de limiter les performances du port il me semble. Cela reste compatible, sinon ils n'auraient pas gardé le même port, pour éviter ce genre de conflits qui pourraient détruire le matériel.

 

oui, tu peux limiter le bus AGP en 2x mais par contre les niveaux de tension ne sont pas modifiables et tu peux flinguer la carte vite fait ! En plus le brochage coince alors ..., mais c'est un détail, je trouverai une bonne carte pour faire ça. Que sait tu de l'implémentation de GATOS dans Xorg 7.0 ?

----------

## PabOu

l'implémentation de GATOS, je sais que le module radeon (tv-input) à été intégré. Je ne sais rien de plus.

J'ai essayé de modifier les sources d'ati-gatos pour utiliser r128, mais j'ai eu bcp de soucis (je n'ai pas de vrai environnement de travail pour faire ca.. alors sous nano, c'est pas facile.. pour quelqu'un qui programme pas).

J'ai quelques idées à essayer encore (notamment aller voir si il n'y a pas un nouveau snapshot sur le cvs de gatos.sf.net), mais manque de temps pour le moment (j'ai un travail de fin d'études à terminer).

----------

## pilou254

Entendu, le travail passe avant tout !

Pour ma part, je vais " fouiner " sur le site de GATOS et je te ferai un compte rendu des que j'aurai des informations valables.

----------

