viernes, 31 de agosto de 2012

Nouveau con aceleración 3D

Nouveau es un proyecto de Software libre y de código abierto que tiene el objetivo de crear un controlador de hardware libre para las tarjetas gráficas Nvidia, mediante el uso de ingeniería inversa de los controladores propietarios de GNU/Linux y del hardware Nvidia.

Este proyecto de la X.Org Foundation y freedesktop.org se baso originalmente en el controlador "nv" liberado anteriormente por nvidia. El nombre del proyecto hace referencia al hecho de que "nouveau" significa "nuevo" en francés.

- La aceleración 2D tiene una madurez suficiente para trabajar en el día a día.

- El uso de KMS es obligado, forma parte del driver y es necesario. Es además el principal punto conflictivo para aquellos que quieren usar el driver de nvidia privativo. Es necesario, en aquellos casos, desactivar el KMS (metiendo por ejemplo el módulo nouveau en el blacklist de modprobe).

( KMS (Kernel Mode Setting) es una tecnología que permite que sea el kernel y no el driver X11, el encargado de manejar el modo gráfico de la consola. Esto reduce la carga en el sistema, y permite que ciertas operaciones se realicen algo más rápido. Pero también ayuda a los desarrolladores a solucionar problemas del kernel cuando el sistema de ventanas X está ejecutándose. Sin embargo, apenas notaremos diferencias, salvo quizás mejores tiempos cuando realizamos el cambio de un usuario a otro en la misma máquina, algo que no utilizamos muchos de nosotros pero que es una consecuencia directa de la aplicación de KMS )

- El driver tal y como lo proporciona el paquete de Debian Squeeze no posee capacidad de aceleración 3D (a petición de los desarrolladores de nouveau). Si deseas tener soporte para aceleración 3D (totalmente experimental, y solo funciona en algunas tarjetas), dirígete al sitio de nouveau, donde se explica como compilar los drivers con soporte para Gallium3D. Sin embargo en Debian Wheezy si incluye aceleración 3D.

Direct Rendering Manager (Gestor de Renderizado Directo o DRM) es un componente de Direct Rendering Infrastructure (Infraestructura de Renderizado Directo o DRI), que provee a sistemas operativos tipo Unix, como Linux, FreeBSD, NetBSD, y OpenBSD de aceleración gráfica eficiente, especialmente para aplicaciones 3D.

Consiste en dos módulos del kernel: un módulo genérico llamado drm, y otro específico para el chip gráfico de que conste el hardware. Estos dos drivers en conjunto permiten que un cliente en el espacio de usuario (userspace) pueda acceder al hardware de vídeo de manera más o menos directa, acelerando de este modo la producción de imágenes.






Instalar Nouveau con aceleración 3D

Si realizamos una instalación limpia y nueva de Debian GNU/Linux Squeeze, el driver que incluye por defecto para las tarjetas gráficas nvidia es nouveau, pero este no incluye aceleración 3D.

A partir de la actual Debian testing llamada Wheezy, el driver nouveau incluye aceleración 3D por defecto.

Con la utilización del siguiente comando en una consola virtual, podemos verificar que contamos con aceleración 3D,

glxinfo | grep direct


También podemos ver que tenemos habilitada la aceleración 3D, haciendo uso de la herramienta de kde llamada kinfocenter. Nos dirigimos al apartado Información Gráfica, en los submenus Servidor X y OpenGL




Para asegurarnos que tendremos un funcionamiento decente en la aceleración 3D usamos el siguiente comando:

# glxgears



Vemos somos los engranajes empiezan a funcionar y en la otra ventana a parecen los frames, con un resultado decente, aunque muy lejos del driver privado de nvidia. Aun siendo el driver privado mejor que el libre, me quedo con el driver libre Nouveau con gallium 3D.




Con esta aceleración 3D, podemos hacer de todo, jugar, usar programas que necesite aceleración 3D, etc... y todo con software libre.





