# Chapuza total con X server y Hal (No hay solución)

## cameta

Pues que no quiere arrancar y al final he tenido que poner

X -configure para crear un xorg.conf valido. Pero esto es una autentica chapuza. Con Hal en teoria no tendria que poner eso.

El error que me da sin hal es que no encuentra las screens o algo asi.

Si ahora tengo el entorno grafico en marcha pero eso no significa que esto sea una autentica chapuza. En cuanto a la documentacion un desastre.

----------

## cameta

De momento ya he conseguido que funcione el teclado en español con HAL

Con la policy

10.keymap.pci

```
<merge key="input.xkb.layout" type="string">es</merge>
```

Pero la falta de una documentación detallada es un autentico handicap.

Ahora mi objetivo es que funcione la rueda del raton sin necesidad del xorg.conf

----------

## Luciernaga

¿de qué tarjeta gráfica y su tipo estaríamos dialogando ...?

----------

## cameta

Es una nvidia

----------

## pcmaster

La nvidia tienes que configurarla en el xorg.conf si usas los nvidia-drivers. Solo pueden detectarse automáticamente drivers libres, o eso creo.

----------

## Luciernaga

puuffff ..., tengo cuatro Nvidias y el xorg.conf no es igual en ninguna ..., te comento ...

En concreto ahora mismo tengo la Gentoo solo en dos de ellas y diferentes como de la noche al día, una es la MX-440 y la otra una 9600GT ..., para más INRI esta última la tengo conectada a dos (1+1) monitores y para que se vea una pantalla panorámica de 2560x1024 pixels la tengo que configurar a mano ...

Procedimiento seguido:

Xorg -configure

este comando me crea un archivo (xorg.conf.new) en /root ...

cp /root/xorg.conf.new /etc/X11/xorg.conf

este comando me lo copia en /etc/X11/ ...

nano -w /etc/X11/xorg.conf

con este editor solo modifico lo siguiente ...

Esta sección nueva al principio del archivo.

Section "ServerFlags"

Option "AutoAddDevices" "false"

EndSection

