jueves, abril 30, 2009

Kernel Mode-Setting con Intel 945GM en Debian

Hoy dediqué unos minutos a probar Kernel Mode-Setting en el Debian de la laptop, aprovechando que tiene una placa de video Intel Mobile 945GM/PM/GM, que según dicen funciona razonablemente bien para KMS.

El sistema operativo de la laptop es casi en su totalidad Debian Lenny, salvo por el OpenOffice, que es el 3.1 de experimental, por lo que no quería meter demasiados paquetes de otros repositorios.

Para arrancar, hace falta un kernel bastante nuevo. En inestable está el 2.6.29 que para esto viene muy bien. De paso trae soporte para ext4 y btrfs.

Posteriormente, algún servidor X.org más o menos reciente: xorg, xserver-xorg 7.4 y xserver-xorg-core 1.6.1 de unstable, más las dependencias que correspondieron (xserver-xorg-input-*, xserver-xorg-video-*, hal, console-setup, etc.).

También es necesario un driver de video intel actualizado: xserver-xorg-video-intel 2.7.0, con libdrm-intel1 y libdrm2, todo de sid. Y finalmente, para no perder la aceleración 3d, hay que actualizar libgl1-mesa-glx, libgl1-mesa-dri, libglu1-mesa y mesa-utils a la versión 7.4.

Luego de reiniciar con kernel 2.6.29 (aunque no es necesario, conviene para ver que todo ande correctamente) el pegamento que une a toda esta mezcla es crear un nuevo initrd con KMS habilitado desde el inicio, para ello, en el archivo /etc/initramfs-tools/modules hay que agregar.
# Enable Kernel Modesetting
intel_agp
drm
i915 modeset=1
Y luego regenerar el initramfs:
# update-initramfs -k `uname -r` -u
tal como se especifica en la Debian Wiki.

Como ultimo paso antes de reiniciar con KMS activado hay que editar el archivo de configuración xorg.conf, comentando todas las líneas (todas) o directamente creando un archivo xorg.conf de tamaño cero (previo backup por supuesto) pues ahora el servidor X trata de autodetectar los dispositivos existentes.
# cp /etc/X11/xorg.conf /etc/X11/xorg.conf.pre-kms
# rm /etc/X11/xorg.conf
Y listo. Reinicio y arriba KMS.

Con aceleración UXA, compiz y todo, la interfaz gráfica se siente realmente mucho más liviana, incluso mejor que sin compiz en el driver anterior, y el cambio entre terminales y la gráfica es casi imperceptible.

La verdad, es una maravilla. Mis felicitaciones a todos los que metieron código para hacer posible este avance. Esperemos que llegue pronto a las restantes placas de video.

2 comentarios:

Marcelo dijo...

¡Buenísimo!

Ahora, quiero un post de cómo hiciste para volver la ensalada de paquetes y repositorios a su normalidad! :-P

Abrazo

PD: No era mejor probar Fedora 11 Rawhide? Bueno, la experiencia lo vale... Mis 2 ctvs.

Mauro Meloni dijo...

Que hacés Marcelo! Un honor tenerte por estos lares!

Estás en lo cierto en que hubiera sido más sencillo probarlo con Fedora Rawhide, lo que ocurre es que mi idea de probar KMS era para usarlo definitivamente si andaba bien, y de haberlo hecho con Fedora debería haber tenido que cambiar el S.O. Como realmente anda bien, ya quedó definitivo en el debian de la laptop (no hubo rollback).

Por otro lado, es posible tener activos varios repositorios en sources.list (en esta máquina, por ejemplo, están habilitados los de estable, en pruebas, inestable y experimental) y definir uno a utilizar por defecto mediante la directiva

APT::Default-Release "stable";De esta forma, todos los paquetes que solicite instalar y existan en estable serán instalados con una versión de dicho repositorio, los paquetes que no existan en estable serán instalados automáticamente desde otro repositorio y así. Esta directiva también permite hacer

aptitude full-upgrade sin temor a romper cosas, pues actualiza sólo las versiones nuevas desde los repositorios correspondientes a cada paquete (si un paquete es de estable, será actualizado sólo si hay una actualización en estable; si un paquete es de inestable, será actualizado sólo si hay una actualización en instable, y así), con lo cual la gestión de paquetes se hace bastante más sencilla.

Che, avisen con Efra después del bsdday a ver si nos cuentan que tal están andan pequeños demonios.

Saludos!