Instalar Nouveau y desinstalar Nvidia desde synaptic

SI tenemos instalado el driver propietario de nvidia, y ahora después de leer este manual nos damos cuenta que con el driver libre NOUVEAU, podemos hacer lo mismo pero con el driver libre, los pasos a seguir son los siguientes:

Tenemos que deshacer los pasos dados anteriormente para instalar el driver privado de nvidia, tal como se indica en el manual de instalación del driver privado (enlace aquí)

Vamos a resumir los pasos a seguir para desinstalar nvidia e instalar nouveau.

- Primero. instalamos con synaptic el driver libre nouveau: xserver-xorg-video-nouveau


- Segundo. Eliminamos el módulo del driver nouveau de la lista negra en el fichero blacklist.conf que se encuentra en /etc/modprobe.d






Borramos el módulo del driver nouveau, (que aparece en la imagen de arriba) para que se cargue en el arranque del sistema. Quedando como se observa en la imagen de abajo.






También hemos de borrar todas la referencias al módulo del driver nouveau de los ficheros que se incluyen en la misma carpeta del fichero blacklist.conf, es decir de /etc/modprobe.d
y observamos como existen referencias al modulo nouveau en los siguientes ficheros:

- blacklist.conf
- nvidia-installer-disable-nouveau.conf
- dkms.conf

En todos estos casos borramos la referencia al driver nouveau o bien comentamos la línea con el símbolo almohadilla, ya que dicho símbolo, lo que hace es ignorar el contenido de dicha línea. Y añadimos a la lista el modulo de nvidia, para que no lo cargue en el arranque. (blacklist nvidia y blacklist nvidiafb)

blacklist.conf





nvidia-installer-disable-nouveau.conf



 dkms.conf




- Tercero. Ahora tenemos que desinstalar los siguientes paquetes y todas sus dependencias:

- nvidia-kernel-2.6.32-5-amd64 (o el que corresponda según nuestro sistema)
- nvidia-glx
- nvidia-xconfig
- nvidia-settings








Ahora ya esta desinstalado el driver de nvidia instalado desde los repositorios de Debian GNU/Linux.

*En caso de haber instalado el driver bajado desde la web oficialde nvidia, hemos de usar el siguiente comando en una consola y usando el usuario administrador:

nvidia-installer --uninstall

Ahora ya esta desinstalado el driver de nvidia bajado desde la web oficial de nvidia.

- Cuarto. El siguiente paso es borrar el fichero de configuración xorg.conf que se encuentra en /etc/X11 con la ayuda del programa krusader





 -Quinto y ultimo. Como previamente teníamos instalado el driver privado nvidia, este realiza modificaciones en el fichero de configuración de glx llamado libglx.so Este fichero se encuentra en el paquete xserver-xorg-core para restaurar dicho fichero a su estado original, tan solo tenemos que reinstalar dicho paquete, con la ayuda de synaptic.

apt-get install --reinstall xserver-xorg-core


Ahora lo mas fácil para un usuario novel es reiniciar el ordenador. y con esto ya tenemos el driver nouveau instalado y funcionando con aceleración 3D gracias a gallium 3D y a OpenGL.





VIDEOTUTORIAL









Enlaces para instalar el driver privado.

- Driver Nvidia
- Debian Squeeze, instalar driver Nvidia
- Nvidia - Driver privado oficial
- Desinstalar driver Nvidia






















miércoles, 29 de agosto de 2012

NX Free Edition para Debian


NoMachine NX es un programa que permite a los usuarios realizar conexiones a escritorios remotos, con mucha velocidad incluso en conexiones lentas con módem analógicos. Realiza una compresión directa del protocolo X11, lo que permite una mayor eficiencia que VNC. La información se envía mediante SSH, por tanto la información que se intercambian cliente y servidor está cifrada.

NX está desarrollado por la empresa italiana NoMachine, que ha liberado el código. Existe una versión libre de esta aplicación, llamada FreeNX.