En la sección "Module" comento la línea Load "dri" y otra dri2 si la hubiere. (# Load "dri")

En la sección "InputDevice" del teclado agrego estas líneas ...

Option "XkbRules" "xorg"

Option "XkbModel" "pc105"

Option "XkbLayout" "es"

En la sección "Monitor" agrego esta línea ...

Option "ReducedBlanking"

En la sección "Device" se modifica la línea del driver ...

Driver "nvidia"

La sección "Screen" queda modificada así ...

Section "Screen"

Identifier "Screen0"

Device "Card0"

Monitor "Monitor0"

DefaultDepth 24

Option "RenderAccel" "True"

Option "AddARGBGLXVisuals" "True"

Option "NoLogo" "false"

Option "TwinView" "1"

Option "metamodes" "DFP-0: 1280x1024 +0+0, DFP-1: 1280x1024_60 +1280+0"

SubSection "Display"

Viewport 0 0

Depth 24

Modes "1280x1024"

EndSubSection

EndSection

La última sección nueva así ...

Section "Extensions"

Option "Composite" "Enable"

EndSection

Si solamente hay un monitor esta línea debe quedar así:

Option "metamodes" "DFP-0: 1280x1024 +0+0"

El problema de todo esto es la nueva API de Xorg que configura automáticamente la tarjeta gráfica, en teoría, porque hay tarjetas como la mía 9600GT que no la detecta. Por ejemplo en una distro derivada de las Canonicales el archivo xorg.conf es así:

Section "Screen"

	Identifier	"Default Screen"

	DefaultDepth	24

EndSection

Section "Module"

	Load	"glx"

EndSection

Section "Device"

	Identifier	"Default Device"

	Driver	"nvidia"

	Option	"NoLogo"	"True"

EndSection

... y funciona, concretamente es una Nvidia 8500GT, en la que escribo este mensaje, por supuesto que no te funcionaría en tu equipo ...

Venga prueba esto que te digo a ver sí ....  :Wink: 

PostData:

Seguro que no te has dado cuenta del mensaje que devuelve el sistema cuando se configuran las Xs ...

eselect news list

Este comando te lista los mensajes pendientes de leer ...

eselect read nombre_del_archivo

Este comando te presenta en pantalla el mensaje, en inglés, el de la nueva API creo que es el 7.0 ...

Podría ser posible que en la nueva sección "ServerFlags" tuvieras que agregar esta línea ...

Option "Xinerama" "0"

... en dependencia del tipo de monitor instalado en el equipo y del uso a que se destine, por ejemplo a reproducir alta definición ...

----------

## opotonil

Por si te vale, yo estoy usando uno sencillito sencillito y seguramente mejorable:

```

Section "ServerLayout"                                   

        Identifier     "X.org Configured"                

        Screen         0 "screen" 0 0                    

EndSection                                               

Section "Files"

        ModulePath   "/usr/lib64/xorg/modules"

        FontPath     "/usr/share/fonts/misc/" 

        FontPath     "/usr/share/fonts/TTF/"  

        FontPath     "/usr/share/fonts/OTF"   

        FontPath     "/usr/share/fonts/Type1/"

        FontPath     "/usr/share/fonts/100dpi/"

        FontPath     "/usr/share/fonts/75dpi/" 

EndSection                                     

Section "Module"

        Load  "wfb"

        Load  "xtrap"

EndSection           

Section "Monitor"

        Identifier   "monitor"

        VendorName   "Sony Corporation"

        ModelName    "Vaio [VGN-FZ21M]"

EndSection                             

Section "Device"

        Identifier  "card"

        Driver      "nvidia"

        VendorName  "nVidia Corporation"

        BoardName   "G86M [GeForce 8400M GT]"

        BusID       "PCI:1:0:0"

        Option      "NoLogo" "true"

EndSection

Section "Screen"

        Identifier   "screen"

        Device       "card"

        Monitor      "monitor"

        DefaultDepth 24

        SubSection "Display"

                Viewport 0 0

                Depth    24

                Modes    "1280x800"

        EndSubSection

EndSection

Section "Extensions"

        Option  "Composite" "Enable"

EndSection

```

Salu2.

----------

## cameta

Hola de nuevo,

de momento ya funciona el mouse wheel

pero eso si tengo que seguir teniendo un xorg.conf

Con sólo esto y funciona.

 *Quote:*   

> Section "ServerLayout"
> 
> 	Identifier     "X.org Configured"
> 
> 	Screen      0  "Screen0" 0 0
> ...

 

Bueno de momento esto funciona.

----------

## pelelademadera

hace un nvidia-xconfig. con eso tiene que andar.

te paso mi xorg.conf para una 8600gt tendria que ser el mismo para la tuya

 *Quote:*   

> #Section "ServerFlags"
> 
> #Option "AllowEmptyInput" "off"
> 
> #EndSection
> ...

 

----------

## cameta

Mañana si tengo un rato miraré porque no funciona sin el xorg.

Mirando los mensajes he visto algo curioso:

Recent versions of xorg's X11 require kernel support to access PCI and AGP

graphic cards.

----------

## cameta

Nada a hacer. Simplemente se ve que al usar un driver binario y propietario necesitas un xorg.conf, si bien este puede ser muy sencillo.

----------

## vincent-

Vayamos por partes.

Primero. Necesitas es tener soporte para evdev en tu kernel. Si todavía conservas el .config asociado al kernel que estás usando, lo puedes comprobar fácilmente con:

```
grep EVDEV /usr/src/linux/.config
```

La salida de eso debería ser: CONFIG_INPUT_EVDEV=y

Si no es así, tienes que arreglarlo. Para añadir soporte para evdev en tu kernel, dentro del menú de configuración del kernel (make menuconfig) tienes que ir a:

```
Device Drivers  --->

    Input device support  --->

          <*>   Event interface
```

----------------------------

Segundo. En tu /etc/make.conf debes tener estas dos lineas:

```
VIDEO_CARDS="nvidia"

INPUT_DEVICES="evdev"
```

Nota: si se trata de un portátil y necesitas soporte para un touchpad synaptics, añade synaptics a la variable INPUT_DEVICES.

----------------------------

Tercero. Asegurate de tener las USE flags hal y dbus activadas. Puedes averiguarlo haciendo:

```
emerge --info | grep USE
```

Eso mostrará todas las USE flags que tienes activadas. Busca hal y dbus por ahí, y si alguna de ellas no estás, añadela a tu variable USE en el /etc/make.conf

----------------------------

Cuarto. Con la nueva configuración, ejecuta:

```
emerge -DNua world
```

Esto debería recompilar Xorg y posiblemente instalar algún paquete más. Asegurate una vez más que el paquete x11-base/xorg-server tiene la USE flag hal activada

----------------------------

Quinto. El fichero de configuración xorg.conf. Tan sólo necesitas tener estas cuatro lineas:

```
Section "Device"

    Identifier     "Card0"

    Driver         "nvidia"

EndSection
```

----------------------------

Sexto. Añade los demonios hal y dbus al nivel de ejecución por defecto, y después ejecútalos manualmente para no tener que reiniciar:

```
rc-update add hald default

rc-update add dbus default

/etc/init.d/hald start

/etc/init.d/dbus start
```

----------------------------

Y para terminar inicia las X.

----------

## Luciernaga

Gracias peratu ..., tomo muy buena nota también de este pequeño tuto ...  :Wink: 

----------

## pcmaster

Hola de nuevo.

He leído el tutorial de peratu (muy clarito, gracias) y lo único que me faltaba hacer es poner el

INPUT_DEVICES="evdev"

en /etc/make.conf.

hald ya lo tenía en el default, pero dbus no sale el hacer un rc-update show, aunque un /etc/init.d/dbus status dice que está started. Quizá otro servicio que sí esté en la lista dell rc-update lo lance.

Si intento hacer un emerge -DNua world dice que recompilará un sólo paquete, x11-base/xorg-drivers-1.6, pero con cambios:

```
# emerge -DNua world

These are the packages that would be merged, in order:

Calculating dependencies... done!

[ebuild   R   ] x11-base/xorg-drivers-1.6  INPUT_DEVICES="-keyboard* -mouse*" 

Would you like to merge these packages? [Yes/No] 
```

Espero no romper nada...

---Edito---

Recompilado paquete, nada roto  :Very Happy: 

----------

## cameta

 *Quote:*   

> dbus no sale el hacer un rc-update show

 

rc-update show --verbose

Y a mi me sale.

Por lo que veo no lo tengo activado en rc-update

crypto-loop |                               

cupsd |      default                  

dbus |                               

device-mapper |                  

Pero si esta iniciado

/etc/init.d/dbus status

 * status:  started

Igual lo ha activado el syslog-ng.  :Confused: 

----------

## opotonil

Si no recuerdo mal si teneis "hal" en el "rc" tiene un "need dbus" en el script de inicio, que imagino sea el que inicia "dbus".

Salu2

----------

## cameta

Así todo aclarado.

----------