La tecnología NX ofrece mejor rendimiento que otras debido principalmente a las características que se listan a continuación:

- Realiza una mejor compresión del tráfico entre cliente y servidor. La compresión del tráfico es necesaria para lograr ejecutar aplicaciones sobre medios de poco ancho de banda y también para permitir ejecutar múltiples sesiones de usuario en redes LAN.

- Utiliza métodos de cache para almacenar y reutilizar la información transferida entre cliente y servidor. Utiliza un método de cache innovador que divide el mensaje en dos partes, uno de identificación y otro de datos. Mantiene en cache únicamente los datos de los últimos mensajes enviados, clasificados por protocolo. A este cache se le conoce como MessageStore y hace que el número de peticiones para mostrar los elementos de pantalla disminuya considerablemente.

- Utiliza un algoritmo de codificación perezoso para realizar actualizaciones de pantalla. NX posee mecanismos de adaptación para ajustarse a las propiedades de la red (latencia y velocidad de conexión), lo que permite pasar de métodos estrictos de codificación a métodos perezosos que retrasan la actualización de pantalla cuando la red está congestionada.




Instalar el pack cliente / servidor NX NoMachine

Vamos a web de NoMachine: http://www.nomachine.com  

1- Nos dirigimos al apartado Download.

2- Ahora un poco mas abajo en el apartado NX Free Edition seleccionamos NX Free Edition for Linux

3- Descargamos los archivos correspondientes según nuestro sistema Debian instalado (32 ó 64 bits) en este manual usamos la versión de 64 bits (NX Free Edition for Linux - i386,  NX Free Edition for Linux - x86_64

Nos centramos en el apartado NX Free Edition for Linux DEB amd64 y descargamos los 3 paquetes necesarios client, node y server


4- Ejecutamos como administrador (root) en una consola virtual (konsole) los siguientes 3 comandos con el cual instalaremos en el sistema los paquetes anteriormente citados.

# dpkg -i nxclient_3.5.0-7_amd64.deb
# dpkg -i nxnode_3.5.0-9_amd64.deb
# dpkg -i nxserver_3.5.0-11_amd64.deb






Configuración de una conexión remota NX Client

Para empezar la configuración tenemos que ejecutar el asistente desde el menú de inicio (Aplicaciones > Internet > NX Client for Linux > NX Connection Wizard), o desde la consola con el comando: /usr/NX/bin/nxclient --wizard




La primera vez que se ejecuta  NX Client, este lo hace en modo asistente, en inglés NX Connection Wizard. Pulsamos en Next.



1- Asignamos un nombre a la sesión que estamos creando en el cuadro de edición Session.
Este nombre se utilizará para crear un fichero en: /home/nuestro_usuario/.nx/config/[nombre de session].nxs.
Si intentamos usar dos nombres iguales, el asistente no dejará usarlo, pero podemos eliminar el anterior archivo para poder utilizar este nombre de sesión.
Este nombre se utilizará posteriormente para identificar la maquina de entre todas las que hayamos creado.

2- Ponemos la dirección IP o el nombre de máquina (DNS) del servidor NX Server al que vamos a conectarnos.

3- Escribimos el puerto del servidor NX Server donde está escuchando el demonio SSH (por defecto es 22).

4- Seleccionamos el tipo de conexión que vamos a usar. Es recomendable usar  MODEM aunque esté conectado a través de RDSI, ADSL,LAN, pues aumenta la velocidad de la conexión y la comprensión de esta.

NOTA: Si selecciona LAN, no se utilizará la compresión en la conexión creada.

Pulsamos en Next para continuar.


Ahora vamos a configurar la conexión creada en la ventana anterior. 
Seleccionamos Unix, de entre las opciones disponibles (UNIX, Windows, VNC y Shadow).


En el siguiente apartado, elegimos el tipo de escritorio que utilicemos en el servidor de entre los disponibles (KDE, GNOME, CDE, XDM y Custom).

Dependiendo de la opción que hallamos seleccionado tendremos activo el botón de configuración de la sesión (Settings). Sólo las sesiones Windows, VNC y Unix/Custom permiten una personalización.

En el siguiente menú de selección, Select size of your remote desktop, elija un tamaño de ventana que sea funcional en su escritorio local (se recomienda una resolución mas pequeña que la máxima del monitor del cliente). 

Las opciones disponibles son:  

- Avaliable Area Utiliza todo el espacio disponible de nuestro escritorio.  
- Fullscreen Pantalla completa.  
- Custom Le permitirá personalizar la resolución mediante los tamaños W = Horizontal y H = Vertical. 

Observación: las ventanas se pueden redimensionar de forma interactiva, en cualquier momento.



Sólo se aconseja deshabilitar la encriptación, cuando el ordenador cliente dispone de pocos recursos. Disable encryption of all traffic.



Pulsamos en Next para continuar.


En esta ultima ventana podemos elegir.

- crear un enlace en el escritorio
- mostrar las opciones avanzadas de configuración.

Se aconseja seleccionar las dos opciones.
Pulsamos en Finish para finalizar el asistente.


Configuración avanzada (Configure...)

Ejecutamos una configuración de escritorio remoto realizada anteriormente. Pulsamos en Configure...




La pestaña General incluye las opciones anteriormente configuradas cuando dimos de alta al cliente NX, mas las siguientes opciones:

Server

La opción Remember my password. Guarda la contraseña del usuario.


El botón Key ... que permite comprobar la clave privada DSA así como importar una existente.


Display
 
En el apartado Display seleccionamos el tipo de compresión de imágenes. Lo se seleccionamos y los configuramos pulsando sobre el botón Settings...




Images

- Use booth JPEG and RGB compression. Permite utilizar una calidad de imagen personalizada al seleccionar Use custom JPEG quality.  
- Use JPEG image encoding. Utiliza solo comprensión de las imágenes JPEG.  
- Use RGB image encoding. Utiliza solo comprensión de los fondos de pantallas de colores planos. 

- Use plain X bitmaps. Sin compresión.

Perfomance

Por omisión está sin seleccionar todas las opciones ya que hacerlo supone deshabilitar algunas de las ventajas proporcionadas por el protocolo.

- Disable render extension, deshabilita cualquier tipo de aceleración.  
- Disable backing-store, deshabilita las mejoras en el inicio de la sesión.
- Disable the composite extension, deshabilita las extensión composite.
- Disable emulation of share pixmaps, deshabilita la emulación de compartir imágenes.
.


La pestaña Advanced configurar las opciones avanzadas

Network
   
- Disable encryption of all traffic. Desactiva la encriptación de la conexión SSL 
- Disable ZLIB stream compression. Desactiva la compresión ZLIB durante toda la conexión (y no sólo las imágenes como se podía hacer anteriormente)   
- Connect throungh HTTP proxy. Permite la conexión del cliente a través de un proxy HTTP.

System
 
- Disable derrefed screen updates: Desactiva la actualización de pantalla. 
- Cache. Configuramos la caché residente en memoria RAM, como la que se pueda guardar en el disco duro. Para eliminar la caché de sesiones anteriores haga clic sobre el botón Remove all cache files


En la pestaña Services indicamos de que servicios queremos disponer:

Devices

- Enable SMB printing and file sharing. Activa la compartición de archivos e impresión a través de SAMBA. Es necesario tener el servidor de SAMBA instalado en el sistema.
- Enable CUPS printing. Activa la impresión a través de CUPS.  
- Enable multimedia support. Habilita el soporte multimedia en el cliente remoto.


Multimedia
 
Pestaña Environment configuramos las variables de entorno, como son, el directorio del usuario, del sistema, el comando del demonio de impresión CUPS (cupsd) y los tipos de letras y tamaños utilizados.

Para terminar haga clic sobre Save para guardar las opciones o directamente OK si no le interesa guardarlas para posteriores sesiones.



Usar un entorno de escritorio LXDE, XFCE, etc...

En el siguiente apartado, elegimos el tipo de escritorio que utilicemos en el servidor de entre los disponibles (KDE, GNOME, CDE, XDM y Custom).


Pero, ¿como hacemos para usar otro entorno de escritorio que tengamos instalado por defecto?, Tal como lxde, xfce, etc...

LXDE

En el apartado Desktop, seleccionamos Unix, Custom y pulsamos en Settings...
En el apartado Application, seleccionamos la opción: Run the following command y usamos el siguiente comando: /usr/bin/lxsession lxde




XFCE


En el apartado Desktop, seleccionamos Unix, Custom y pulsamos en Settings...
En el apartado Application, seleccionamos la opción: Run the following command y usamos el siguiente comando: /usr/bin/startxfce4




Usar el selector XDMCP

En la siguiente opción vamos a usar el selector de escritorios que tengamos instalado en el servidor, para ello en el apartado Desktop seleccionamos Unix, XDM y pulsamos en settings



Y en login, seleccionamos la opcion: Let the NX server decide.





Videotutorial






























Mapa del teclado en consala - Debian Wheezy

Cuando estamos instalando Debian GNU/Linux y somos españoles lo mas normal es seleccionar el idioma y la distribución del teclado en español.

Suele pasar que por error nuestro en alguna actualización, o por un fallo del paquete de idiomas en una actualización, etc.... el mapa del teclado se desconfigure y lo habitual es que el mapa del teclado se autoconfigure por defecto en ingles.

Uno de los aspectos más molestos es no poder escribir con naturalidad en nuestro idioma (español en este manual) por falta de soporte de los caracteres especiales en el software. El juego de caracteres básico de ASCII es de 7 bits, y no incluye ni las vocales acentuadas ni la letra 'ñ'.

Existe la norma ISO-8859-15 también llamada ISO-Latin1 que abarca todos los caracteres.

Aun así existen problemas con el correo electrónico, muchos sistemas solo respetan 7 bits, por lo tanto, textos que podemos ver correctamente en nuestro ordenador probablemente se visualizará muy mal cuando los enviemos a otra persona.




Configurando la consola

Locales
Si usamos el comando locale en la consola de Debian GNU/Linux, este nos muestra la zona geográfica actualmente configurada.



En caso que tengamos el idioma mal configurado tendríamos que volver a reconfigurar las locales para el idioma español.

Para reconfigurar las locales usamos el siguiente comando:
dpkg-reconfigure locales

Debian GNU/Linux usa el paquete "locales" para instalar uno o varios de los muchísimos idiomas a los que esta traducidos.

Lo mas normal es que tengamos instalado dicho paquete, en caso de no ser así procederemos a su instalación, como siempre hacemos en este blog usamos synaptic o bien desde consola.

# apt-get install locales





Cambiar el idioma por defecto a español.

Lanzamos un consola virtual y nos logeamos como usuario root, y ejecutamos el siguiente comando:

dpkg-reconfigure locales


Al pulsar intro nos presenta el siguiente asistente de configuración en el cual hemos de ir seleccionando la o las opciones que nos interesen.

Observación: en este tipo de menús usamos las teclas de cursores (las flechitas) para movernos, la barra espaciadora la usamos para seleccionar, la tecla tabulador (Tab, arriba de Bloqueo Mayúsculas) la usamos para alternas entre las opciones disponibles y la tecla Intro (enter) se usa para aceptar la selección.

Para poner nuestro sistema Debian GNU/Linux en idioma español hemos de marcar las siguientes opciones.

es_ES@euro ISO-8859-15
es_ES ISO-8859-1
es_ES.UTF-8 UTF-8


==================================================
NOTA: las dos primeras letras en minúsculas indican el idioma ("es" para español), las siguientes dos en mayúsculas indican el país ("ES" para España) y lo siguiente a partir del idioma ("@euro ISO-8859-15" "ISO-8859-1" "UTF-8") es el tipo de codificación que utilizan para representar los caracteres.
==================================================


En la siguiente pantalla nos pregunta: ¿cual de los idiomas seleccionados quiere que sea el predeterminado?, en mi caso he elegido es_ES.UTF-8



En la siguiente pantalla nos informa que se ha completado con éxito, la instalación de los idiomas seleccionados.



Para asegurarnos que todo se ha configurado perfectamente usamos el siguiente comando:

locale



==================================================


Explicación de las normas de codificación de caracteres:

ISO 8859-1: es una norma de la ISO que define la codificación del alfabeto latino, incluye los diacriticos (como letras acentuadas, ñ, ç), y letras especiales (como ß, Ø), necesarios para la escritura de las siguientes lenguas originarias de Europa occidental: afrikaans, alemán, aragonés, catalán, danés, escocés, español, feroés, finés, francés, gaélico, gallego, inglés, islandés, italiano, neerlandés, noruego, portugués, sueco y vasco.

También conocida como Alfabeto Latino n.º 1 o ISO Latín 1

Esta norma pertenece al grupo de juegos de caracteres de la ISO conocidas como ISO-8859 que se caracterizan por poseer la codificación ASCII en su rango inicial (128 caracteres) y otros 128 caracteres para cada codificación, con lo que en total utilizan 8 bits.

Los caracteres de ISO-8859-1 son además los primeros 256 caracteres del estándar ISO 10646 (Unicode).


ISO 8859-15; es la parte 15 de ISO 8859,un estándar de codificación de caracteres definido por la Organización Internacional para la Estandarización (ISO). Es similar a ISO 8859-1 pero sustituye algunos símbolos poco comunes por el símbolo del euro y algunos otros caracteres que faltaban. Codifica los caracteres con 8 bits y puede usarse para representar el alfabeto y otros caracteres importantes para almacenar textos en: inglés, francés, alemán, español y portugués (entre otros idiomas de Europa occidental) en ordenadores.

Este conjunto de caracteres tambieén se denomina ISO_8859-15 y Latín-9.


UTF-8; (8-bit Unicode Transformation Format) es una norma de transmisión de longitud variable para caracteres codificados utilizando Unicode. Usa grupos de bytes para representar el estándar de Unicode para los alfabetos de muchos de los lenguajes del mundo. Es especialmente útil para la transmisión sobre sistemas de correo de 8 bits.





Re-Configurando la consola

Para reconfigurar la consola hemos de instalar con la ayuda de synaptic o bien desde consola, los siguientes paquetes (los paquetes antiguos como console-data, console-common y console-tools, ya no son necesarios y es recomendable borrarlos) :

apt-get install console-setup
apt-get install console-setup-linux



Ahora tenemos que reconfigurar el mapa del teclado para la consola de Debian GNU/Linux.

Lanzamos una consola o terminal tty como administrador y ejecutamos el siguiente comando dpkg-reconfigure console-setup, para reconfigurar el mapa del teclado en español.


Al cargar el asistente, lo primero que tenemos que seleccionar es el tipo de mapa de teclado que vamos a usar, en nuestro caso seleccionamos UTF-8 pulsamos en aceptar para continuar.


Ahora seleccionamos el Conjunto de caracteres que debe utilizar la tipografía en la consola, seleccionamos Buscar el conjunto de caracteres óptimo. Pulsamos en Aceptar para continuar.


en la siguiente pantalla seleccionamos el tipo de letra a usar. podemos seleccionar cualquier opción pero preferimos la opción: No cambie la tipografía del arranque/núcleo


Como el proceso de reconfigurar el teclado ha sido perfecto nos devuelve a la consola o terminal tty, para seguir trabajando con ella.


Con esto ya tenemos nuestra consola configurada en perfecto español español, podemos usar acentos y la letra ñ.



Algunas capturas de pantalla demostrativas.





















.