índice
¿El juego de todos los tiempos?
Todas las marcas comerciales mencionadas en la revista son propiedad de las empresas correspondientes y han sido usadas únicamente con fines informativos. La Redacción usa el sistema de composición automática Imprenta: Stella Maris Los DVDs incluidos en la revista han sido comprobados con el programa AntiVirenKit, producto de la empresa G Data Software Sp. z o.o. ¡Advertencia! Venta del presente número sin el consentimiento del editor es ilícita e ilegal.
2
Linux+ 1/2005
o indirectamente, con el ocio, o sea, juegos y multimedia (música, películas, comics). Os recomiendo especialmente la receta de preparar un juego propio a partir del motor Irrlicht, así como la descripción de la configuración del subsistema de sonido ALSA. También vale la pena conocer el artículo sobre Cedega, puesto que con esta herramienta por fin logré arrancar el juego que me traía interesado desde hace mucho: Star Trek: Elite Force. Es más, no encontré ningún problema mientras jugaba, y os diré que era un placer prolongar mis tests de este juego. Estoy convencido de que vosotros también conseguiréis jugar a vuestro juego favorito de Windows en Linux. Os invito a que leáis este número y cuento con vuestros comentarios en nuestra página www.lpmagazine.org/es.
Krzysztof Krawczyk Redactor Jefe Linux+
En este número de 6
:
Descripción del contenido de los DVDs Piotr Truszkowski, Michał Niwicki
Actualidades: 10
Novedades Witold Kieraś
12
El núcleo Linux Maja Królikowska, Tomasz Torcz
14
Debian
16
Mandrakelinux
17
Aurox
Grzegorz Prokopski
Daniel Koć
Jarosław Górny, Karol Kozimor
18
Aurox
La Redacción se ha esforzado para que el material publicado en la revista y en los DVDs que la acompañan funcionen correctamente. Sin embargo, no se responsabiliza de los posibles problemas que puedan surgir.
i os pidiera que eligiérais el juego de ordenador de todos los tiempos, ¿cuál escogeríais? Seguro que oiría como respuesta que es difícil indicar un único ganador. Y os diré que ese juego concreto será el más popular, con lo que me refiero no sólo a los jugadores fanáticos, sino a todos los usuarios de ordenadores. No necesariamente uno que emplee las tecnologías de programación más modernas, puesto que de igual forma podría ser un simple juego de destreza. Si yo preguntara a un típico usuario de ordenador si conoce el juego Doom 3 la respuesta probablemente no sería afirmativa. En cambio, si le preguntara si conoce Tetris, ya podría ser otra cosa. Yo apuesto por el segundo juego, ¿y vosotros? Para este número de Linux+ he seleccionado el material vinculado, directa
DVD A
Dirección: Software–Wydawnictwo Sp. z o.o., ul. Lewartowskiego 6, 00-190 Varsovia, Polonia
S
Gentoo
Witold Kieraś
DVD B
Mensual Linux+ está publicado por Software-Wydawnictwo Sp. z o. o. Producción: Monika Godlewska monikag@software.com.pl Redactor jefe: Krzysztof Krawczyk krzysiek@lpmagazine.org Redactores adjuntos: Piotr Truszkowski, piotrt@lpmagazine.org Marek Bettman, marekb@lpmagazine.org Michał Niwicki, mniwicki@lpmagazine.org Asistente de Redacción: Katarzyna Gajewska, kasiag@lpmagazine.org Preparación de DVDs: Krzysztof Krawczyk, Piotr Truszkowski Diseño portada: Agnieszka Marchocka Publicidad: adv@software.com.pl Suscripción: subscripcion@software.com.pl Maquetación y composición: Marcin Ziółkowski marcin@software.com.pl Traducción: Małgorzata Janerka, Hanna Grafik-Krzymińska, Carlos Troetsch, Paulina Stosik, Roberto Buchting Soza, Emil Oczepowski Correctoras: Rosario Ortega Serrano, Silvia López de Pariza Distribución: SGEL Avda Valdelaparra, No29, Polígono Industrial, 28108 Alcobendas (Madrid), España
índice
Tema del número Entretenimiento Entretenimiento
20
Cedega – juegos de Windows en Linux
Piotr Machej Los juegos modernos para los ordenadores de la clase PC en su gran mayoría requieren que se tenga instalado el sistema Windows. Por este motivo, la empresa TransGaming ha elaborado Cedega, es decir, una herramienta que permite iniciar los juegos de Windows en Linux.
26
Comparación de los motores de juegos 3D
Dariusz Dawidowski Si quisiéramos crear nuestro propio juego, no vale la pena empezar la labor desde cero, o sea, implementar los mecanismos elementales vinculados con el soporte del mismo. La mejor solución es emplear un recurso listo, es decir, el llamado motor de juegos. En el artículo, Darek compara cinco librerías más avanzadas dedicadas a los creadores de juegos y de entre ellas elegirá su favorita.
Entrevista
32
Entrevista a Peter Hunnisett, creador de Cedega y Point2Play
Krzysztof Krawczyk Esta vez hablamos con Peter Hunnisett, que encabeza el grupo desarrollador de Cedega, una herramienta que permite arrancar los juegos de Windows en Linux.
Software
34
GParted – editor de particiones del disco duro
Mateusz Papiernik Cuando queramos cambiar el orden de las particiones en nuestro disco duro, el programa GParted cumplirá con todas nuestras exigencias. Un rasgo muy importante de esta herramienta es su capacidad de cambiar el tamaño de la partición sin perder los datos allí almacenados.
36
Kaffeine – un reproductor multimedia
Witold Kieraś MPlayer y Xine son los programas más populares para ver películas. Su único inconveniente consiste en que ambos carecen de una buena interfaz gráfica. El programa Kaffeine es un frontend gráfico del motor Xine que conviene conocer. Sofware
38
Blob Wars – un juego de destreza
Piotr Machej Si queremos divertirnos un rato en nuestro ordenador, es aconsejable coger algún juego curioso. Una buena idea sería Blob Wars, un simple juego de destreza cuya elaboración está a un alto nivel.
40
Komics – gestor de las tiras cómicas
Piotr Machej En Internet es posible encontrar muchas de las llamadas tiras cómicas, o sea, unas historietas en forma de tebeo. El programa Komics facilita su adquisición, y posterior administración.
42
Coccinella – cliente de mensajería
Piotr Machej Se ha creado ya un número considerable de los clientes de mensajería que emplean el protocolo Jabber. El programa Coccinella destaca por ofrecernos la llamada tabla blanca.
44
Gubed – depurador de los scripts en PHP
Piotr Machej El análisis del código de un script en PHP puede llegar a ser mucho más fácil con el uso de Gubed.
46
Cssed – editor de hojas de estilo CSS
Piotr Machej Cada vez más utilizamos las hojas de estilo CSS a la hora de crear páginas web. Ellas nos ayudan a ordenar nuestro portal. El programa Cssed sirve para crearlas y administrarlas.
48
Vuurmuur – configurador de cortafuegos
Piotr Machej Configurar un cortafuegos no es precisamente tarea fácil, por lo que vienen creándose cada vez más herramientas que la facilitan. Vuurmuur es una de ellas.
50
FlightGear – un simulador de vuelo
Igon Skrzypek Si quisiéramos coger los timones de un caza ultramoderno o de un biplano veterano, vale la pena hacerse con el simulador de vuelo denominado FlightGear.
Primeros pasos
52
Comparación de programas multimedia
Piotr Machej Si hay dos aplicaciones igualmente populares, sus usuarios pueden discutir con ferocidad cuál de las dos se lleva la primacía y por qué. MPlayer y Xine cuentan tanto con sus aficionados como con sus adversarios. Piotrek, en su artículo, intentará resolver con objetividad cuál de ellos es mejor, tomando RealPlayer, VLC y XMMS como material adicional de comparación.
58
Trucos y truquillos Grzegorz Niewęgłowski
Equipo
60
ALSA y el sonido en Linux
Piotr Wolny En los núcleos 2.6 el subsistema de sonido por defecto es ALSA, una solución mucho más avanzada que OSS, el ya veterano. Sus amplias capacidades no se conocen demasiado, lo que se debe, por ejemplo, a que su documentación es muy escasa. En su artículo, Piotrek presenta las bases del trabajo con esta tecnología, además de explicar cómo utilizar sus capacidades más avanzadas.
Para programadores
70
Escribimos un juego a lo Quake
Marek Sawerwain Uno de los juegos FPS más conocidos es Quake. Si quisiéramos elaborar el juego desde el principio tardaríamos un par de años. Esto se puede solucionar con el uso del motor de juegos Quake, o uno similar. Marek demuestra en su artículo cómo crear rápidamente un juego tipo FPS sirviéndose de Irrlicht.
Tests
77
Creative Zen Xtra
78
SUSE Linux 9.2
80
Gericom EGO 1560 XL
Piotr Truszkowski
Piotr Truszkowski
Piotr Truszkowski
www.lpmagazine.org
3
descripción de DVDs aktualności
disco A
Linux+ Live DVD GamePak SUSE Linux 9.2 Live DVD SUSE es una distribución Linux alemana destinada, sobre todo, al mercado corporativo. Gracias a la adquisición de la empresa SUSE por la multinacional Novell, ha cambiado también la estrategia de publicación de este sistema. Os presentamos SUSE Linux 9.2 Live DVD. Como se puede adivinar por el mismo nombre, nos hacemos con una distribución de Linux que se inicia desde el DVD y que no necesita ser instalada en el disco duro. Es una oportunidad óptima para llegar a conocer SUSE más de cerca, compararlo con nuestra distribución preferida, demostrarla a nuestro propio jefe y decidir si vale la pena gastarse dinero, o si es mejor buscarle otro destino. Para arrancar SUSE Linux 9.2 Live DVD en la BIOS del ordenador, fijamos la unidad DVD como el primer dispositivo de arranque. Guardamos los cambios, reiniciamos el ordenador y otra vez seleccionamos SUSE de entre todas las opciones que aparecerán. Después de varios segundos, veremos la pantalla de inicio de sesión. A la izquierda tenemos un usuario preparado. Lo elegimos, hacemos clic en el botón de Login (sin contraseña) y pasado un rato, podemos ir examinando el sistema. La versión que publicamos contiene los dos entornos gráficos más populares: KDE y GNOME. Instaladores En el disco hemos colocado los instaladores de muchos juegos populares para el sistema Microsoft Windows, así que podréis instalar algunos de vuestros juegos preferidos en la plataforma Linux. Entre los títulos hallaréis los clásicos: Jagged Alliance 2, Kingpin, Baldurs Gate 2, Call of Duty, Deus EX, GTA Vice City, Mafia, Soldier Of Fortune 2, Max Payne, Need For Speed: Underground y Tiberian Sun. Para arrancar el instalador elegido, damos el comando
O
s entregamos el sistema Linux+ Live GamePak. No es un Linux+ Live típico que podáis adquirir adjunto con cada ejemplar de Linux+. Este sistema tiene como objetivo daros la mayor diversión posible. Hay decenas de juegos que esperan que los arranquéis. Así como el resto de los Linux+ Live, también el GamePak contiene la programación más importante discutida en este número. Los juegos que hemos publicado son los siguientes: – – – – – – – –
– – – –
Foobillard – billar 3D; FreedroidRPG – un juego al estilo de Diablo protagonizado por Tux; LMarbles – un interesante juego de lógica; LTris – un Tetris clásico; KDE Games – juegos KDE; GNOME Games – los juegos dedicados para el entorno GNOME; Wormux – un clon del juego Worms, conocido a los dueños de Amiga; Supertux – un clon del juego Super Mario Bros, conocido por las tragaperras y las consolas de juegos; en el papel de protagonista, en vez del famoso fontanero, el pingüinito Tux; LBreakout – un arcanoid clásico en condiciones modernas de audio y vídeo; Pingus – un clon de los Lemmings populares; Torcs – carreras de coches; FlightGear – un simulador de vuelo realista.
sh nombre_fichero_instalador.bin
en la consola de sistema. Cuidado: en todos los casos necesitaremos los discos con la versión original del juego, así como Cedega (WineX) totalmente operativo. http://liflg.sourceforge.net/ MPlayer El reproductor más popular para Linux en su versión más reciente. http://www.mplayerhq.hu/
Helix Player, RealPlayer Programas para reproducir el sonido y las películas que se emiten en línea. http://www.real.com/ http://player.helixcommunity.org/ Linux+ Live en acción
6
Linux+ 1/2005
Requisitos de sistema: – – –
procesador de la clase Pentium II; 256 MB RAM como mínimo, pero se recomienda 512 MB RAM; tarjeta gráfica con aceleración 3D (Nvidia o Ati).
Estas son sólo algunas de las posiciones. Especialmente pensando en vosotros las hemos clasificado entre las que exigen la aceleración 3D y las que no la necesitan. Si algún juego o alguna aplicación no funcionara tras haber sido seleccionada en el menú (lo que se refiere sobre todo a las tarjetas Ati), proponemos que se inicien desde la consola: –
–
–
Simutrans – arrancamos la consola del sistema, nos conmutamos al usuario root (el comando su -), entramos en el directorio del juego (cd /home/aurox/ Games/simutrans) y lo iniciamos con el comando ./simutrans; Marble Blast y Think Tanks – los arrancamos igual que el de arriba, en la consola del sistema como usuario root (requieren la aceleración 3D); Irrlicht – arrancamos la consola del sistema, nos desplazamos al directorio que contiene el programa (cd /home/ aurox/irrlicht) e iniciamos el ejemplo deseado con el comando: ./ex1, ./ex2 o ./ex3.
¡Pasadlo bomba!
disco A
descripción de DVDs
VMware 4.5.2
¿
Linux o Windows? Esta pregunta va de boca en boca entre la multitud de usuarios de ordenadores. Por un lado, quieren Linux (sin virus, sobresalientes capacidades de trabajo en la red, rendimiento); por el otro, Windows (juegos, programación comercial). Algunos optan sólo por Linux, otros sólo por Windows, y todavía hay terceros que combinan Linux con Windows en particiones diferentes. Pensemos que esto es cierto: queremos utilizar sólo Linux. Sin embargo, ¿qué hacer, si no cuenta con las aplicaciones que necesitamos? ¿Qué hacer, si queremos jugar a un juego que acabamos de comprar y que de ninguna manera se deja arrancar bajo Linux? Y, por fin, ¿qué hacer si no nos gusta perder el espacio para una partición Windows? La respuesta es muy fácil: instalamos VMware. Permite iniciar un ordenador virtual en nuestro propio ordenador e instalar allí un sistema operativo, que puede ser alguna de las versiones de Microsoft Windows, Sun Solaris,
Codecs Un conjunto de codecs, gracias a los que se terminarán las dificultades a la hora de reproducir películas. http://www.mplayerhq.hu/ PhET Programación avanzada para simular fenómenos físicos. http://www.colorado.edu/physics/phet/
VMware 4.5.2
Novell NetWare o FreeBSD. Gracias a eso, al disponer de Linux, podemos contar también con Windows. Trabajar en Linux, y en Windows, jugar. VMware facilita el trabajo, tanto el de los usuarios regulares, como el de los programadores, en un grado inmejorable. Es más, ahí podemos instalar también otras distribuciones de Linux si nos apeteciera probarlas en breve. http://www.vmware.com/
Trigger
L
as carreras de coches en Linux las hay, y muchas. Van de, por ejemplo, Torcs a Racer. No obstante, hasta ahora no se ha lanzado ningún juego de carreras con una presentación gráfica tan buena como la de Trigger. Nos sentamos al volante de uno de los coches disponibles en el juego, elegimos la ruta y ya podemos disfrutar de unos gráficos estupendos. El juego que aquí se presenta todavía no es la versión definitiva del producto, pero nos deja saborear un poco lo que nos aguarda en la versión
final. Desde luego, el precio que hay que pagar por esos esplendidos gráficos son sus grandes requerimientos de hardware. Necesitaremos una tarjeta gráfica con aceleración 3D, un buen procesador (más de 1.5 GHz) y 512 MB RAM. Merece la pena cumplir con estos requisitos, porque cae la posibilidad de que Trigger nos ocupe esas largas noches de invierno, de las que sí podríamos prescindir... http://www.positro.net/trigger/
Crimson Fields 0.4.5 Un juego de estrategia muy interesante inspirado en el ejemplo de la famosa serie Battle Isle. http://crimson.seul.org/ Cedega Time Demo 4.0.1 Una versión demo temporal del mejor emulador de juegos para Windows en Linux. http://www.transgaming.com/ OpenQuartz 2004.08.01 Un juego elaborado sobre el motor de Quake. http://openquartz.sourceforge.net Irrlicht 0.7.1 La versión más nueva del motor de creación de los juegos 3D. http://irrlicht.sourceforge.net/ Librerías Las librerías que apoyan a todo programador de juegos en su trabajo. A veces imprescindibles en el sistema del jugador. http://www.libsdl.org/ http://www.vorbis.com/ Torque 1.3 La versión de presentación del extraordinario motor comercial más reciente, que se ha utilizado en la construcción de muchos juegos excelentes. http://www.garagegames.com/ Nvidia, Ati Las versiones más recientes de los drivers para las tarjetas gráficas más populares del mundo. http://www.ati.com/ http://www.nvidia.com/ Amarok 1.1.1 La versión más reciente del mejor y más popular reproductor multimedia para el entorno gráfico KDE. http://amarok.sourceforge.net/ Kaffeine 0.5-rc1 Un frontend gráfico para Xine para el entorno gráfico KDE. http://kaffeine.sourceforge.net/ Documentación Un conjunto de la documentación del proyecto de documentación en Linux. http://www.tldp.org/
Trigger tiene un aspecto extraordinario
Listados Los listados de los artículos: ALSA e Irrlicht.
www.lpmagazine.org
7
descripción de DVDs
disco A
SimplyMEPIS 2004.05
M
EPIS es una distribución Linux que se ha ganado últimamente un círculo fiel de usuarios, ocupando la séptima posición en la clasificación de DistroWatch.com, el servicio dedicado a las distribuciones Linux. ¿Qué le permitió destacar tanto entre la multitud de distribuciones nuevas y las ya existentes? A continuación contestaremos a esta pregunta. SimplyMEPIS es una variedad del sistema designada a los usuarios principiantes. Es fácil en el uso y goza de unas bases firmes (proviene de Debian). Contiene muchísimas funciones del Centro de Sistema, del Centro de Instalación, así como las Herramientas del Usuario, que ayudan de forma considerable a configurar el sistema. Las acciones, que en otras distribuciones habrían tardado bastante y exigirían que se editaran los ficheros de configuración en SimplyMEPIS, se realizan con un solo clic del ratón. Si a todo esto añadimos la posibilidad de instalarlo en el disco duro, comprenderemos el porqué del éxito de esta distribución. Aquí tenemos lo que podemos encontrar en su edición más reciente, preparada especialmente para vosotros: – – – – – – –
kernel 2.6.7; XFree86 4.3.0; KDE 3.2.3; OpenOffice.org 1.1.2; K3B 0.11.14; GIMP 2.0.4; Mozilla 1.7.2 (con Java y Flash preinstalados);
SimplyMEPIS
– –
Frozen Bubble y TuxRacer; Xine 0.99.2, RealPlayer 10.0 y XMMS 1.2.10.
Es verdad que no es la última programación, pero va a satisfacer por completo a todos los que, en vez de las novedades apuestan por la estabilidad. Gracias a que viene apoyado en Debian, con el SimplyMEPIS conseguimos acceso a un enorme número de los repositorios de la programación. No hay que olvidar la cantidad de programación disponible en la misma distribución (¡más de 2 GB de aplicaciones!), que se puede probar sin que haga falta instalarla.
El disco DVD A incluye la imagen iso de un SimplyMEPIS listo para grabar. Cuando tengamos un CD que lo contenga, iniciamos el ordenador desde esta unidad, seleccionamos nuestro idioma y el modo de arranque que nos guste. Iniciamos la sesión como usuario demo con la contraseña demo, o como root con la contraseña root. En suma, SimplyMEPIS es una distribución Linux que, en gran medida, merece nuestra atención. Se caracteriza por la sencillez del uso, interesantes herramientas de administración, la autodetección del equipo, los drivers de NVIDIA, Java y Flash preinstalados, así como por sus amplios recursos de programación complementaria. Si tienes ganas de probar Debian, pero temes no arreglártelas con su instalación y configuración, SimplyMEPIS puede ser un sistema para ti.
Requisitos de equipo: – – –
– – – SimplyMEPIS un poco modificado
8
Linux+ 1/2005
procesador Pentium o superior; 256 MB RAM; 4 GB de espacio libre en el disco duro (en el caso de instalación en el disco); tarjeta de sonido; unidad CD/DVD; acceso a Internet será una ventaja adicional.
disco B
descripción de DVDs
Fedora Core 3
C
uando la empresa Red Hat anunció su decisión de dejar de lanzar la versión de libre acceso de su distribución de Linux y de enfocarse en los clientes corporativos y de servidor, hubo mucha agitación entre la comunidad de Linux. Nadie habría sospechado entonces que la misma empresa iba a contribuir al desarrollo dinámico del sistema de sobremesa Fedora Core. El 8 de noviembre del año pasado salió su tercera versión. Lo simple que es instalar el sistema y lo intuitivo de su manejo sitúan la nueva Fedora entre las distribuciones más perfectas para los usuarios que valoran la comodidad de su trabajo y su funcionalidad. De todas formas, no hay rosas sin espinas, a causa de las limitaciones de patentes, no encontraremos en Fedora algunos programas útiles y algunas de las librerías. En vano buscaremos los programas para reproducir los ficheros mp3, los drivers de las tarjetas Nvidia, o el soporte de la partición de ficheros Windows NTFS. Esos paquetes los tenemos que conseguir por nuestra propia cuenta. Fedora Core 3 se basa en el kernel marcado con las cifras 2.6.9-1, y el entorno gráfico X.org se ha suministrado en la versión 6.8.1-12.
Instalación
La instalación de Fedora Core 3 no debería ocasionar problemas, ni siquiera a los usuarios principiantes del sistema Linux. Gracias al instalador gráfico en español todo el procedimiento queda claro y transparente. Además, su ayuda describe en detalle cada paso de la instalación. Iniciado el ordenador, hay que seleccionar en la BIOS la unidad DVD como el primer dispositivo de
arranque. Después de que se hayan guardado los cambios y se haya reiniciado la máquina aparecerá la primera pantalla, en la que hay que escoger las opciones adicionales de la instalación. La configuración por defecto podemos seleccionarla pulsando la tecla [Enter]. Las operaciones clave que tenemos que llevar a cabo son la de seleccionar el tipo de instalación (ordenador de sobremesa, estación de trabajo, servidor, instalación individual), dividir el disco en particiones, configurar el programa de arranque, configurar la red (incluido el cortafuegos y la protección complementaria), y elegir los grupos de paquetes. El instalador nos guiará rápidamente por todo el procedimiento de la toma de decisiones de la instalación, aunque sólo copiar los paquetes nos puede ocupar un par de horas.
Arranque
Terminada la instalación de los paquetes, se efectuará el reinicio del ordenador. Debemos sacar todos los soportes de datos de las unidades, para que el reinicio del sistema se realice desde el disco, donde hemos instalado el sistema. Después del primer arranque de Fedora Core 3, seguirá su configuración postinstaladora. Seleccionamos la zona horaria, fijamos la contraseña del administrador (root) y configuramos las cuentas de otros usuarios. Terminada esta fase, el sistema está listo para trabajar.
Seguridad
Además de la configuración estándar del cortafuegos, como la restricción de acceso a los respectivos servicios de red, Fedora Core 3 cuenta con un sistema de protección complementario, llamado SELinux (Security Enhanced Linux). Su implementación se ha diseñado para mejorar la seguridad de operación de varias aplicaciones de servidor, minimizando, a la vez, los daños colaterales para el uso diario del sistema.
Instalación de la programación complementaria Página principal de Fedora
Para administrar la programación en Fedora Core 3 nos servimos del programa Yum. Gracias a él es posible añadir y eliminar con facilidad los paquetes
Fedora Core 3 después de su arranque
rpm seleccionados. Su manejo es muy fácil: basta con escribir en la línea de comandos yum install <nombre-paquete>, y el sistema buscará el paquete por su propia cuenta e instalará las aplicaciones o librerías que nos interesen. Seguro que esto nos interesa, ya que por culpa de las restricciones de patentes, a la distribución estándar no se le han agregado muchas más herramientas prácticas.
Resumen
Fedora Core 3 pertenece al grupo de distribuciones de desarrollo dinámico. Lo fácil que es instalarla y lo intuitivo de su uso la sitúan a la cabeza de los sistemas de sobremesa en el mundo. La recomendamos a todos los usuarios principiantes.
Requisitos del sistema:
Los requisitos mínimos de Fedora Core 3 para trabajar en modo texto: • •
procesador compatible con Pentium, recomendado 200 MHz o superior memoria 64 MB
Para trabajar en modo gráfico se necesitan: • •
procesador: se recomienda 400 MHz Pentium II o superior memoria: 192 MB como mínimo, se recomienda 256 MB
Espacio libre obligatorio en el disco: • • • • •
instalación mínima: 620 MB servidor: 1.1 GB como mínimo oficina, escuela y casa: 2,3 GB estación de trabajo: 3 GB todos los paquetes: 6,9 GB
Además, se requiere espacio para los datos de usuario.
www.lpmagazine.org
9
actualidades aktualności
Noticias iRiver en Linux iRiver, conocido fabricante de los reproductores multimedia portátiles, ha anunciado nuevos modelos de sus productos. PMP-120 y PMP-140 son reproductores con discos duros de 20 y 40 GB, que soportan los formatos MP3, ASF, WMA y WAV, MPEG-4, DIVX, XVID y AVI. Además de esto, este aparato tiene construido un visualizador do fotos y una radio. El reproductor posee una pantalla de colores 3.5' LCD y conexión USB 2.0, y pesa 299 g. Y no habría en esto nada espectacular si no fuera porque el sistema operativo de estos aparatos será Linux. http://www.theregister.co.uk/2004/10/ 21/iriver_pmp_ship/?7c486e48 SafeIC SafeIC es un ordenador, producido por la empresa australiana Cybersource, de una especial arquitectura, que no permite que le infecten diferentes tipos de virus, troyanos o programas tipo spyware. No permite ninguna modificación del sistema: después de cada arranque, la máquina limpia el sistema y vuelve a las opciones de fábrica. El fabricante afirma que no hay necesidad de instalar ningún tipo de programa antivirus ni cortafuegos. SafeIC permite trabajar normalmente, igual que un ordenador de oficina. Contiene, entre otros, el paquete OpenOffice.org, el navegador Mozilla Firefox, el comunicador Gaim y juegos y programas educativos. Esta máquina no posee disco duro, pero para guardar los datos podemos utilizar, por ejemplo, un disco USB. El precio de SafeIC es de 440 USD. http://www.cyber.com.au/cyber/product/ safe_internet_computer/ World Intellectual Wealth Organisation Cuestionando los métodos de acción de World Intellectual Property Organisation (WIPO), la sección europea de Free Software Foundation ha propuesto formar una nueva organización llamada World Intellectual Wealth Organisation. Los autores de esta idea han llamado a un nuevo análisis de los objetivos y de la forma de dar el monopolio en los diferentes campos del conocimiento. Critican los métodos de actuación WIPO y la necesidad de usar el término propiedad intelectual, lo que, en su opinión, es erróneo. El tiempo demostrará si la idea FSF Europe tiene efectos calculables. http://fsfeurope.org/documents/ wiwo.en.html
10
Linux+ 1/2005
novedades
A la tercera dimensión con ímpetu...
H
ace poco os informamos de dos proyectos de creación del entorno gráfico tridimensional. Hablamos de Looking Glass y Mettise. Algunos piensan que es éste un objetivo muy poco ambicioso; a esas personas pertenecen los creadores del proyecto Croquet. En los últimos días se ha publicado la primera versión de prueba de este proyecto, quizá también demasiado temprana, y que tiene como objetivo la creación de un entorno tridimensional embrionario de la realidad virtual. La noción principal aquí es el espacio, entendido como un tipo de envase para los objetos. En este modelo, el usuario es también un objeto. Los autores ponen como ejemplo el cuarto de juegos de un niño como un espacio, donde los juguetes son los objetos, y el niño puede entrar en cualquer momento y jugar con ellos, al igual que sacarlos del cuarto. En el proyecto Croquet los espacios pueden comportarse como cuartos, pero también como paisajes o salas de conferencias, en una palabra, tridimensionales; son envase para los objetos de cualquier dimensión. Además, los espacios pueden contener objetos que se pueden llevar a otros espacios. La siguiente noción es la de portal. Los portales son conexiones entre los espacios. A través del portal se puede pasar de uno a otro espacio. En el ejemplo del cuarto de juegos, el portal será sencillamente la puerta al corredor, que sería otro espacio. La diferencia fundamental entre el entorno Croquet y la realidad es el problema de la ubicación física. En la realidad los espacios deben físicamente ser vecinos, para que se puedan conectar, sin embargo, en el mundo virtual esto no tiene el menor significado, y por un portal se pueden conectar consigo cualquier dos espacios, incluso si uno de ellos se encuentra en un servidor que está a miles de kilómetros del servidor con el segundo espacio. Un caso interesante de portal en el mundo Croquet en el espejo. El espejo es sencillamente un portal conectado consigo mismo: es una puerta que lleva a este mismo cuarto del que acabamos de salir.
En el modelo Croquet el espacio es continuo (persistent). Esto significa que se puede guardar como archivos o puede trabajar en una máquina local o con un mando a distancia sin la intervención del usuario. Los espacios pueden utilizarse para unas acciones cortas para inmediatamente después ser eliminados, o pueden también ser parte de mayores proyectos a largo plazo, por ejemplo de juegos de red. Los creadores de Croquet afirman que es la personificación de la idea de un Internet post-bowser (post-browser Internet). Esto significa que representa a Internet en muchos aspectos, como por ejemplo en la creación de mundos locales por parte de los usuarios y su conexión entre sí de cualquier manera. Cada usuario puede visitar, si está autorizado, el mundo creado por otro usuario, al igual que puede visitar su página web. Los portales realizan la función de enlaces en las páginas web, gracias a lo cual podemos trasladarnos de un espacio a otro. En comparación con tales proyectos como Looking Glass, Croquet parece ser una idea visionaria, calculada a tener efectos no al cabo de unos meses sino después de muchos años. A ver cuánto tiempo va a llevar, no sólo la creación del entorno, sino el convencer a los usuarios de que cambien su actitud frente al tema del trabajo en la red y frente a la red como tal. ¿Comenzaremos a utilizar las primeras implementaciones de la realidad virtual dentro de algunos años, las que ahora sólo conocemos por la literatura de ciencia-ficción? El tiempo lo dirá... http://opencroquet.org/
Croquet no es solamente una ventana tridimensional
news@lpmagazine.org
¿Segunda guerra de navegadores?
C
uando en la segunda mitad de los años 90 la empresa Netscape Communications perdió la llamada guerra de navegadores contra Internet Explorer Microsoft, parecía que ya nada nos libraría de la pesadilla de las páginas proyectadas solamente para IE. La participación de casi cien por cien en el mercado de los navegadores adormeció la vigilancia de los decidentes del consorcio de Redmond, porque Internet Explorer ha sido claramente descuidado por la empresa. Además de los visibles problemas con la seguridad, IE no soporta demasiado bien a, entre otros, CSS; además en la opinión de muchos, sus faltas incluso frenan el desarrollo de Internet. Hoy en el mercado aparece una nueva estrella: Mozilla Firefox, enseguida ganándose un gran grupo de seguidores, que ha ido creciendo desde la primera edición, todavía de los tiempos cuando el navegador se llamaba Phoenix, y después Firebird. Su popularidad ha traspasado las expectativas, creo que incluso de los mismos creadores. Mozilla Foundation presenta actualmente Firefox como su mayor éxito, casi como el símbolo principal de la familia de programas del signo de
lagarto. Con relación a esto la edición estable de la versión 1.0 de Firefox ha sido planificada con gran ímpetu. Mozilla Foundation pidió a la comunidad una contribución que fue destinada a comprar toda una página de publicidad en uno de los diarios con mayor capacidad de creación de opinión en Estados Unidos, el New York Times, animando a descargar la nueva versión del navegador. Lo que es más interesante es que no es la primera vez que la comunidad ha demostrado que tiene el deseo de ayudar: la colecta planificada para diez días se terminó después de diecisiete horas, cuando se alcanzó la suma necesaria para comprar el anuncio. ¡Su contribución durante este tiempo la pagaron más de seis mil personas! Los creadores de Firefox han calculado que, en un año, son capaces de alcanzar el 10% del mercado. Por lo tanto, parece que el año 2005 va a ser muy caluroso en lo que se refiere al mundo de los navegadores, y Firefox puede convertirse en un serio jugador... http://www.theregister.co.uk/2004/10/25/ firefox_countdown/ http://www.spreadfirefox.com/
El MDE de Singapur a OpenOffice.org
E
l Ministerio de Defensa de Singapur ha decidido que no comprará la siguiente versión del paquete Microsoft Office, y que, en vez de éste, comenzará a utilizar OpenOffice.org. Una institución que tiene 20.000 máquinas significa otra pérdida para el consorcio de Redmond en el sector público. Cheok Beng Teck, director en el MDE de Singapur, ha asegurado que la decisión a esta migración se tomó porque las nuevas funciones de MS Office 2003 no justifican el aumento del coste de la licencia. Los usuarios de los viejos ordenadores en el ministerio tendrán ahora la posibilidad de escoger: o hacer uso del viejo paquete de MS Office, o del nuevo OpenOffice.org. Todas las nuevas máquinas tendrán instalado únicamente el paquete open source. Cheok no elimina la posibilidad de que en el futuro el ministerio decida cambiar el sistema operativo; entonces MS Windows se sustituiría por Linux. Por el momento ninguna decisión se ha tomado a este respecto y no hay un plan concreto para tal cambio. En esta decisión influirá, seguramente, cómo
se desarrollará y qué efectos tendrá el cambio a OpenOffice.org. Los creadores de OpenOffice.org ya desde hace un tiempo han visto que sus productos al igual que otros proyectos Open Source, gozan de cada vez mayor interés en las instituciones de la administración pública en todo el mundo. Los gobiernos comienzan a entender el sentido de los estándares abiertos, y también los convencen los argumetos económicos – ¿para qué pagar por algo, si podemos obtener gratuitamente algo muy similar? Micheal Meeks, uno de los desarrolladores de OpenOffice.org, ha notado que el dinero no es lo único que convence al usuario. OpenOffice.org se ha traducido a una gran cantidad de idiomas. Para las instituciones públicas de Singapur esto es de una gran importancia porque este país tiene hasta cuatro idiomas oficiales: inglés, chino, tamil y malayo, y OpenOffice.org es accesible en todos los cuatro idiomas, mientras que Microsoft Office 2003 sólo lo es en los dos más populares, el inglés y el chino.
sección llevada por Witold Kieraś
Noticias No a los patentes Ha surgido una nueva página web NoSoftwarePatents.com, que promueve la campaña en contra de la legalización de los patentes del software. En ella, podemos leer sobre este problema y cómo hacerle frente en Europa. La situación legal en los Estados Unidos no llena de optimismo, así que vale la pena hacer todo lo posible para no permitir la posibilidad de hacer patentes del software en la Unión Europea. http://www.nosoftwarepatents.com/ Linux seguro Trusted Computer Solutions, distribuidor de aplicaciones seguras, está creando su propia versión de Linux llamada Trusted Linux. Su estreno está planeado para la primavera del año 2005. Este sistema ha de ser una alternativa para el ya existente Trusted Solaris. Trusted Linux se construye sobre la base de SELinux. El sistema ha de cumplir el certificado Common Criteria Evaluation at Evaluation Assurance Level 4. http://news.zdnet.co.uk/software/ linuxunix/0,39020390,39170753,00.htm http://www.tcs-sec.com/index.html Creative Commons y GPL Creative Commons es un conjunto de licencias bastante liberales para diferentes tipos de propiedad intelectual; despierta muchas controversias en el entorno Open Source, porque sólo algunas de estas licencias son compatibles con GPL. Una comparación interesante de Creative Commons y GPL ha realizado el servicio africano Tectonic. http://www.tectonic.co.za/view.php?id=367 Un fanatismo poco saludable En el servicio Newsforge ha aparecido un artículo interesante y controvertido con el título How to be a Free Software zealot, escrito por Robin Miller, que presenta los errores más frecuentes cometidos por los recién convertidos a la idea del software libre. Tales fanáticos son capaces de hacer mucho daño, así que vale la pena pensar en si nosotros mismos no caemos en el fanatismo... http://www.newsforge.com/ article.pl?sid=04/10/14/219203 Información falsa En Internet ha aparecido información falsa sobre agujeros en la seguridad de los sistemas Red Hat/Fedora. El autor de esta noticia recomienda descargar las correciones de la página http:// www.fedora-redhat.com/ e instalarlas en el sistema: en realidad, el parche abre un agujero en el sistema de seguridad, en vez de remendarlo. ¿Realmente es así que Linux ya se ha vuelto tan popular como Windows de la empresa Microsoft, por el cual notoriamente se hacen pasar hackers de todo tipo? http://www.redhat.com/security/
www.lpmagazine.org
11
actualidades aktualności
Noticias Soporte del reproductor MP3 iRiver Geoff Okham ha compartido con todos sus destrezas para programar el kernel. Creó un driver que brinda acceso a la memoria del reproductor MP3 de la serie IFP, de la empresa iRiver. A diferencia de la mayoría de los dispositivos de este tipo, no lo soporta el driver de memoria USB. El parche fue probado en más de diez sistemas diferentes de la familia x86. http://www.sourceforge.net/projects/ifpdriver/ Mini kernel dump Itsuro Oda envió una carta anunciando una pequeña herramienta para guardar la imagen de la memoria del kernel cuando se estropea. Esta herramienta no es rival Diskdump. La herramienta de Itsuro está compuesta de un kernel pequeño que se ejecuta en el momento de ocurrir una avería del sistema, que traslada a todas las páginas de la memoria operativa a la memoria masiva, junto con el contenido de los búfers de los discos y la memoria no asignada. Esto puede parecer innecesario, pero el autor asegura que, en varias ocasiones, precisamente estos datos aparentemente inútiles le han permitido diagnosticar la causa de la caída del sistema. http://mkdump.sourceforge.net/ http://lkml.org/lkml/2004/10/14/283 Puertos efímeros TCP/IP aleatorios Una parte de muchos parches, definidos como incrementadores de la seguridad de red de Linux, es un fragmento que reduce el algoritmo de adjudicación de los puertos efímeros TCP/IP. Éstos son puertos temporales asignados durante la realización de las conexiones. Puesto que generalmente la selección del siguiente puerto consiste en un sencillo incremento, es muy fácil para el atacante acertar el siguiente número y tomar las medidas necesarias para perturbar la conexión. Esta situación se previene con la elección del puerto de forma aleatoria. El parche que presenta tal funcionalidad nos lo presentó Stephen Hemminger; un programador últimamente muy activo de la pila de red de Linux, autor, entre otras posiciones, del emulador de red netem. Su parche no ha despertado ninguna crítica, así que, probablemente, se implementará a Linux 2.6.10. http://oss.sgi.com/projects/netdev/ archive/2004-10/msg00381.html
12
Linux+ 1/2005
kernel
Método para tratar los problemas del tiempo real
E
l objetivo de muchas empresas que utilizan Linux en aplicaciones embebidas (ing. Embedded) es convertirlo en un sistema del duro tiempo real. Es un tipo de sistema que garantiza una reacción a un evento en un momento determinado. La palabra garantía es muy importante: el tiempo de reacción no puede ser corto, pero tiene que saberse que se encuentra por debajo del valor fijado. Y aunque la definición de tiempo real la entendemos intuitivamente como la reacción al corriente a un impulso, no hay formalmente un requisito de retrasos de milisegundos. El sistema puede tener incluso contado en horas el tiempo de reacción; lo que importa es el desarrollo de su funcionamiento y que los retrasos no sobrepasen el límite superior. Puesto que a los diseñadores les interesa, por lo general, la rapidez de la reacción, es importante que el cambio del fragmento del código ejecutado pueda realizarse con frecuencia. El primer paso es la división de este código en bloques lo más pequeños posibles. El segundo, la posibilidad de interrumpir la ejecución de la función entre tales bloques y el traspaso del control a otro sitio. Esta interrupción se llama expropiación. La expropiabilidad del kernel es un triunfo de la línea 2.6.x lanzada hace un año. Una vez que tengamos el kernel expropiado, sólo nos queda cuidar de que la expropiabilidad tenga la posibilidad de existir en la mayor cantidad de lugares posible. Cuánto menos lugares así, más se atrasará una eventual reacción al impulso, puesto que los bloques indivisibles del código son más largos. Todos los parches enviados últimamente se concentran precisamente en la reducción de los retrasos que nacen en el kernel. El primero de ellos, que inició la discusión, es la modificación publicada por la empresa MontaVista. Éste realiza cambios muy radicales en la arquitectura del kernel. Reduce los retrasos provocados por el soporte de las interrupciones, a través de la eliminación de los handles IRQ. Todo este proceso se lleva a cabo en el nuevo hilo del kernel, que se comporta como proceso y puede ser expropiado por ellos. Las estructuras fundamentales de los bloqueos en Linux, conocidas como bloqueos de bucles o spinlocks, se han convertido en semáforos que permiten así una mejor expropiación de
los fragmentos del código. El cambio no concierne a algunos spinlocks críticos que no pueden expropiarse. Éstos protegen las zonas donde tiene lugar directamente la programación del dispositivo, el soporte de la memoria o el proceso de secuencia. No obstante, para lograr todos estos objetivos con pequeños cambios en el código, el autor recurrió a un truco que se basa en cambiar el significado de los nombres de diferentes funciones. Por esta razón, así como por la inestabilidad excepcional, el parche representa el único punto de salida para la organización del modo de bloquear el kernel. De las ideas presentadas se apoderó Ingo Molnar. Desde hace cierto tiempo lleva una serie de parches de expropiación voluntaria (Voluntary Preemption), la cual ha contribuido a localizar y reparar varios sitios en el kernel donde ocurrían retrasos muy significantes. Ahora experimentalmente se ha ampliado con los cambios propuestos por MontaVista. Ingo para los cambios del comportamiento de los spinlocks utilizó un truco con prepocesador. Asimismo encontró muchos bloqueos en regiones críticas, las cuales no se debe tocar. La historia se repite y el siguiente parche de la empresa MontaVista se ha basado en las ideas de Ingo. También Bill Huey ha elogiado su solución. En su modificación, conocida como mmlinux, obtuvo un retraso consecutivo de 2 microsegundos, a veces de hasta 10 ó 12. Sin embargo, declaró que en los cambios omitió la pila de red. Y es precisamente el soporte de red la peor pesadilla para los desarrolladores de tiempo real en Linux. En este momento el retraso más pequeño garantizado resulta precisamente de la longitud del procesamiento de los paquetes. Los esferzos descritos arriba, por desgracia, se encuentran en una etapa temprana. Sin embargo, no hay que olvidar que Linux ya posee sus variantes que cumplen las premisas de la creación del sistema de tiempo real. Estos son: RTLinux y RTAI. En ambos el sistema principal del equipo no es el kernel de Linux, sino un sistema especializado de gestión de equipo y de tareas, en el cual uno de los procesos activos es Linux. http://mmlinux.sf.net/ http://lwn.net/Articles/106010/
kernel@lpmagazine.org
Reorganización en el área de los gráficos: DRM, FBCon y SNAPBoot
L
os drivers que se encargan del soporte de la consola de texto en el búfer del marco y que garantizan el soporte DRM (Direct Rendering Mechanism) para X Window muchas veces se cruzan en el camino. Es así porque rivalizan por el acceso al mismo equipo (a la tarjeta gráfica) y al tiempo del procesador, dando comandos contradictorios. Puesto que las tarjetas gráficas modernas contienen muchos registros (más de 200 en el caso de Radeon), es muy fácil que algo salga mal. Teniendo dos drivers operando en el mismo equipo, no hay manera de prevenir situaciones, en las cuales ambos simultáneamente intentan programar el sistema gráfico con parámetros contrarios. Por esta razón, con frecuencia, nos encontramos con que el sistema se cuelga durante el uso de la consola de texto, emulada en el búfer gráfico del marco, junto con el subsistema X, operado directamente en la tarjeta gráfica. Si llegara a ocurrir un bloqueo sólo del dispositivo gráfico, tenemos aún la posibilidad de salvar la situación ordenando a Linux que desactive la tarjeta. Esto lo permite el mecanismo PCI Hotplug junto con el driver Fake Hotplug. Una vez que volvemos a conectar la tarjeta sólo nos queda la esperanza de que se reinicie correctamente y todos los drivers se encuentren en su sitio. No obstante, muchas veces esto es imposible, ya que la tarjeta gráfica que se cuelga bloquea el bus PCI, paralizando eficazmente el sistema. La solución está en apartar de los drivers FB y DRM la parte que invoca al equipo y convertirla en un mediador seguro, que velará por evitar combinaciones dañinas de ordenes a la tarjeta. Los drivers FB y DRM se convertirían en librerías que llamarían las funciones facilitadas por el driver vinculado con el equipo. La realización de esta división la emprendió Jon Smirl. Por el momento concentra sus fuerzas en las tarjetas Radeon de la empresa ATI. Asimismo fruto de su trabajo será la eliminación del código duplicado que gestiona el equipo. Entre los nuevos usuarios del driver tiene la posibilidad de encontrarse la librería km. Aparte de ofrecer la interfaz Video4Linux, también permite enviar rápidamente datos desde la tarjeta gráfica hacia la memoria del sistema. Esto es muy útil para aquellos que utilizan GPU para cálculos numéricos, aunque también tiene aplicación en otros temas como,
por ejemplo, la aceleración de la extensión RENDER en los X. Quedándonos en el tema de la empresa ATI, vale la pena recodar la carta enviada por Kendall Benett. ATI estuvo patrocinando los trabajos sobre el emulador SNAPBoot, que tiene como tarea la ejecución del código que inicia la tarjeta gráfica, y que está en la BIOS de ésta. La importancia de esta acción se puede entender dándonos cuenta del hecho de que este código está escrito y pensado únicamente para la arquitectura x86. Y, como sabemos, Linux soporta una decena de arquitecturas. SNAPBoot, gracias a la emulación, permite ejecutar cualquier tarjeta gráfica (proyectada para i386) en cualquier arquitectura de procesador. La empresa de Kendall con mucho éxito lo emplea utilizando las tarjetas Radeon en PowerPC. También los usuarios del búfer del marco para las tarjetas VESA pueden estar contentos de la posibilidad de reiniciar la tarjeta. Desde hace tiempo luchan contra el problema del cambio de resolución de pantalla durante el trabajo y para determinar el parámetro de sincronización vertical por encima de los 60 Hz. SNAPBoot permite la realización, en cualquier momento, del código de la BIOS de la tarjeta gráfica responsable de esta función. Esto significa la posibilidad de cambiar la resolución y, para las tarjetas que soportan VESA BIOS Extensions en tercera versión (todas las modernas), el aumento de la sincronización vertical. De manera similar se las arregla con los cambios de los parámetros de trabajo de algunas tarjetas del subsistema X. La perspectiva de colocar en los fuentes del kernel un emulador parece una idea inaceptable; sin embargo, ofrece muchas ventajas, e incluso el código adicional no es de gran tamaño. A decir verdad, en la versión primaria el código compilado ocupaba 150 kB, aunque después de unos días apareció una carta de Paulo Marques donde se jactaba de haberlo reducido casi un tercio. En general, se busca la posibilidad de reducirlo por debajo de los 32 kB. Y si aún así fuera demasiado grande, podemos recurrir a una solución intermedia: el código de la BIOS de la tarjeta gráfica se facilita a través de sysfs, por lo que su interpretación puede llevarse a cabo en el espacio del usuario. http://lkml.org/lkml/2004/8/2/111 http://lkml.org/lkml/2004/10/14/155
sección llevada por Tomasz Torcz
Noticias Desfragmentación de la memoria Marcelo Tosatti, responsable de la serie 2.4.x. del kernel, desarrolló un juego de parches que se ocupan de la desfragmentación de la memoria principal. Y aunque sus parches están todavía en fase experimental (funcionan sólo algunos minutos), cumplen con sus tareas. Liberan grandes zonas continuas de memoria física, sin grandes problemas. Andrew Morton, colaborador de Linus durante la creación del 2.6.x, los vanaglorió y señaló su semejanza a los trabajos de hot-plug y hot-unplug de memoria, que añaden y quitan módulos de memoria sin tener que reiniciar el ordenador. Los parches de Marcelo han aportado ideas interesantes y optimizado el sistema. A la discusión se unieron los creadores de los parches memory hot-plug, intercambiando así sus experiencias. Los parches actuales se están probando en la arquitectura PCC64, perfecta para estas acrobacias. Andrew Morton dijo que si éstos funcionan igual de bien en IA64, arquitectura poco tolerante, entonces existirá la posibilidad de continuar el desarrollo en la línea principal del núcleo. http://lkml.org/lkml/2004/10/1/179 Secciones __init en x86 Para ahorrar memoria, parte de las funciones en el kernel de Linux se marcan de modo especial. Las funciones empleadas sólo durante el inicio del sistema son definidas, como __init, en cambio, las empleadas durante la inicialización de los dispositivos – con el sufijo __devinit. Una vez que el sistema ha arrancado, éstas ya no son necesarias – la memoria que ocupan se libera, y aparece el mensaje tipo Freeing unused kernel memory: 148k freed. No obstante, ocurren errores de programación que llaman a estas funciones, precisamente en el momento en que no se permiten. Situaciones así son muy difíciles de predecir; tras terminar la inicialización, el código de la función aún existe en la memoria, por lo que puede (aunque no debe) ejecutarse y nada, entonces, parecería indicar que se haya producido un error. Sin embargo, después de que haya funcionado el sistema durante algún tiempo, los saltos a la zona antes ocupada por las funciones __init generan un comportamiento anómalo de los programas que las ocupan. Para evitar estas situaciones, Pavel Machek propuso un parche que, justo antes de liberar la memoria, la rellena con un byte que marca la instrucción errónea. Cualquier salto a la zona anteriormente ocupada por __init provocará de esta manera un error fácil de localizar. http://lkml.org/lkml/2004/10/6/305
www.lpmagazine.org
13
actualidades aktualności
Noticias Informe SPI David Graham ha publicado el informe Software in the Public Interest, Inc. para el año 2003. SPI es una organización sin ánimo de lucro, la cual administra las finanzas de Debian, así como de varios proyectos y posee, entre otros, los derechos de logo de Debian. El informe contiene detalles sobre las finanzas SPI, los reglamentos y las normas de afiliación. Asimismo encontramos allí información sobre el equipo regalado a Debian, así como la propuesta de que wxWidgets se convierta en proyecto del miembro SPI. http://www.spi-inc.org/ http://lists.spi-inc.org/pipermail/spiannounce/2004/000103.html http://www.spi-inc.org/~jgoerzen/ar2004/ Apariencia coherente para Debian Jaap Haitsma notó que Debian, al contrario que otras distribuciones, no posee temas que se complementen bien. Por eso se creó DebBlue, conjunto de gráficos que jueguen bien, que le dan al sistema Debian una apariencia coherente desde su puesta en marcha hasta desconectar el ordenador. DebBlue contiene, entre otros, un tema para el gestor de inicio GRUB, uno durante la carga del kernel, y otro para el gestor de login GDM y fondo de escritorio. http://debblue.debian.net/ Debian GIS se ha puesto en marcha Francesco P. Lovergine ha anunciado la puesta en marcha del nuevo proyecto de Debian: DebianGis. Su objetivo es la creación de la Distribución Debian a Medida (Custom Debian Distribution), destinada a tareas vinculadas con los sistemas de información geográfica (Geographical Information Systems – GIS). Dentro de poco, el proyecto se ampliará con paquetes que permitirán el control sobre sensores remotos, así como la observación de la Tierra. Cualquier ayuda será bienvenida. http://wiki.debian.net/ index.cgi?CustomDebian https://alioth.debian.org/projects/pkg-grass/ http://pkg-grass.alioth.debian.org/cgibin/wiki.pl Empaquetar los drivers sin firmware Aurelien ha tocado el tema de los paquetes que contiene drivers que exigen para su funcionamiento firmware que no es Open Source. Marco d'Itri explica que si el driver puede compilarse y cargarse con éxito sin el firmware, entonces debería entrar a la sección main, ya que constituye Código Fuente Abierto. http://lists.debian.org/debian-legal/2004/ 10/msg00089.html http://lists.debian.org/debian-legal/2004/ 10/msg00097.html
14
Linux+ 1/2005
debian
Nueva edición del instalador
D
ebian se considera una distribución difícil de instalar, lo que, con seguridad, no contribuye a que gane nuevos usuarios. La principal causa de esta situación es su anticuado instalador y el hecho de que la anterior edición estable se publicara hace más de dos años algo que, lógicamente, no brinda soporte a nuevos equipos. Los desarrolladores de Debian conocen perfectamente estos problemas, por eso Sarge (la nueva edición estable), aparte de la programación actualizada y de los kernels más recientes (2.4.27 y 2.6.8.1), contendrá asimismo un instalador totalmente nuevo. ¿Existe, entonces, la posibilidad de que Debian sea percibido por los usuarios principiantes como un sistema fácil y cómodo de instalar? Los trabajos continúan a todo máquina para que la instalación básica, y a la vez sencilla, se lleve a cabo utilizando, práctica y únicamente, la tecla [Enter]. La configuración automática de la red (por supuesto, en presencia del servidor DHCP), la partición automática del disco (o las sugerencias del instalador para obtener una partición óptima), o también la posibilidad de cambiar el tamaño de la partición FAT32/NTFS durante la instalación serán, con seguridad, del gusto de los nuevos usuarios. Además, el instalador se ha traducido hasta ahora a 40 idiomas, por lo que 2/3 de la población mundial puede entender sus comunicados. Únicamente se pueden sentir desilusionados aquellos que esperaban que les recibiera un instalador en modo gráfico; sin embargo, esto no ha sido prioritario para los desarrolladores, ya que el modo de texto permite la preparación de una interfaz amistosa y, a la vez, de un funcionamiento preciso. Para consuelo de aquellos que se sienten traumatizados por el modo de texto, añado que, gracias a la construcción bien pensada y modular de todo el instalador, existe la posibilidad de emplear sobrecapas escritas, por ejemplo, utilizando la librería GTK o Qt. Los trabajos continúan sobre este tema, pero es casi seguro que no se terminarán antes de la publicación de Sarge. El instalador anterior no sólo fue criticado por los principiantes, sino también por muchos administradores
Instalador de Debian
experimentados que le han reprochado carencias en muchos campos. Sus peticiones y sugerencias se han tratado de implementar. Por eso, durante la instalación de Sarge podremos seleccionar uno de varios sistemas de archivos (aparte de ext2, estarán disponibles ext3, ifs, reiserfs y xfs). También se ha añadido la posibilidad de ejecutar Debian desde LVM o RAID1 (asimismo podemos crear RAID5 durante la instalación). Todo esto exige tan sólo 24 MB de memoria RAM. Naturalmente, puesto que Sarge estará compuesto de 14 discos compactos como mínimo, existe la posibilidad de instalación desde red, la cual podemos iniciar a partir de varios disquetes o un número mínimo de CDs. Para la primera ejecución también podemos emplear todo tipo de aparatos USB o Firewire. Como podemos observar, el nuevo instalador (desarrollado bajo el nombre debian-installer) es de una calidad excelente. Si quieres estar seguro de que la edición final de Sarge se instalará en tu sistema sin ningún problema, ya puedes testearla. Sobre todo que a finales de septiembre se publicó la siguiente versión de prueba denominada pre-rc2. Los desarrolladores esperan los comentarios de los usuarios, incluso el instalador nos facilita el envío de éstos creando durante la instalación un registro que contiene toda información importante. http://www.debian.org/devel/debian-installer/
debian@lpmagazine.org
Debian en el escritorio de un usuario común
M
uchos usuarios valoran a Debian como una elección poco óptima para tareas de oficina. El ciclo de emisión de la versión estable conlleva a que después de algunos meses la mayoría de los paquetes sean anticuados. Actualmente, los esfuerzos de los grupos que trabajan sobre los entornos de escritorio más grandes tales como KDE o GNOME, ocasionan que las nuevas versiones aparecen cada cierto tiempo. Lo mismo si se trata de herramientas como OpenOffice.org o GIMP. Los usuarios avazandos de Debian eligen, por lo general, la versión de prueba o inestable. A menudo esta elección significa bregar con los errores en los paquetes y problemas con las dependencias, así como las frecuentes actualizaciones. Por este motivo, desde hace algún tiempo, se pueden observar los esfuerzos por unir las mayores cualidades de Debian de modo amistoso e intuitivo para los usuarios comunes. El primero de los proyectos interesantes es Ubuntu Linux, basado en la versión inestable de Debian. Los creadores están convencidos de que el usuario no debería nunca estar obligado a usar el modo de texto para configurar el sistema. La distribución, junto con los paquetes de Debian, contiene asimismo paquetes adicionales (en el repositorio universe). La instalación se lleva a cabo en modo de texto a través de un instalador sencillo prestado de
Ubuntu Linux 4.10
Debian Sarge. Tras la ejecución del sistema, el usuario es recibido por GNOME (ligeramente modificado) en versión 2.8. Ubuntu también está fuertemente integrado con los elementos del Proyecto Utopia, lo que, para los usuarios, significa la posibilidad de emplear dispositivos USB o tarjetas PCMCIA. Además, la distribución ofrece fácil acceso a los drivers binarios (por ej. ATI y Nvidia), situados en un repositorio especial llamado restricted. Michael Banck estaba pensando si Ubuntu crea nuevas perspectivas de desarrollo para su hermano mayor. El proyecto, a opinión de los desarrolladores de Debian, representa un importante paso hacia adelante en las aplicaciones de oficinas. Parece que más de una docena de desarrolladores de Ubuntu han podido realizar, en tanto sólo unos meses, lo que cientos de asesores de Debian no han podido hacer en muchos años. Algunas de las modificaciones empleadas en el proyecto son tan interesantes que bien estaría adjuntarlas a los paquetes originales. Sólo nos queda la pregunta: ¿estarán dispuestos los desarrolladores de Ubuntu a ceder las correcciones para Debian? Los desarrolladores de Debian hacen lo posible, desde hace mucho, por acercar este sistema a los usuarios comunes. Con este objetivo se ha creado especialmente el subproyecto activo Debian Desktop. http://www.ubuntulinux.com/
sección llevada por B. Feński, T. Napierała
Noticias Nueva edición de los CDs con Debian GNU/Hurd K7 Philip Charles ha anunciado la publicación de la séptima versión de los CDs de la serie K con el sistema Debian GNU/Hurd. La principal característica del nuevo juego K7 es su calidad. El cambio más interesante, en comparación con las versiones anteriores de los CDs, son los paquetes de XFree86 4.3. En las páginas del proyecto Debian tenemos a nuestra disposición las instrucciones actualizadas de la instalación desde los CDs con el kernel GNU/Hurd. http://lists.debian.org/debian-hurd/2004/ 09/msg00084.html http://ftp.gnuab.org/pub/debian-cd/K7/ http://www.debian.org/ports/hurd/ http://www.debian.org/ports/hurd/hurd-cd Producción de discos CD y DVD para Sarge Steve McIntyre ha tratado el tema de la creación de imágenes de CDs y DVDs en la próxima edición. La creación de estas imágenes lleva algo de tiempo, incluso si usamos JTE. También ha iniciado el debate sobre cuál es la arquitectura con la que deben construirse los DVDs y si se pueden construir DVDs con los fuentes; la creación de DVDs de doble capa también exigirá la eliminación de algunos paquetes, puesto que el archivo de Debian contiene más de los que caben en el disco. http://lists.debian.org/debian-cd/2004/09/ msg00084.html http://www.einval.com/~steve/software/ JTE/ Status LSB en Sarge Roger So ha notado que la implementación de los hilos en glibc (NPTL) ya está anticuada en Sarge como para pasar las pruebas LSB 2.0. Jeff Licquia ha explicado que la actualización NPTL a la versión 0.61 es sumamente difícil sin la actualización de glibc a la versión más reciente, aunque después ha ofrecido la transferencia de NTPL 0.61 a glibc disponible en Debian. http://lists.debian.org/debian-lsb/2004/09/ msg00000.html Actualización del manual para desarrolladores Andreas Barth ha actualizado la mayor parte del Manual para desarrolladores de Debian. La actualización se ha basado, entre otros, en: la sincronización con una parte de los paquetes esperados y que requieren mayor esfuerzo, la actualización de la información del orden de envío de los paquetes al archivo, y la funcionalidad ftp-master y distribución testing. http://www.debian.org/doc/developersreference/
www.lpmagazine.org
15
actualidades aktualności
Noticias No hay posibilidades para YaST En una corta discusión, que se realizó en la lista PCLinuxOS, los creadores de esta distribución resolvieron las dudas en lo referente a la cuestión de utilizar YaST en lugar de Mandrakelinux Control Center. En su opinión, dicha herramienta, aunque no es mala, es, en primer lugar, demasiado complicada, no es un estándar y está fuertemente desarrollada con SUSE. En segundo lugar, MCC también es una buena forma para la administración gráfica de Linux. La esperanza del usuario que originó este tema se refería al hecho de que YaST, desde hace medio año, es accesible en la licencia GNU GPP, pero por lo visto esto no es suficiente. http://rpm.pbone.net/index.php3/stat/17/ dept/3/idg/System_YaST Dowser 0.26 Dowser es un programa experimental y prometedor, escrito en Python, que sirve para agrupar los resultados de los buscadores de red (actualmente Google y Teoma). Se trata de una herramienta que revisa las posibilidades de arreglárselas con la abundancia de respuestas durante la búsqueda de información en Internet. Después de instalarlo de la sección Contrib del repositorio Cooker (urpmi dowser), se arranca en la línea de comandos con el comando dowser y se puede utilizar en cualquier navegador web en la dirección por defecto http:// 127.0.0.1:5309/. Las futuras versiones contendrán también la implementación de búsqueda dispersa en base a las páginas visitadas por los usuarios de este sistema. http://dowser.sourceforge.net/ http://search.minty.org/ KlamAV 0.06 La versión anterior del programa no debería asustar a nadie, puesto que solamente es una interfaz gráfica para ClamAV dentro del entorno KDE. Los usuarios que utilizan únicamente Linux no obtendrán con ella ninguna ayuda. Esta versión se utiliza, sobre todo, para buscar virus en las particiones con el Windows instalado o para configurar el seguimiento de los contenidos de los directorios disponibles en una red local. De igual modo, el programa alberga la posibilidad de escanear el correo para los programas KMail y Evolution, lo que facilita la eliminación eficaz del spam producido por gusanos de Internet de cualquier tipo. La instalación del paquete con el repositorio Cooker (sección Contrib) desde la línea de los comandos del administrador se ejecutará a través de urpmi klamav. http://klamav.sourceforge.net/
16
Linux+ 1/2005
mandrakelinux
mandrakelinux@lpmagazine.org
sección llevada por Daniel Koć
Un vistazo a las novedades de Mandrakesoft
E
l otoño pasado fue tiempo para las ediciones que surgieron después de la publicación de Mandrakelinux Community 10.1. La primera edición es la versión final de la distribución, dirigida a la familia de procesadores x86-64. En ella hay muchas correciones del núcleo y novedades puramente de equipo, entre otras, el soporte activo de los modems Speedtouch USB). Han aparecido también nuevos paquetes, entre los que cabe destacar Apache-ASP, Audacity, ClanBomber, Ethereal, Snort o Trophy. Ha surgido además el cambio del previo devfs al udev. La segunda novedad es la versión final de esta misma distribución para los procesadores PowerPC. Los propietarios de los ordenadores G3 de la serie Beige han de tener paciencia aún, ya que RC1 todavía no funciona en ellos. La siguiente edición de prueba es Beta1 Multi Network Firewall 2, de la edición Mandrakelinux, designada a los servidores. En comparación con la versión anterior, las novedades que se presentan en MNF2 son el núcleo de la serie 2.6, la asignación estática de ruta de los paquetes, los alias de las tarjetas de redes y la utilización de VLAN. En cuanto al soporte de las redes virtuales (VPN), StrongSwan y Openswan han sustituido a FreeS/WAN; ha aparecido el control del movimiento (wondershaper), ECN, filtro Kazaa y NetMap; en parte, funciona la transición (bridging), la multiplicación de enlaces (bonding), PPTP, OpenVPN, DHCP y proxy para muchas redes. Además de todo ello, otra novedad es la actualización a través del servicio Mandrakeonline. La configuración del servidor MNF2 a través del navegador web
Logo del nuevo Move: un avión de un colorido característico
tiene construido el control de la exactitud de las direcciones IP y un soporte más cómodo de las reglas iptables. Aparte de las ediciones, el 27 de octubre de 2004 se editó la versión oficial 10.1 de la distribución Mandrakelinux. Contiene correciones de los errores encontrados desde el momento en que se editó la versión Community. Finalmente, la última propuesta es el nuevo CD, tipo LiveCD, Move 2.0, basada todavía en Mandrakelinux 10.0. Desde finales de octubre se puede comprar la versión de la caja con la llave de memoria USB, así como la versión que no contiene la llave. Los miembros del Club, los, al menos, del nivel Silver, pueden descargar la misma imagen ISO de la red; los demás pueden acceder a su versión pública. http://www.mandrakelinux.com/en/101betax86-64.php3
Respuesta a la petición
E
n relación a la petición dirigida a la empresa por parte de los usuarios en desacuerdo con el nuevo ciclo de desarrollo de Mandrakelinux, François Bancilhon, el jefe de Mandrakesoft, tomó la palabra. En una respuesta muy concreta, trató esta petición como una señal de preocupación de los usuarios acerca del futuro de la distribución, pero que, sin embargo, no tendrá influencia en el cambio de la política actual de las ediciones. Bancilhon aclaró detalladamente que el ciclo de desarrollo Beta/RC/Community/Official es, en opinión de la empresa, un compromiso razonable entre lo novedoso y lo estable. La edición
Community invitaba a los usuarios a integrarse en las pruebas de la distribución en lo que concierne a la imposibilidad de probar la cantidad de combinaciones de los equipos por el conjunto de los creadores, pero a partir de la edición Beta y RC se diferencia con una leve actualización de la siguiente versión de Community u Official. La reacción de los usuarios a estas aclaraciones fue más bien positiva, incluso entre las personas que firmaron la petición. http://www.mandrakeclub.com/ article.php?sid=2746
actualidades aktualności
aurox
aurox@lpmagazine.org
Aurox 10.1 Quicksilver
Noticias
A
finales de diciembre se publicó la siguiente versión de Aurox con el nombre de código Quicksilver. Ésta trae consigo muchas correcciones y todavía más novedades. Como instalador, se ha utilizado la nueva versión de Anaconda (10). Se ha conseguido corregir el error presente en Aurox 10.0, que no permitía la instalación en los discos SCSI. La versión más reciente de las herramientas relacionadas con el sistema udev debería solucionar la mayoría de los problemas con la creación impropia de los archivos de los dispositivos. El cambio más importante ha sido cambiar XFree86 a X.org. Hasta entonces, Aurox utilizaba XFree86 en la versión 4.3.x. La versión 4.4 de esta implementación del servidor X apareció hace algunos meses en una licencia cambiada. El mundo de Linux desde entonces se ha dividido en dos campos: por un lado, algunas distribuciones han decidido agregar XFree86 4.4.x a sus sistemas, mientras que el resto ha decidido utilizar el sistema alternativo, es decir, precisamente X.org. Se puede notar que X.org se desarrolla más dinámicamente y muchas nuevas posibilidades, que en-
Pese a la primera impresión, GNOME 2.8 se diferencia mucho de la versión anterior
contraremos en X.org 6.8, se tendrán que esperar mucho todavía, si queremos utilizar XFree86. Se han actualizado todos los entornos gráficos agregados a Aurox. KDE está en la versión 3.3.1, y GNOME en la versión 2.8.1. En el caso de GNOME se ha realizado un gran cambio, ya que hasta este momento hemos utilizado la versión 2.4.x (se saltó la versión 2.6). Junto al nuevo GNOME, en Aurox encontraremos Evolution 2.0 y los navegadores web actualizados: Mozilla 1.7.3 y Firefox-1.0 PR. Además de esto, como siempre se han actualizado todos los programas multimedia y muchos paquetes más.
Detección de dispositivos en Aurox 10.1
C
on frecuencia, los nuevos usuarios de Linux se quejan de que al conectar una memoria exterior USB, cámara u otro dispositivo al ordenador, tienen que introducir de manera manual los cambios al archivo /etc/fstab, agregar módulos, etc. Después de introducir la llamada memorystick sencillamente aparecía una ventana con su contenido. Parece que ahora se ha logrado una funcionalidad parecida en Linux, o por lo menos se ha realizado un gran paso en esta dirección. Sobre este tema, que en Aurox, en lugar del estático dev utilizamos ahora udev, ya se había escrito con anterioridad. Gracias a los programas adicionales que funcionan con udev, es posible la, ya mencionada, configuración automática de los dispositivos. Estos programas son: hotplug, hal, gamin y gnomevolume-manager. Y, ¿cómo funciona todo esto? Resulta que la idea es muy sencilla. El primer elemento es hotplug, que se encarga de descubrir los eventos de conexión/desconexión de los dispositivos, además de cargar los módulos correspondientes. El siguiente elemento es udev,
sección llevada por Jarosław Górny
responsable de crear los archivos correspondientes en el directorio /dev. A continuación, está hal (Hardware Abstraction Layer), que se hace cargo de agregar los registros necesarios en /etc/fstab. Cuando este archivo se modifique, la acción será registrada por gamin (nosotros usamos este programa, pero también puede usarse otro parecido) y se la comunicará a gnomevolume-manager (aquí también es posible emplear otro programa de este tipo). Este último programa ya es capaz de mostrarle al usuario una ventana con la información que le comunica que se ha agregado un nuevo dispositivo, o le deja ver su contenido. Por supuesto, como todo lo nuevo, también este sistema de detección y configuración de dispositivos puede dar problemas en su primera etapa. Pero no hay que temer que podamos estropear algo. En el peor de los casos, sencillamente nuestro dispositivo no se configurará de manera automática. http://freedesktop.org/cgi-bin/viewcvs.cgi/ *checkout*/hal/doc/spec/hal-linux26.png?rev= 1.3&root=hal
Fuentes del kernel En la lista de fedora-devel subsiste, desde hace mucho tiempo, la discusión sobre el tema de eliminar el paquete kernelsource de la distribución. Por fin, tal decisión se ha tomado y en la versión Fedora Core 3 ya no encontraremos ese paquete. En un primer momento puede parecer totalmente incomprensible, pero ¿es así de cierto? Parte de las cosas que son necesarias para compilar los módulos/programas adicionales en el kernel de la serie 2.6 las encontraremos en el paquete kernel. Pero si esto no es suficiente para nosotros, entonces disponemos del paquete fuente kernel-(version).src.rpm, donde se encuentran los fuentes, los parches, los archivos .config y kernel*.spec. Por otro lado, se puede decir que es más cómodo tener el fuente del kernel como un paquete ya listo. Como podemos ver, será difícil acostumbrar a los usuarios, ya que a menudo vienen con la pregunta: ¿dónde está el paquete con los fuentes del kernel? En lo que a esto se refiere, en Aurox todo queda tal como estaba anteriormente. Evolution 2.0 Junto con el nuevo GNOME ha aparecido finalmente la nueva versión del programa Evolution (correo, agenda, organizador, libreta de direcciones). La versión anterior era muy buena, pero los creadores no descansan y han agregado muchas nuevas funciones útiles. Además de todas las posibilidades y facilidades del cliente de correo que cada programa de este tipo ofrece, podemos filtrar los mensajes según cualquier criterio, y también hacer uso del filtro antispam (Evolution utiliza para este fin pamAssassin, así como Sylpheed-Claws). También tenemos la posibilidad de firmar nuestros mensajes (PGP). Durante la planificación de las tareas y la organización de nuestro tiempo el programa nos da la posibilidad de definir una tarea o un evento. El evento comenzará y terminará a una hora dada, introduciremos los datos de los participantes (además de poderles enviar un mensaje acerca de la reunión) y el lugar, y también estableceremos la alarma que nos ha de recordar este evento. La tarea es un elemento que nos permite controlar lo que hacemos (en el trabajo, en la escuela). Como parte de una tarea se pueden agregar tareas derivadas, fijar la hora de inicio y finalización, así como también determinar en que fase nos encontramos (porcentaje para terminar la tarea).
www.lpmagazine.org
17
actualidades aktualności
Noticias Viene Gentoo Linux 2004.3 Ya se han publicado las primeras versiones beta de las imágenes de los discos LiveCD que sirven para la instalación Gentoo en la versión 2004.3, tanto para la arquitectura x86, como para PPC. Como siempre, los autores piden los tests detallados lo más pronto posible y la información de los errores. Forcedeth en vez de nforce-net Daniel Drake declaró hace poco que los drivers cerrados para las tarjetas de red integradas en la tarjeta madre de la empresa Nvidia nforce-net serán eliminadas del árbol Portage debido a los errores que aparecen en ellos. Teniendo en cuenta el carácter de propiedad de los drivers, solamente el fabricante puede eliminar los errores. Los propietarios de las tarjetas no tienen porqué preocuparse: los drivers serán sustituidos por un equivalente a open source llamado forcedeth que funciona sin problemas. http://dev.gentoo.org/~dsd/nforce-netto-forcedeth.htm PegasosPPC para Gentoo La empresa Freescale Semiconductor perteneciente a Motorola, que produce los procesadores PowerPC, destinará diez máquinas PegasosPPC con los procesadores 1 GHz G4 para el proyecto Gentoo. Los ordenadores apoyarán el trabajo de los desarrolladores de Gentoo en Europa y en Estados Unidos, entre otros, en los subproyectos X11 y GNOME, pero también en la implementación de Gentoo para la arquitectura PPC y los equipos embebidos. http://www.gentoo.org/news/en/gwn/ 20041004-newsletter.xml Desarrollador en el uniforme Hace poco se celebró en Alemania el primer congreso internacional de los desarrolladores de Gentoo para la arquitectura PPC. El acontecimiento más importante durante la reunión fue la aparición de Bryon Roche, iniciador del proyecto de la transmisión de Gentoo hacia PPC quien hace más de medio año ingresó en la infantería americana y suspendió su trabajo como desarrollador. La reunión se celebró en el castillo Kransberg, a unos veinte minutos en coche del lugar donde está ubicada su unidad. http://www.gentoo.org/news/en/gwn/ 20041004-newsletter.xml
18
Linux+ 1/2005
gentoo
gentoo@lpmagazine.org
sección llevada por Witold Kieraś
¡Concurso resuelto!
H
ace algunas semanas los autores de la página oficial Gentoo Linux convocaron un concurso para un nuevo proyecto del portal de la distribución. Esperaban, además, que el nuevo aspecto gráfico se convirtiera con el tiempo en el estándar para las páginas destinadas a Gentoo, de modo que los usuarios pudieran acceder y consultarlas fácilmente, así como encontrar en ellas las informaciones necesarias. Para el concurso convocado se presentaron más de treinta trabajos previamente seleccionados. Una comisión especial escogió cinco proyectos y los presentó al público. Fueron los mismos usuarios quienes decidieron cuál de todos era el mejor. El voto se realizó a través del foro oficial Gentoo, y de esta manera pudieron participar en él todos los usuarios registrados. En total votaron 3147 personas, de entre las que 1452 (46%) lo hicieron a favor del proyecto de Aaron Shi. El resultado fue significativo: la propuesta de Aaron no tenía casi rivales y ganó por una mayoría muy amplia. Los webmasters del sitio Gentoo Linux que junto a Aaron procederán a crear un nuevo aspecto gráfico basado en el proyecto ganador, tendrán mucho trabajo. Asimismo, será interesante ver cómo percibirán el resultado los autores de las páginas vinculadas con la distribución y si se conformarán con la idea de Aaron Shi. A pesar de que la diversidad es una de las ventajas de Internet, a veces
El nuevo aspecto de la página web...
puede ser también una maldición en tanto que los autores de las páginas no siempre son buenos arquitectos y los proyectos bonitos en su apariencia visual no siempre resultan prácticos. En el caso de aquellas páginas que contienen sobre todo la documentación y la base de consejos para los usuarios, lo más importante es la facilidad de acceso a las informaciones, por eso, el proyecto común y profesional parece ser una idea muy buena para la colectividad Internet Gentoo. El grupo de autores de la página, preocupados por los estándares, seguramente desarrollará con perfecto acierto el proyecto en su aspecto técnico y hará que su aplicación en otros proyectos vinculados con Gentoo sea muy sencilla. http://www.gentoo.org/news/20041018redesignwinner.xml
Cien mil ficheros
Y
a a principios del año 2002, cuando Gentoo era todavía un proyecto debutante, el árbol Portage, núcleo de la distribución, era solamente un pequeño plantón. La realización de la sincronización del árbol (comando emerge sync) duraba solamente algunos segundos. Hoy en día, los propietarios de las máquinas, incluso de las más rápidas, y de las mejores conexiones a Internet, no pueden obtener un resultado así. ¡Hace poco el árbol Portage sobrepasó la cantidad de cien mil ficheros! Se necesita mucho esfuerzo y paciencia para encontrar un programa que no pueda instalarse con su ayuda. Ahora Portage está constituido por miles de mejoras y parches, grandes aplicaciones y pequeños scripts, varias versiones del software y, lo que más gusta, un número creciente de herramientas creadas especialmente para Gentoo, tales como Tenshi o Catalyst.
La amplitud del árbol Portage puede llevar a los propietarios de las conexiones a Internet menos eficaces a reducir la sincronización únicamente en aquellas partes del árbol que les interesen. También puede ser útil la variable RSYNC_EXCLUDEFROM en el fichero /etc/make.conf que indica el fichero donde previamente se han detallado las ramas ignoradas durante la sincronización. Por ejemplo, la adición en make.conf de la línea RSYNC_EXCLUDEFROM = "/etc/portage/rsync_excludes"
provocará la omisión durante la sincronización de las ramas detalladas en el fichero rsync_excludes, para lo cual hay que escribirlos por separado en cada línea. Conviene recordar que la opción RSYNC_EXCLUDEFROM puede provocar la ruptura de la dependencia entre los paquetes y, por consiguiente, problemas con la instalación, así pues, hay que aplicarla con mucho cuidado... http://www.gentoo.org/news/en/gwn/ 20041011-newsletter.xml
¡Acoge el pingüino! Sólo ahora, si te suscribes a Linux+ recibirás un original pingüino de peluche de una serie limitada, únicamente para los Lectores de la revista.
¡Pide suscripción!
REGAL
O
LiNUX+ por suscripción es más barata:
86 €
¡En cada número 2 DVDs! Si tienes preguntas, problemas o dudas, escribe a:
subscription@software.com.pl
En nuestra tienda virtual podrás adquirir todos los productos de la editorial Software-Wydawnictwo: shop.software.com.pl
Pedido Por favor, rellena este cupón y mándalo por fax: 0048 22 860 17 71 o por correo: Software-Wydawnictwo Sp. z o. o., Lewartowskiego 6, 00-190 Varsovia, Polonia; e-mail: subscription@software.com.pl
Nombre(s) ......................................................................................... Apellido(s)........................................................................................ Dirección ......................................................................................................................................................................................................... C. P. ...................................................................................................
Población, provincia ........................................................................
Teléfono ............................................................................................
Fax ....................................................................................................
E-mail ................................................................................................ Suscripción a partir del N° ..............................................................
Precio de suscripción anual Absender-Daten de Linux+: 86 € Realizo el pago con:
□ tarjeta de crédito n Válida hasta □ transferencia bancaria a BANCO SANTANDER CENTRAL HISPANO O
Número de la cuenta bancaria: 0049-1555-11-221-0160876 IBAN: ES33 0049 1555 1122 1016 0876 código SWIFT del banco (BIC): BSCHESMM
□ cheque a la dirección de la editorial Software-Wydawnictwo Deseo recibir la factura antes de realizar el pago □
Fecha y firma obligatorias:
entretenimiento
Cedega – juegos de Windows en Linux Piotr Machej
S
DVD
Después de arrancar la distribución Linux+ Live DVD podemos probar el funcionamiento de Wine.
En el DVD
En el DVD se encuentra la versión Time Demo de Cedega 4.0.1 (con Point2Play 1.3.2), así como la versión de Cedega 4.1 con CVS.
20
Linux+ 1/2005
ea que sea el número de programas diseñados para Linux, siempre habrá usuarios que echen de menos los programas Windows, algo que se manifiesta especialmente en el caso de los juegos. Muchos usuarios fanáticos de Linux siguen manteniendo una partición con Windows 98 o XP únicamente para jugar de vez en cuando. Por suerte, se están desarrollando algunos proyectos cuyo objetivo es liberarnos de este engorro. Uno de ellos es Cedega (antes conocido como WineX), desarrollado por la empresa TransGaming. Los creadores de Cedega lo van desarrollando de una forma bastante interesante, ya que garantizan el soporte de unos juegos en concreto. Si a los usuarios de Cedega les apetece jugar a un determinado juego, lo votan, y después, los programadores tratan de proporcionarle el mejor soporte posible. Sin embargo, hay un pequeño truco, y es que Cedega no es gratis. Hay que pagar un abono mensual de cinco dólares norteamericanos (con tres meses por adelantado). Si no queremos pagar, podemos hacernos con la versión de Cedega disponible mediante CVS. Una versión así carece de una parte de las librerías patentadas, y este hecho produce que sea capaz de soportar menos juegos que su hermana comercial. Actualmente, disponemos de una posibilidad más. Durante dos semanas iremos probando la funcionalidad de la versión completa de Cedega utilizando Cedega Time Demo. Pasado este tiempo, nosotros mismos decidimos si queremos pagar cinco dólares al mes por la posibilidad de divertirnos con los juegos bajo Linux y, a su vez, elegir qué juegos se van a soportar, o si nos conformamos con la
versión CVS. El objetivo de este artículo es presentar precisamente esta demo de Cedega con un límite temporal, aunque los usuarios de la versión CVS también van a aprovecharse de ella.
Instalación
La instalación de la versión de demostración de Cedega es muy simple. En el DVD adjunto a la revista encontraremos el archivo LinuxPlusOct04TimeTrial.tgz, que después de copiarse en el disco duro, tiene que ser descomprimido (tar xzvf LinuxPlus Oct04TimeTrial.tgz). En el directorio que se acabe de crear hallaremos los paquetes preparados para varias distribuciones. Los usuarios de las distribuciones que utilizan los paquetes RPM (p. ej. Aurox) deben instalar los paquetes: cedegatimedemo-4.0.1-8.i386.rpm, y P2P_timedemo-1.3.2-1.i386.rpm (con el comando rpm
-Uvh
cedegatimedemo-4.0.1-8.i386
en cambio, los usuarios de Debian instalarán los paquetes cedegatimedemo_4.0.1-8_i386 .deb y point2playtimedemo_1.3.2_i386.deb. Si por algún motivo no queremos servirnos de los paquetes, siempre podemos arrancar el instalador con el comando ./cedega_timedemo_installer .rpm
P2P_timedemo-1.3.2-1.i386.rpm),
Figura 1. Quake III Arena
cedega
entretenimiento
o descomprimir los paquetes TGZ (tar xzvf
cedegatimedemo_4.0.1-8.i386.tgz
y tar xzvf point2playtimedemo-1.3.2.tgz) en el directorio principal (cd /).
Configuración
Una vez terminada la instalación, arrancamos Cedega. Si se trata de la versión demo, lo hacemos con el comando cedega_timedemo (en el menú también encontraremos la posición TransGaming Cedega Timedemo). Con él iniciamos la herramienta Point2Play. Ésta suministra
Diferencias entre las versiones de Cedega
La versión CVS comparada con la versión binaria en su totalidad, disponible para los usuarios que pagan el abono, revela un par de defectos. Tenemos que ser consciente de estos fallos a la hora de realizar la selección. La desventaja principal de la versión CVS es la falta del código responsable de la protección de copiar, lo que puede disminuir bastante el número de juegos a los que se dé soporte. Asimismo, falta Point2Play, un frontend agradable en el uso, y también queda deshabilitada la compresión de texturas. La empresa Transgaming no ofrece ningún soporte oficial para los usuarios de la versión CVS, así que éstos quedan abandonados a su suerte y a los mensajes en el foro. En lo que a la versión Time Demo se refiere, parece que la única limitación es el breve tiempo en el que podemos familiarizarnos con el programa. Desafortunadamente, aparte de esto, en algunos juegos también veremos el logo de Cedega aparecer en la pantalla y desaparecer de ella con una regularidad periódica. Eso no sería tanta molestia si no fuera porque el logo ocupa toda la pantalla, lo cubre todo en el momento de su mayor visibilidad, y además, no desaparece por completo jamás. Por supuesto, esto también hace el juego mucho más difícil, especialmente en el Quake III Arena. Por suerte, se deja ver sólo en algunos juegos, ya que, por ejemplo, a Fallout se puede jugar tranquilamente. Además, todas las versiones se caracterizan por los diferentes nombres de los ficheros ejecutables, y porque colocan los ficheros de configuración en directorios distintos, lo que puede resultar un poco confuso. La ventaja de esta estrategia consiste en la posibilidad de utilizar más de una versión a la vez.
Figura 2. Fallout
una interfaz gráfica que facilita la instalación y el arranque de los juegos; gracias a ello no tenemos que acordarnos de las opciones de los comandos en el modo de texto. Al iniciarla por primera vez nos obligará a dar algunas informaciones personales, entre otras, el nombre y los apellidos, el país de residencia o la dirección e-mail. No olvidemos indicar una dirección verdadera, donde recibamos el correo, puesto que allí se nos enviará la contraseña que se requiere para activar la demo. Si tenemos conec-
tado el filtro antispam, puede ocurrir que el correo con la contraseña no llegue a nuestro buzón principal, sino que termine en la carpeta de spam; por lo que tenemos que estar atentos. Desde el momento en que nos indican la contraseña, disponemos de 14 días para conocer la funcionalidad de Cedega. Pasemos, pues, un momento conociendo sus opciones más importantes, y luego empecemos a ir instalando nuestros juegos. Sobre todo, es aconsejable ir a la pestaña System Tests y realizar los tests allí
Figura 3. Star Trek: Elite Force
www.lpmagazine.org
21
entretenimiento
Instalación de Cedega desde CVS
Figura 4. Horse Racing Manager
disponibles. Gracias a esto, averiguaremos inmediatamente si nuestro sistema está conforme con los requisitos de Cedega; en la mayoría de los casos esto no debe causar problemas. En la pestaña Versions también podemos emplear el botón Download Microsoft Core Fonts: si no tenemos los tipos de letra Windows instalados en el sistema, lo cambiamos de esta forma. Seguro que los propietarios de joysticks querrán tener la oportunidad de aprovecharlos. Para esto pueden recurrir a la opción Configure–>Joysticks (los valores que aquí se necesitan los podemos adquirir mediante el comando jstest que pertenece al paquete joystick). Para no perder más tiempo, pasamos a instalar los juegos. Ya desde el principio voy a admitir que vale la pena visitar la página http://www.transgaming. com/searchgame.php e indagar en ella aspectos tales como en qué grado se da soporte a nuestro juego. La lectura de los comentarios de otros usuarios también nos resultará útil en la instalación, y nos ahorrará los desengaños.
Instalar el juego
Una vez arrancado Cedega (con el comando cedega_timedemo), en la pestaña Main vemos dos campos vacíos y unos botones situados a su derecha. Primero, nos va a interesar el botón (Un)Mount. Con él montaremos y desmontaremos los discos de instalación de los juegos. Una vez montado el disco, pulsamos el botón Install, y luego Browse. Indicamos el fichero de instalación (que suele ser setup.exe o install.exe) y aceptamos con el botón OK. En el campo Program Title escribimos el nombre del juego. A continuación, éste aparecerá en la parte izquierda de la pestaña Main. Aparte de esto, podemos determinar qué versión de Cedega va a emplearse para arrancar el programa. Puesto que sólo tenemos instalada una, dejaremos el valor en Default. Ahora ya
22
Linux+ 1/2005
Si llegamos a decidirnos por no pagar la versión completa de Cedega, o si tenemos ganas de probar los juegos con varias versiones CVS lo que tenemos que hacer es descargar los juegos por nuestra propia cuenta. Por suerte, haremos esta tarea mucho más fácil, gracias a que existe el script WineCVS.sh. Lo descargaremos de la página http://cvscedega.linuxgamers.net/ o del disco adjunto a Linux+. Además, en el disco encontraremos la versión más actual de Cedega a través de CVS (en el momento de escribir este artículo). Antes de realizar la instalación hay que asegurarse de que nuestro sistema contiene los siguientes paquetes: wget, XFree86-devel, XFree86-Mesa-lib GL, XFree86-Mesa-libGLU, fontconfig, freetype (en la versión 2.x), freetype-devel, flex y bison. Estos nombres corresponden a los nombres de los paquetes en la distribución Aurox, en otras distribuciones serán distintos. Si queremos instalar la versión suministrada con Linux+, primero descomprimimos el archivo WineCVS.tar. bz2 en el directorio de inicio, cambiamos el propietario del contenido del directorio .WineCVS (chown -R nombre_usuario .WineCVS), y a continuación, arrancamos nuestro script con el comando sh WineCVS.sh. En este momento pulsamos la tecla [c] (Change command line action), y después la [r] (Recompile). Con esta acción nos saltaremos la fase de descarga de fuentes. Ahora volvemos a pulsar la tecla [r] (Run existing profile) y seleccionamos el primero de los perfiles pulsando la tecla [0 ]. Sólo nos queda, cuando nos lo solicite, escribir la contraseña del usuario root, y luego esperar con paciencia a que Cedega se compile e instale. Si preferimos descargar la versión actual de la red (o una de las más viejas,
iniciamos la instalación mediante el botón Continue. Si sólo está funcionado este juego bajo Cedega, después de un rato aparecerá su instalador. Entonces, procederemos según lo que recomiende. Recordemos que no hay que instalar el DirectX junto con los juegos: Cedega ya cuenta con un propio soporte de esta tecnología.
Arrancar el juego
Después de que el instalador acabe su trabajo, en la parte izquierda de la pestaña Main aparecerá el nombre del juego que hemos escrito en el campo Program Title.
si es que con ella algún juego funciona mejor), tenemos que empezar pulsando la tecla [g] (Get a profile). Después leemos las descripciones de cada uno de los perfiles y sondeamos cuál nos interesa. El perfil cvscedega_head parece ser la mejor selección. Éste contiene la versión de Cedega más reciente. Si quisiéramos instalar Cedega sólo en nuestro directorio de inicio, deberíamos escoger el perfil cedega_head_userinstall. Además, así disponemos de la versión regular de Wine (regwine), así como de las versiones más antiguas de WineX (winex310, winex320 y winex330). Pueden resultar muy útiles en los casos donde se dé un mejor soporte de algún juego mejor en la versión vieja que en la nueva. Cuando nos pregunte Enter choice, escribimos el número del perfil, que nos apetece descargar. Luego procedemos de igual forma que al instalar los fuentes suministrados con Linux+, pero en vez de Recompile elegimos Default (la tecla [d]). Desde este momento podemos arrancar los juegos con el comando cvscedega nombre_juego.exe. Puesto que el mayor número de juegos está conformado con Windows 98, es mejor ir empleando el comando cvscedega -winver win98 nombre_juego.exe ya desde el principio. Si al instalar el juego a través de la versión CVS (cvscedega -winver win98 setup.exe) indicamos, por ejemplo, la ruta de destino C:\Program Files\Nombre Juego\, los ficheros se colocarán en el directorio ~/.cvscedega/c_drive/Program Files/Nombre Juego/. Como está bien visible, el directorio ~/.cvscedega/ c_drive/ se hace pasar por el disco C:\. Después de haber entrado en el directorio que contiene el juego, lo iniciamos con el comando ya conocido cvscedega nombre_juego.exe.
Si lo indicamos, en la parte derecha se mostrarán las posiciones relacionadas con este juego. Dependiendo del que sea, puede presentarse sólo la opción de iniciar el juego o, en otros casos, aparecerán además: el desinstalador, una referencia a la documentación o la opción de arrancar el juego con menos requisitos del sistema. Por tanto, tenemos aquí todos los iconos que observábamos regularmente en Windows en el menú juegos. Ya sólo nos queda indicar el juego y pulsar Play. Si el juego arranca sin problemas, podremos alegrarnos. En el
cedega
Algunos de los juegos que se arrancan bajo Cedega Aquí presento la lista de unos cuantos juegos escogidos que los usuarios de Cedega consiguieron arrancar. Las cifras en la columna Nota puntúan el grado en el que el juego se instala y funciona. La nota 5 quiere decir que el juego funciona de una manera casi igual que en el entorno Windows. Las notas 4 y 3 se reparten entre los juegos que se dejan arrancar, pero que en el curso de su instalación u operación ocasionan problemas más o menos grandes. Los juegos que pueden no funcionar, o contienen unos defectos graves, se califican en 2. La nota 1 es el orgullo de los juegos que sí que se dejan instalar, pero es imposible jugarlos. La nota inferior (0) se da a los juegos que no se dejan instalar, ni jugar. Las notas las han puesto los usuarios de Cedega y la lista completa de ellas está disponible en la página http://www.transgaming.com/searchgame.php.
entretenimiento
izquierda de la pestaña Main y pulsar el botón Remove. Sin embargo, recordemos que de esta forma eliminaremos todo el directorio ~/.point2play_timedemo/ Nombre_Juego/. Si tenemos guardados allí los estados de los juegos u otras informaciones que nos hagan falta, deberíamos copiarlas primero en un lugar seguro.
Impresiones del juego
Nota
Títulos
5
Warcraft III, Warcraft III: Frozen Throne, Max Payne, The Sims (Mandrake Gaming Edition), Diablo 2, Kohan – Immortal Sovereigns for Linux, Half-Life
4
Half-Life: Counter Strike, EverQuest, Battlefield 1942, Starcraft, Civilization III, Morrowind – The Elder Scrolls III, Black and White, Jedi Knight 2: Jedi Outcast, Baldur's Gate 2, Grand Theft Auto III, Medal of Honour: Allied Assault, DeusEx, Fallout 2
3
Command and Conquer: Generals, Dungeon Siege, Age of Empires II – The Age of Kings, System Shock 2, Diablo, Need for Speed Underground, Call of Duty, Heroes of Might and Magic IV, Final Fantasy 8
2
Far Cry, Battlefield 1942: Desert Combat, Alpha Centauri, Tiberian Sun, The Freedom Force, X-Wing Alliance
Al hacer tests de la versión de demostración de Cedega tuve la oportunidad de probar un par de juegos distintos. Quería compartir mi experiencia respecto a este tema. Por tanto, podrá verse que las calificaciones en el foro Transgaming no tienen que ser indiscutibles. Hay que tratarlas como orientación, además de tener en cuenta que un juego que funciona con una versión de Cedega no tiene necesariamente que funcionar con otra. Conseguí jugar a los siguientes juegos:
1
Dungeon Keeper, Rainbow Six: Rogue Spear, Arcanum, Planetside, Tribes 2, Splinter Cell, Myst 3: Exile, Civilization II
•
0
Anarchy Online, Empire Earth, Age of Mythology, Final Fantasy XI, Need for Speed: Porsche 2000, Aliens vs Predator 2, Medieval: Total War, World of Warcraft
caso de que ocurra cualquier dificultad, lo más probable es que nos toque cambiar las opciones de configuración.
Opciones de configuración del juego
Al instalarse el juego en el directorio ~/.point2play_timedemo/, se crea un subdirectorio con el nombre que acabamos de colocar en el campo Program Title. Ahí se sitúan los ficheros de configuración que se refieren a nuestro juego, así como la totalidad del mismo instalado. En la mayoría de los casos no nos veremos obligados a mirarlos. En cambio, sí aprovecharemos la oportunidad que nos brinda Point2Play. Marcamos el icono de nuestro juego en la pestaña, y pulsamos después el botón Configure. Las opciones que fijemos aquí se referirán sólo al juego que seleccionemos. Desktop resulta ser una de las opciones más prácticas. Si preferimos que el juego se arranque en su ventana, en lugar de hacerlo en toda la pantalla, cambiamos el valor de esta opción de No a una resolución más oportuna. Además, podemos cambiar el sistema de sonido que se esté empleando (Sound System to Use). Algunos juegos exigen que se
indique una versión Windows distinta de la win98 que aparece por defecto. Lo cumplimos modificando el valor de la opción Winver (p. ej. por winxp). Las demás opciones las dejaremos con las configuraciones predefinidas, hasta que el juego arrancado no ocasione problemas. En caso de cualquier dificultad conviene consultar primero las informaciones publicadas en el foro, y después, ir experimentando con las opciones.
•
•
Instalar las actualizaciones
Para muchos juegos están disponibles parches y actualizaciones, que mejoran su funcionamiento, y también varias especies de extensiones que amplían las capacidades de éstas (p. ej. añadiendo misiones nuevas). Las podemos instalar del mismo modo que hemos instalado el juego. Sólo tenemos que acordarnos de insertar en el campo Program Title el nombre del juego al que corresponde la extensión (para lo que nos ayudará una lista desplegable en la que recogeremos un nombre apropiado).
Desinstalar el juego
El método más sencillo de desinstalar un juego es indicar su nombre en la parte
•
•
Quake III Arena – ¿Quién no ha oído hablar de este mítico juego? Por desgracia, en el caso de la instalación mínima el juego se negaba a arrancar, por lo que tuve que dejar que ocupara un poco más de espacio en mi disco. Después, el juego funcionaba sin problemas. Fallout – Este juego de aventuras ubicado en un mundo postapocalíptico se ha ganado muchos aficionados, entre los que me incluyo. Fallout se instaló sin dificultades. También la lucha acaeció sin estorbos. Star Trek: Elite Force – Una producción obligatoria para todos los aficionados a Star Trek en la que encarnamos a uno de los miembros del destacamento de exploración. La instalación se realizó sin problemas y el juego mismo funciona sin errores. Horse Racing Manager – Este juego, en el que podemos convertirnos en el dueño de un establo, un jockey o un apostador que juega a hacer quinielas en las carreras ha recibido una nota de 2 en la página de Transgaming (allí aparece con el nombre de Final Stretch: Horse Racing Sim). Yo no he observado ningún problema durante el juego. Starcraft – Este es un juego estratégico del tiempo real (RTS), ubicado en un escenario cósmico. El juego se instaló
www.lpmagazine.org
23
entretenimiento
•
Figura 5. Timeshock!
•
•
sin fallos, pero al arrancarse a veces se colgaba en la pantalla de carga. Una vez arrancada, su ejecución no ofrecía ningún inconveniente. Pontifex – Parecerá que construir puentes es una tarea aburridísima. Sin embargo, este juego prueba lo contrario. En particular, en los niveles más altos uno puede sentir la gran satisfacción de que su puente recién construido no se haya derribado bajo el peso de un tren que acaba de pasar por él. El juego se instala y funciona de forma ideal, sin ninguna molestia. Timeshock! – Es uno de mis pinballs favoritos. Puesto que hacía mucho tiempo que no jugaba con él, me obstiné en iniciarlo en Linux. La versión de demostración de Cedega fue la ganadora, porque a cada intento de arranque devolvía el error de dividir por cero (la instalación se llevó a cabo sin problemas). Tan sólo la versión CVS se mostró más asequible y tras introducir un cambio en el fichero de configuración (añadir la unidad F:\ con la etiqueta (Label) "Timeshock!") arrancó el juego:
bellísimo juego de aventuras. Por suerte su demo deja saborear un poco este juego, y pasar por esa demo no supone ningún obstáculo serio. Este juego se instaló e inició sin problemas, tanto en la versión demo de Cedega, como en la de CVS. Los siguientes juegos provocaron muchos problemas, y en algunos casos ni siquiera se dejaron instalar: •
The Sims – Arrancar los Sims populares fue para mí muy importante. Desa-
[Drive F] "Path" = "/mnt/cdrom1" "Type" = "cdrom" "Label" = "Timeshock!" "Filesystem" = "win95"
•
24
Desde aquel momento Timeshock se llevó a cabo sin ningún defecto. Syberia 2 demo – Lamento muchísimo no poseer la versión completa de este
Linux+ 1/2005
Figura 6. Syberia 2
fortunadamente, ni siquiera llegué a iniciar el instalador: el programa simplemente terminaba de operar sin soltar ningún mensaje. En el foro de TransGaming encontré la información acerca de que la empresa da soporte únicamente a una versión de The Sims especialmente habilitada y distribuida junto con Mandrake Gaming Edition. Mirando los mensajes más recientes en el foro, algunos jugadores han conseguido instalar, no sólo la versión regular de Windows, sino también algunas de sus extensiones. Pharaoh – Este juego estratégico que nos acerca la historia y la cultura del antiguo Egipto se instaló sin problemas. Y aquí se paró la cosa, ya que al arrancarse devolvía una serie de errores. Los consejos de ayudarse de la versión no-cd en mi caso no surtieron ningún efecto.
Cambiar la configuración en los ficheros de texto
A veces, editar los ficheros de configuración resulta inevitable. Así sucede en el caso de la versión de demostración de Cedega cuando el juego tiene sus requisitos específicos. En el caso de la versión CVS simplemente no nos queda otra salida, ya que no disponemos de la herramienta Point2Play. Los ficheros de configuración de Cedega Time Demo están repartidos por un
cedega
par de directorios. El fichero principal de configuración es el ~/.transgaming/config. Es el responsable de la actuación de Cedega. Ya que utilizamos Point2Play, hay un fichero de configuración individual previsto para cada juego: ~/.point2play_timedemo/Nombre Juego/Nombre Juego .config. Si se trata de una versión CVS, el fichero de configuración es el ~/.cvscedega/ config. Entre las opciones más interesantes, vale la pena destacar las dos que se sitúan en la sección [x11drv]: VideoRam y AGPVertexRam. La primera determina el tamaño de la memoria en nuestra tarjeta gráfica, por ejemplo: "VideoRam" = "64"
La segunda define cuánta memoria debe reservarse para los arrays de vértices OpenGL. Si tuviéramos ganas de fijar las mismas opciones sólo para un juego concreto, en vez de escribir [x11drv] empleamos [AppDefaults\nombre_fichero.exe\x11drv]. Otra opción práctica es la posibilidad de cambiar el sistema de sonido al que se da soporte. En Cedega Time Demo podemos hacerlo a través de la interfaz gráfica, pero en la versión CVS tenemos que editar el fichero ~/.cvscedega/config y encontrar allí la sección [WinMM]. Según queramos utilizar OSS o ALSA, tenemos que introducir aquí uno de los siguientes valores: ;"Drivers" = "winealsa.drv" "Drivers" = "wineoss.drv"
En este ejemplo, el sistema ALSA está desconectado (el punto y coma al principio de la línea es el signo de un comentario), mientras que se utiliza el driver wineoss.drv. Algunos juegos exigen una configuración específica. Los autores de Cedega se han dado cuenta de esto y al final de los ficheros de configuración han colocado las opciones necesarias para arrancar algunos de los juegos más populares, p. ej. Civilization 3, Call of Duty o Far Cry: ;; Call of Duty [AppDefaults\CoDSP.exe\Version] "Windows" = "win2k"
Es interesante conocer estas opciones y estudiar los comentarios en los ficheros
de configuración. Esto, sin duda, nos ayudará a arrancar otros juegos.
Solucionar problemas
Durante los intentos para arrancar los juegos pueden surgir muchos problemas diferentes. Algunos son bastante fáciles de solucionar, pero con otros todo puede ponerse más difícil.
Instaladores
A veces los juegos causan problemas a la hora de instalarse, pero una vez que hemos conseguido llevarlo a cabo, funcionan perfectamente. Se conciben varios instaladores de juegos (http://liflg.org/), dedicados a situacione como esta, que se sirven de los resultados del trabajo del proyecto Loki Setup y que simplifican el proceso de instalar/actualizar y desinstalar los juegos. Conviene comprobar si para un determinado juego ya existe un instalador listo así.
Si el juego se apaga de repente
En tal caso, suele ocurrir que vemos sólo una parte de nuestro escritorio, mientras que el resto de ése queda fuera de la pantalla. Entonces, hay que recurrir a la combinación de las teclas [Ctrl]+[Alt]+[+], hasta alcanzar la resolución que nos satisfaga. Si el juego solamente se ha colgado, y nosotros utilizamos Cedega Time Demo, podemos conmutarnos en la ventana de Cedega mediante la combinación [Ctrl]+[Tab], y luego intentar la opción Tools–>Stop running games. En lo que se refiere a la versión CVS, en la consola hay que escribir el comando killall -9 wine.
Problemas con el sonido
conseguiremos el soporte de este instalador. Una vez descargado el fichero, basta arrancarlo con el comando cvscedega DCOM98.EXE y responder a un par de preguntas. Es posible que tengamos que instalar algunos de los ficheros MSI (Microsoft Installer). Si este es el caso, primero descargamos el fichero http:// download.microsoft.com /download / WindowsInstaller/ Install/ 2.0 / W9X Me / EN-US/InstMsiA.exe, y lo instalamos con el comando ya conocido cvscedega InstMsiA.exe. Ahora para instalar un fichero que termina en .msi basta introducir el comando cvscedega msiexec /i nombre_ fichero.msi.
Final
Como ha quedado claro, Cedega todavía no es capaz de sustituir Windows por completo, pero si seguimos con una partición del sistema de Redmond sólo para uno o dos juegos, justamente aquellos para los que Cedega ofrece un buen soporte, seguramente nos alegrará la noticia de poder aprovechar todo el disco para Linux. Y eso, aún sin hablar de la comodidad, ya que empleando Cedega no tenemos que cambiar de sistema. Es difícil estimar cómo se irá desarrollando este proyecto, puesto que la selección de los juegos, cuyo soporte se ofrece depende del número de votos obtenidos. Es posible que nunca lleguemos a jugar bajo Linux a los juegos que más nos interesan. No obstante, si queremos influir en esto y poder convencer a otras personas que voten nuestros favoritos, tendremos que comprarnos el abono. De este modo, respaldaremos más el proyecto. Así pues, la decisión es nuestra.
Puede suceder que un juego que funciona bien termine su operación de repente cuando una aplicación esté intentando obtener acceso a la tarjeta de sonido. En tal caso lo mejor es desconectar todos los servidores de sonido posibles, como el Esd o Arts.
En Internet:
Instalador en la versión CVS
•
Muchos juegos aprovechan el instalador Installshield. Desgraciadamente, Cedega en la versión CVS no lo contiene. La buena noticia es que desde la página http://www.microsoft.com/ com/default.mspx podemos descargar la herramienta DCOM 98 gracias a la cual
entretenimiento
•
•
•
Página de inicio de la empresa TransGaming: http://www.transgaming.com/ Página de la comunidad TransGaming (incluye foro): http://transgaming.org/ Servicio sobre los juegos, también para Linux: http://www.linux-gamers.net/ Frank's Corner – un poco de información sobre el arranque de los programas y juegos para Windows bajo Linux: http://www.frankscorner.org/
www.lpmagazine.org
25
entretenimiento
Comparación de los motores de juegos 3D Dariusz Dawidowski
E
l motor del juego abarca un conjunto de técnicas y elementos tales como: la visualización del terreno en base a un mapa, personajes animados, la exploración de colisión o la reproducción de sonido. Gracias a él podemos programar en capas superiores – nos interesa el esquema de comportamiento de los protagonistas y de los vehículos, así como la colocación de los edificios, y no la manera de generar el gráfico o el sonido. Teniendo ya listo el motor crearemos un simple juego rápidamente. En este artículo trataré de responder a las preguntas, ¿en qué se caracterizan los motores más populares de juegos 3D?, y ¿cuál de ellos es el mejor?, que vosotros mismos habéis formulado.
Optimización
En el DVD
En el DVD se encuentran los archivos fuentes de los motores de los juegos 3D, así como las librerías adicionales.
Sobre el autor
El autor se dedica a la creación de juegos comerciales – es programador y diseñador gráfico. Es autor del juego Iceland.
26
Linux+ 1/2005
Una de las características más importantes que deciden la calidad del motor del juego es la optimización. Con esta técnica se rechazan los objetos actualmente invisibles para la cámara, limitando de este modo el flujo de datos gráficos a una porción empleada en ese momento. Desde este punto de vista, los motores funcionan muy bien y por ello, precisamente, se encuentran en este manual. Hasta el momento se han escrito tantos métodos de optimización, todos muy bien documentados, que es difícil en estos tiempos encontrar soluciones excepcionales en un solo motor. Todos se diferencian por rasgos, y esto, en resumidas cuentas, carece de importancia.
Objetos
Puesto que cada objeto, como puede ser un edificio, el agua, la lluvia, un personaje o la hierba, tiene que cumplir ciertas condiciones, es necesaria su tipificación. Ésta es una medida que soluciona no sólo el problema del modo del renderizado, sino también el de la optimización – los objetos estáticos grandes, como p. ej.: un edificio, no tienen que ser animados, en cambio, un personaje puede poseer sólo una textura. Aquí nuevamente todos los motores son muy afines, salvo Crystal Space, el cual posee 24 tipos de objetos, por ej.: formas animadas basadas en fotogramas, esferas, curva de Beizer, emiter, explosiones, fuego, una fuente, iluminación coloreada, la lluvia, espiral, billboard, estrellas, plantas herbáceas, rayos, red destinada a la modificación dinámica (p. ej.: brechas en una roca) y varios tipos de terreno. Si en un futuro se implementa el agua y se restauran los trabajos de la ropa, este motor estará orgulloso de tener casi todos los tipos de objetos.
Iluminación
La iluminación la dividimos en dinámica (sus parámetros se calculan en cada fotograma) y estática (el resultado ya calculado se registra en forma de los llamados lightmap, aplicados sobre los objetos). Cada uno de los motores contiene prácticamente las mismas técnicas de iluminación (luces de colores dinámicas, lightmapping, sombreado, flare o halo – reflexión de la luz en el lente de una cámara verdadera; es tan espectacular que con frecuencia los
motores de juegos 3D
entretenimiento
Motores de juegos 3D probados Crystal Space
Crystal Space es un extenso proyecto que abarca la mayor parte de los problemas descritos en este artículo. Se caracteriza por una gran dinámica de desarrollo. Es difícil de comprender, pero a cambio nos brinda muchas posibilidades. Ocupa casi 200 MB tras la compilación. Posee una estructura modular – hasta 125 plugins. Es importante seguir cuidadosamente su proceso de configuración durante la instalación, puesto que los plugins (que emplean las librerías) no encontrados en el sistema son omitidos. Puede ser utilizado en cualquier tipo de juego o aplicación multimedia. Puesto que está creado por la comunidad Open Source, bajo licencia LGPL, lo puede emplear cualquiera, incluso para fines comerciales. Platformas: GNU/Linux, Windows, Mac OS/X Lenguajes: C/C++, Python, Perl, Java
Irrlicht
Irrlicht es una librería compacta, que ofrece una cantidad increíble de técnicas de programación. Esto se manifiesta con la falta de soluciones alternativas para un problema determinado, pero gracias a ello es fácil en el uso. Posee una estructura monolítica. Está destinada a juegos como Quake con extensión o terrenos externos. Está creada por la comunidad Open Source, así que cualquiera la puede utilizar (licencia zlib/libpng). Es una buena librería para los principiantes. Plataformas: GNU/Linux, Windows Lenguajes: C/C++, C#, VB.NET
OGRE
ble de funciones. Posee una estructura modular (plugins). Está creado por la comunidad Open Source (licencia LGPL) y lo puede usar cualquier persona para todo tipo de juego o aplicación multimedia. Plataformas: GNU/Linux, Windows, Mac OS/X Lenguajes: C/C++, Python
Torque
Torque, diferencia de las soluciones arriba presentadas en que es un motor comercial. Lo creó la empresa GarageGames a partir del motor del juego Tribes 2 de la empresa Dynamix. Está disponible la versión runtime demo (gratuita) que funciona a nivel de los scripts, pero sin licencia para la distribución comercial de nuestro propio programa desarrollado basándose en ésta. Plataformas: GNU/Linux, Windows, Mac OS/X Lenguajes: C/C++
Unreal 2
Unreal 2 es un motor comercial de juegos creado por la empresa Epic Megagames para cubrir las necesidades de los títulos de gran presupuesto. Para fines privados podemos bajarnos la versión runtime demo, que funciona a nivel de los scripts, pero desgraciadamente es sólo para Windows. A pesar de ello, el motor existe y se le puede emplear para crear juegos maravillosos a la medida de Unreal Tournament 2003/2004. Plataformas: GNU/Linux, Windows, Mac OS/X, X-Box, Playstation, GameCube Lenguajes: C/C++
OGRE es un gran proyecto, similar a Crystal Space. Ofrece una cantidad considera-
creadores de juegos lo simulan). Torque se destaca por los sombreados dinámicos de las formas, las cuales funcionan incluso en las tarjetas gráficas antiguas.
Figura 1. Ciudad virtual construida en Crystal Space
Efectos especiales
Cada uno de los motores contiene algún conjunto de efectos especiales, pero considerando la accesibilidad estándar de las soluciones hardware, omito intencionadamente los efectos gráficos, ya que la misma solución está disponible para cada motor. Las técnicas más populares para tal lenguaje, incluso Cg, están disponibles – así que el efecto bump, incluso si ya está realizado de algún modo en el motor, no le da ninguna característica excepcional. Una solución digna de admirar en Crystal Space es el gestor de los shaders, gracias al cual podemos preparar una cantidad ilimitada de la versión de un
Figura 2. Mundo oscuro según Irrlicht
determinado efecto para diferentes configuraciones hardware.
Animación
La animación es el siguiente problema corregido de varios modos. El predefinido, y más común, es la animación basada en fotogramas, pero estos elementos permanentes no están sometidos a cambios dinámicos bajo influencia del entorno. El uso de huesos facilita el trabajo no sólo a los diseñadores gráficos (que preparan las poses del esqueleto), sino que permite el cálculo dinámico de una figura imprevista durante el juego (por ej.: cuando un personaje es aplastado por un peso). Podemos darle movimiento a tal esqueleto de dos maneras. La primera, empleando los datos telemétricos recogidos de los sensores que se encuentran en el actor (Motion Capture). Esto nos da un efecto natural, pero desgraciadamente significa un paso hacia atrás en la dirección hacia la animación basada en fotogramas, ya que estos datos no son más que cuadros posteriores. La segunda solución es la más elástica y a la vez la solución más difícil de emplear. Podemos darle movimiento a los huesos mediante el vector de fuerza, pero para ello es necesario el soporte de la física. Cada uno de los motores posee todas las técnicas requeridas de animación, por lo que en este aspecto están igualados.
Física
El punto principal de la física en los juegos son las colisiones. Con objeto de optimizar este apartado, el motor debería facilitar la posibilidad de emplear un bloque de reacción substituto, mucho más sencillo de construir que el prototipo, reduciendo así la cantidad de cálculos. Crystal Space posee tres técnicas de colisión para elegir: Opcode, Rapid y una del motor ODE. Esta última
www.lpmagazine.org
27
entretenimiento
Diccionario de términos de los motores de juegos 3D: •
•
•
•
•
• •
•
•
•
•
Vertex – punto en el espacio (tridimensional del sistema xyz), el cual es extremo del polígono; Polígono – elemento integral del objeto (buen motor, a excepción de los triángulos, que soporta polígonos arbitrarios, o bien, cinturones de triángulos, así como sus dinámicas adiciones/eliminaciones del objeto); Animación basada en fotogramas – interpolación entre las poses del objeto preparadas por el diseñador gráfico; Animación basada en esqueletos – el objeto posee un esqueleto parecido al sistema óseo (no cumple un papel visual, sino lógico); Cinemática inversa – jerarquía de los huesos (sin esta técnica cada uno de los huesos es un objeto independiente, pero gracias a las referencias jerárquicas los huesos pueden enlazarse entre sí); Colisiones – interacción de dos objetos; Sistema de archivos virtual (VFS) – capa entre el sistema abstracto y el sistema físico de archivos; Scripts – soporte externo de los parámetros del juego a partir del lenguaje de script; facilita el trabajo de grupo y reduce la cantidad de errores en un proyecto grande; Generadores -- terreno, flora, nubes, fuego o agua son elementos cuya apariencia y colocación en el espacio se calculan mediante un algoritmo; IA– inteligencia artificial de la forma, el objetivo, la toma de decisiones y la orientación en el espacio; MultiPlayer – soporte de la arquitectura cliente/servidor, así como de los protocolos p2p, tcp y udp;
Tabla 1. Ranking de los motores de juegos 3D (0 – no hay elemento o su existencia es simbólica, 1 – en otros motores está mejor solucionado, 2 – realizado según los estándares; 3 – se distingue entre otros motores) Crystal Space
Irrlicht
OGRE
Torque
Unreal 2
Optimización
2
2
2
2
2
Objetos
3
1
1
2
2
Iluminación
2
2
2
2
2
Física
3
1
2
3
3
Audio
2
1
0
2
2
Generadores
3
2
2
3
2
IA
2
0
0
2
3
MultiPlayer
1
0
0
3
3
Construcción
3
1
2
2
2
Ejecución
2
2
2
2
3
Dinámica de desarrollo
3
2
3
1
1
Estándares
2
2
2
1
1
Herramientas
2
1
1
3
3
Total
30
17
19
28
29
y Torque. Unreal posee un sistema con derechos de autor. No cabe duda de que en cada motor se puede emplear OpenAL, pero no siempre está integrada y se necesitaría escribir el código que la vincula.
Generadores
Los generadores de texturas base no me parecen útiles, puesto que asemejan entre sí los respectivos juegos. La mayoría de los motores, y aquellos disponibles (por ej.:
fuego o agua), visualmente son débiles. En cambio, serían muy útiles texturas tan sutiles como la suciedad. La mejor aplicación de los generadores es la operación del espacio, por ej.: la creación de terrenos o la diseminación de bosques; tales características le dan ventaja a Crystal Space y Torque.
IA
Durante la valorización de los motores consideré asimismo las librerías,
solución, aunque también emplea el método Opcode, es una solución integrada que soporta la física de un cuerpo sólido. Unreal 2 y Torque poseen una solución muy rica. Además, una gran ventaja de estos motores (cuestión que le falta a otros) es la física de vehículos.
Audio
El motor del juego frecuentemente está vinculado a la visualización en 3D. Asimismo es importante el sistema de soporte de audio. Para obtener un sonido espacial a menudo se utiliza la librería OpenAL, empleada por Crystal Space
28
Linux+ 1/2005
Figura 3. Objetos y sus sombreados en OGRE
motores de juegos 3D
Instalación de las diferentes librerías desde sus fuentes Si iniciamos la aventura con los motores Open Source, entonces es aconsejableverificar si están disponibles en forma de paquete dentro de los límites de nuestra distribución (en Mandrakelinux Crystal Space y OGRE se encuentran en la sección Contrib). De lo contrario tenemos que bajar los fuentes desde la página oficial del proyecto y compilarlos. Si estamos interesados seriamente en una determinada solución, usaremos para ello la versión actual de desarrollo de CVS, ya que con frecuencia ofrece soluciones nuevas e interesantes. Para la compilación de librerías como Crystal Space u OGRE os recomiendo reservar mucho tiempo. Asimismo, hay que tener presente que utilizan muchas librerías externas, lo que a menudo significa luchar horas y horas por la compatibilidad de las versiones y asegurar las dependencias. Y por supuesto, no olvidemos el tiempo necesario para la compilación de las librerías.
Crystal Space
Actualmente, la decisión más importante que tomar es la elección entre el nuevo y el viejo motor de renderizado (flag –enable-new-renderer). El viejo está optimizado para tarjetas como Riva TNT o las primeras GeForce y no tiene soporte para shaders. El nuevo, en cambio, funcionará sin problemas con tarjetas antiguas, pero está escrito ante todo con la idea de los últimos logros de la técnica de renderizado. El segundo flag que hay que describir es –enable-cpu-specific-optimizations. Aquí la colocamos en max, que corresponde con la plataforma i686 y nivel de optimización O3. Si deseamos acelerar el tiempo de compilación, propongo desactivar los lenguajes de script –without-python –without-java –without-perl. Después de desempaquetar los fuentes ejecutamos: ./configure –enable-new-renderer
S
–enable-cpu-specific-optimizations=max
creadas oficialmente, que complementan las posibilidades de éstos. Para Crystal Space la librería Crystal Entity Layer (CEL) es la que se encarga de los problemas de la inteligencia de la máquina, así como de encontrar el camino o la organización general de nuestro ecosistema, captán-
jam jam install
En este punto nos preguntamos ¿dónde se metió make? Jam es el sucesor mejorado y más moderno del honorable anterior. Si no lo tenemos en nuestra distribución, emplearemos los fuentes de este programa desde el paquete Crystal Space – se compilarán automáticamente. El último paso jam install no es obligatorio, puesto que de todos modos colocamos la variable de entorno, por ejemplo en /etc/profile: export CRYSTAL=/ruta/de acceso/al/
S
directorio/CS
Tras la compilación obtenemos el importante archivo cs-config. Lo utilizamos desde Makefile o Jamfile para la compilación de nuestras aplicaciones posteriores. Por mi parte propongo añadir los siguientes flags optimizados para las variables common_cfalgs y common_cxxflags:
S unknown-pragmas -mcpu=pentiumpro S -march=i686 -fno-exceptions -O3 S
"-D__CRYSTAL_SPACE__ -Wall -Wno-
-fomit-frame-pointer -ffast-math"
Irrlicht y OGRE
La instalación de Irrlicht y OGRE se limita a la ejecución de comandos típicos: ./configure ; make ; make install. En el caso de OGRE, cuando nos encontramos con el problema de la supuesta incompatibilidad de la versión de la librería SDL, obligamos en ./configure la omisión del test con el flag --disable-sdltest.
Torque
Este motor posee su propio instalador. Tras darle derechos de ejecución, procedemos conforme a las indicaciones visualizadas en la pantalla. Seguidamente, los archivos necesarios los encontramos en el directorio: /usr/ local/src/Torque/.
dolo según las existencias, de las cuales cada uno tiene algún objetivo a realizar. Torque y Unreal 2 ya tienen estas características integradas; no obstante, el último (Unreal 2) profundiza más en el asunto, puesto que podemos decir que sus bots virtuales poseen cierto tipo de viveza.
entretenimiento
MultiPlayer
Tanto Unreal 2 como Torque desarrollan el soporte de red con soluciones readyto-use. Crystal Space tiene un soporte residual que se limita a implementar plugins y algunas otras funciones, de modo que tareas como la realización del servidor y del cliente hay que llevarlas a cabo por separado.
API
Irrlicht destaca aquí por su baja puntuación. Si el proyecto tiene pensado desarrollarse, es necesario cambiar la API, ya que está enfocada a la creación del objeto y no al hecho de su visualización. En otros motores esta realización esta mejor pensada. Unreal 2 y Torque cumplen las exigencias de arriba, así como Crystal Space u OGRE, pero sus scripts no están en un lenguaje estándar y, por tanto, no ofrecen mucha elección. Crystal Space gana por: la cantidad de lenguajes (C++, Java, Python, Perl, XML), la construcción que nos recuerda a Corba, el poseer punteros inteligentes y la detección de desbordamientos de memoria.
Ejecución
Unreal 2 ha obtenido supremacía principalmente por su accesibilidad en plataformas exóticas como las consolas para juegos. Además, que no nos extrañe la calidad de los motores comerciales – si pagamos, exigimos. En Unreal 2 tenemos documentación completa y soporte técnico por parte de la empresa. En motores Open Source la situación es casi idéntica. Cada motor posee una extensa documentación con muchos ejemplos.
Dinámica de desarrollo
La dinámica de desarrollo de proyectos como Crystal Space, Irrlicht u OGRE
Figura 4. Con la ayuda de Torque se crean juegos muy divertidos
www.lpmagazine.org
29
entretenimiento
Librerías adicionales
Los motores de juegos 3D con frecuencia utilizan librerías adicionales que han sido desarrolladas por otros grupos con el objetivo de completar ciertas opciones que un determinado motor no posee: • •
•
• • • •
•
Allegro –complejo soporte multiplataforma de los multimedia; SDL – librería análoga a la anterior. No abarca tantos aspectos, sin embargo, es más pequeña y accesible para la mayoría de las plataformas; DevIL – soporte de los formatos gráficos más populares tales como: bmp, dds, doom, ico, jpg, lbm, lif, mdl, pal, pcd, pcx, pic, png, pnm, psd, psp, raw, sgi, tga, tif y wal; OGG – nuevo formato de compresión de audio; ODE – soporte de la física de los cuerpos sólidos; OpenAL – sonido del espacio; WxWidgets – librería multiplataforma para la visualización de la GUI; una API común, a la vez que resulta ser la decoración nativa para un determinado sistema; Zlib – compresión sin pérdida de datos.
es muy alta. El futuro de las soluciones comerciales es inseguro. Unreal 2 dejará de desarrollarse, porque su sucesor Unreal 3 ya ocupa su lugar ofreciendo posibilidades más amplias.
Estándares
Los formatos de datos con derechos de autor no son una buena solución, principalmente, cuando contienen una imagen estándar, sonido o script. Estoy a favor de la compatibilidad con la existente solución abierta y no patentada. Aquí, desgraciadamente, Torque y Unreal 2 nos defraudan. Además, nunca fui partidario de crear un lenguaje de script totalmente nuevo, así que Unreal Script y Torque Script no me motivan. Y más aún si los comparamos con estándares tales como: Python, Perl o Java, que podemos encontrar en Crystal Space, puesto que tendríamos que aprender todo desde el principio.
Herramientas
En Torque y Unreal 2 el paquete incluye depuradores, perfiladores, editores y mu-
30
Linux+ 1/2005
Figura 5. El juego Unreal Tournament 2004 no hay necesidad de presentarlo
chos otros programas. Crystal Space posee algunas herramientas propias tales como el editor de partículas o fuentes. La compatibilidad con los programas 3D en cada uno de los motores es suficiente.
Resumen
El ganador de esta comparación es Crystal Space. Está muy bien desarrollado (5 librerías estáticas básicas y 125 plugins). A diario utilizo esta solución (juego Iceland). Torque y Unreal 2, a pesar de que obtuvieron un total similar de puntos, pierden por ser comerciales. No se trata de ningún modo de idealismo, sino de derecho de propiedad. Crystal Space, bajo la licencia LGPL, es propiedad pública, y con motores comerciales no podemos estar seguros nunca de su futuro, por ej.: Glide 3DFX debería ser una API, pero dejó de existir junto con la empresa. OGRE es una excelente librería. Tiene muchas probabilidades de seguir desarrollándose gracias a su construcción bien pensada. Desgraciadamente, pierde en cantidad de técnicas, aunque para algunos esto puede ser una ventaja (en Crystal Space hay muchísimas, pero al final siempre se emplea sólo una solución). Irrlicht cumple todo lo establecido para un motor moderno, pero no posee soluciones sorprendentes. Sin duda alguna, la mayor cuali-
dad que posee es la inmediata disposición para trabajar gracias a su sencillez y cohesión.
En Internet: •
• • •
• • • • •
• •
•
•
Página principal del motor Crystal Space: http://crystal.sourceforge.net/ Página principal del motor Irrlicht: http://irrlicht.sourceforge.net/ Página principal del motor OGRE: http://www.ogre3d.org/ Página principal del motor Torque: http://www.garagegames.com/pg/ product/view.php?id=1 Página principal del motor Unreal 2: http://www.unrealtechnology.com/ Página principal de la librería Allegro: http://alleg.sourceforge.net/ Página principal de la librería SDL: http://www.libsdl.org/ Página principal de la librería DevIL: http://openil.sourceforge.net/ Página principal de la librería OGG Vorbis: http://www.vorbis.com/ Página principal de la librería ODE: http://www.ode.org/ Página principal de la librería OpenAL: http://www.openal.org/ Página principal de la librería WxWidgets: http://www.wxwidgets.org/ Página principal de la librería Zlib: http://www.gzip.org/zlib/
entrevista
Entrevista a Peter Hunnisett, creador de Cedega y Point2Play Krzysztof Krawczyk: Para empezar, ¿a qué te dedicas en la empresa TransGaming?, ya que no todos nuestros Lectores lo saben. Y ¿qué haces en el tiempo libre? Peter Hunnisett: Soy jefe del departamento dedicado al desarrollo del software para Linux. Para la mayoría de la gente, esto equivale a Cedega y Point2Play, aunque habría también que incluir las versiones para Linux de juegos como The Sims o Kohan. Cuando no estoy en el trabajo, me podéis encontrar reparando mi casa; tarea que, hasta hace poco era pequeña, pero sigue y sigue creciendo... KK: ¿Cómo te has relacionado con Wine? PH: En 1996 me compré un ordenador nuevo. Al principio no tenía el Windows instalado, pero sí un gran número de juegos, un poco de tiempo libre y uno de esos libros gordos, que en realidad no son más que una copia de todos los manuales (ing. man pages) accesibles de Linux. Lo estuve ojeando buscando algo acerca de juegos. Encontré información sobre el proyecto Wine. Me bajé el paquete con fuentes, lo compilé e intenté arrancar mis juegos. Fue horrible, porque no arrancó nada plenamente, ni siquiera sol.exe. Dejé de interesarme por este asunto. Años después, y en un periodo de aburrimiento, me acordé de este Wine y pensé en él como un desafío. Así que me compré unos cuantos juegos en rebajas y empecé mi lucha contra Wine. Lo demás ya no es muy interesante, porque se correspondería con el ChangeLog (lista de cambios) de Wine. KK: ¿A qué os dedicáis más ahora, durante el trabajo para desarrollo de Cedega? PH: Trabajamos con la lista de deseos preparada por nuestros clientes (personas que han pagado su abono). Nuestra primera edición ha sido Cedega 4.0 con el apoyo para estándar Direct3D 9, tecnología Pixel Shaders, drivers ALSA y gran cantidad y de juegos. En Cedega 4.1 nos hemos concentrado en el sonido, el rendimiento de los gráficos 3D y de los juegos adicionales. En la próxima edición nos vamos a concentrar solamente en los juegos,
32
Linux+ 1/2005
porque la mayoría de las innovaciones tecnológicas ya las tenemos. KK: ¿Por qué habéis cambiado el nombre de vuestro producto WineX en Cedega? PH: En un diccionario se podría poner: Cedega f 1 variedad extraordinaria de uvas utilizada en la producción de los mejores vinos del mundo; 2 solución revolucionaria de la empresa TransGaming que permite arrancar los juegos para Windows en Linux. Cedega 4.0 es una reflexión sobre el progreso, que ha tenido lugar en nuestro producto de Linux. Por eso parecía conveniente ponerle un nombre nuevo acorde a sus rasgos más característicos como: madurez, complejidad, universalidad y elegancia. El nuevo nombre, Cedega, es significativo, no sólo porque muestra el increíble desarrollo de nuestra solución, sino también por la situación que ha establecido TransGaming entre los fabricantes de software para Linux. Gran parte del mérito se debe a nuestros clientes. KK: ¿Cuántos programadores trabajan en el desarrollo de Cedega? PH: Tenemos dos equipos. El grupo Linux consta de cuatro programadores y se concentra en un trabajo diario de desarrollo y soporte para Cedega y Point2Play. El segundo grupo es el responsable de la verificación del funcionamiento de nuestra tecnología. También cooperamos con algunos clientes y miembros de comunidades Linux que nos envían parches, notifican los errores y se ocupan de las traducciones. Me gustaría que más miembros de comunidad Linux se suscribieran a nuestras listas de discusión en TransGaming.org y tomaran parte en el desarrollo de esta tecnología. Aunque el tamaño del código base puede aplastar a las personas que quieren participar, también tenemos proyectos pequeños que no exigen mucha experiencia en programación. Además, nos interesan las notificaciones de errores y la información detallada sobre los éxitos y fallos al emplear la tecnología.
KK: ¿Es difícil gestionar este proyecto? PH: No es fácil, pero así pasa con todos los proyectos de desarrollo de software. Encuentro muchos obstáculos. Uno surge directamente de nuestra estrategia de ediciones regulares. Tenemos que seguirla porque vendemos Cedega en un abono, lo que lleva al constante compromiso entre la funcionalidad y el horario, así como entre la estabilidad y el desarrollo. Nuestros subscriptores tienen que recibir las siguientes ediciones que contengan algo nuevo regularmente. Para eso nos pagan. Aunque nuestro equipo de testers cumple con sus compromisos, nuestro mayor desafío es comprobar todos los juegos soportados antes de publicarlos en una versión nueva. Un solo cambio en el código puede influir en el funcionamiento un número indeterminado de juegos. KK: ¿Te acuerdas de tu primer parche de Wine? PH: Hablando francamente, no, aunque después de un rápido análisis del ChangeLog del proyecto Wine, recuerdo que fue un parche típico de principiante; agregar flags ausentes en los archivos de cabecera y otros cambios pequeños. En el caso de WineX fueron las mismas mejoras en los archivos de cabecera que facilitaban el arranque de los juegos para Windows. KK: ¿Cuál es tu área preferida de trabajo sobre Wine? PH: No sé si tengo un área preferida. Raramente trabajo en el mismo fragmento de código por una segunda vez. Me gusta la tarea de mover nuestro winserver, que utiliza memoria compartida, de la fase de prototipo a la de producción. KK: ¿Cuáles son rasgos característicos de Cedega 4.1? PH: En cuanto a las cuestiones técnicas lo más importante es el aumento de rendimiento. Hemos completamente reescrito el motor gráfico para cambiar las funciones estáticas en programables. Con esto podemos transferir los datos de vertex más rápido, lo que significa un rendimiento mejor de los gráficos 3D. Además, hemos
entrevista a Peter Hunnisett
Peter Hunnisett
añadido mejoras, que utilizan las instrucciones MMX del procesador en el código responsable de mezcla de sonido, lo que ha causado una aceleración notable de algunos juegos como Battlefield 1942. En cuanto a los juegos, Cedega 4.1 asegura el soporte para Far Cry de CryTek y Anarchy Online de Funcom. KK: ¿Qué es Point2Play? ¿Cuáles son sus rasgos característicos? PH: Point2Play es un entorno gráfico para Cedega, disponible solamente para nuestros suscriptores. Facilita el proceso de carga de Cedega, la gestión de versiones y la configuración de los juegos. Está escrito en Python y utiliza GTK2. Además, está localizado y disponible en varios idiomas, aunque, desgraciadamente, aún nos faltan algunos. Si alguien de vuestros Lectores quisiera ayudarnos con la traducción puede contactar con nosotros a través de la lista de discusión: winex-devel@lists. transgaming.org. KK: ¿Podrías describir brevemente el soporte para los mecanismos de seguridad contra la copia ilegal que usan los creadores de juegos? Por lo que yo sé, soportáis algunos en Cedega. PH: El objetivo de introducir estos mecanismos es dificultar copiar los CDs con juegos por medio de numerosos cambios en el portador y la especificación de grabación de CD/DVD que se realizan durante la preparación del juego. Luego, durante el arranque de la aplicación, se ejecutan tests para comprobar si en la unidad se encuentra el portador original. Las soluciones más populares para la plataforma PC son programas comerciales SafeDisc y SecuROM, ambos soportados por Cedega. KK: ¿Qué tal con el soporte para Direct3D 9 en Cedega?
PH: Cedega 4.0 fue la primera edición en la que apareció el soporte para los juegos que utilizaban Direct3D 9. En la actualidad, damos soporte para muchos juegos de este tipo, entre otros: City of Heroes, Far Cry, DOOM 3, Battlefield Vietnam y Star Wars Galaxies. Estamos trabajando sobre el soporte para los juegos que nos han pedido nuestros subscriptores.. KK: ¿Tú mismo usas Cedega y para qué? PH: Estoy rodeado de juegos en el trabajo y cuando finalmente aplico Cedega para fines personales, son aplicaciones que no tienen nada que ver con los juegos, como programas que me ayudan en la reparación de casa. A veces mi novia usa Cedega para arrancar su paquete estadístico. KK: ¿Usas Linux en trabajo o en casa? Si usas, ¿qué distribución y por qué ésta? PH: Uso Linux tanto en casa como en trabajo desde hace unos años. En el trabajo uso Mandrakelinux 10.0, en casa Mandrakelinux 9.1, en el portátil Mandrake 8.1. Usaba Debian en mi ordenador de casa, pero esta distribución ya no me gusta, aunque con ella sea mucho más fácil cargar paquetes con software nuevo que con Mandrakelinux. KK: Algunas distribuciones de Linux tratan de parecerse a Windows. P.ej. Linspire anunciaba que seria un equivalente de Windows a través del uso de Wine. ¿Qué opinas de esto? PH: Bueno, creo que su modo de tratar el tema es razonable. Desde el punto de vista económico, el coste de formación es un elemento importante en el proceso de tomar la decisión de cambiar entorno de trabajo o programa. Una oferta con el mismo aspecto y características ayudaría a reducir o eliminar el coste de formación. Y si el producto es más barato, ya tenemos un campeón. Es importante para aquellas distribuciones que no estén dedicadas a un usuario experimentado de Linux, sino a un típico usuario de Windows. Por eso, todos detalles de funcionamiento del sistema deben estar ocultos. KK: ¿Cuál es tu opinión sobre el lugar de Cedega en un sistema Linux moderno? PH: Es un programa fundamental para todos que tienen interés en los juegos. KK: ¿Tienes algún juego preferido para Linux y para Windows pero que se arranque en Linux? PH: No puedo decir que haya encontrado juegos específicos para Linux que me gusten y que no tengan un equi-
entrevista
valente para Windows. Todas las versiones demo que he visto no han sido lo suficientemente interesantes, en algunos casos incluso mucho peores que los juegos para Windows. En este momento, mi juego preferido para Windows, que funciona con Cedega, es Battlefield 1942. KK: ¿Qué piensas sobre el mercado de jugos para Linux? ¿Si Cedega es una amenaza para la creación de juegos creados especialmente para Linux? ¿Qué opinas sobre las empresas como Linux Game Publishing? PH: No creo que Cedega sea peligrosa para los juegos nativos. Hace posible que los usuarios de Linux jueguen los títulos nuevos que no podrían jugar de otra manera. El coste de crear un juego moderno excede los 10 millones de dólares. Entonces, si los creadores no deciden hacerlos gratis, no aparecerán versiones para Linux en un tiempo razonable o nunca. Los editores de juegos se dirigen donde está el dinero. Hay que hacerles conscientes de que puede surgir un nuevo mercado de venta. Puede surgir si un grupo bastante numeroso confirma que falta de juegos es la causa principal de no usar Linux. Cedega y Point2Play ayudan en la creación del mercado de juegos para Linux en el que después podrán basarse los editores de juegos. KK: ¿Piensas que Cedega será perfecto un día? ¿O estará cerca de serlo? Me refiero a cuando compre un paquete con un nuevo juego para Windows y lo arranco sin problemas en mi Linux con ayuda de Cedega. PH: No veo ninguna razón para que Cedega no pueda aproximarse a la perfección. Hay muchos titulos que se pueden instalar, pasar correctamente la protección contra la piratería y gozar del juego sin darse cuenta de que no fue creada para Linux. Con cada edición apoyamos más juegos. KK: Gracias por la entrevista.
En Internet: –
–
–
–
Página principal de la empresa TransGaming: http://www.transgaming.com/ Página de la comunidad relacionada con la empresa TransGaming: http://www.transgaming.org/ Informaciones sobre la versión Cedega 4.1: http://downloads.transgaming.com/ files/cedega-4.1_releasenotes.txt Página principal del proyecto ReWind: http://rewind.sourceforge.net/
www.lpmagazine.org
33
software aktualności
gnome
GParted
– editor de particiones del disco duro Mateusz Papiernik
D
e vez en cuando solemos modificar el orden de las particiones, ya sea por habernos comprado un disco nuevo, o por reorganizar espacio en el dispositivo existente. Hasta hace poco la única posibilidad de hacerlo en Linux era emplear uno de los programas de texto de administración de particiones: el Fdisk, el Cfdisk; un poco más cómodo, o el Parted; relativamente joven. Por suerte, desde hace algún tiempo Linux puede estar orgulloso de dos programas gráficos que sirven para gestionar las particiones del disco duro: GParted y QtParted. Parted, el administrador de texto de particiones, ha sido diseñado desde su origen como una herramienta modular, lo que ha facilitado el nacimiento de dos programas para entornos distintos: QtParted, para KDE, y GParted, para GNOME. Nosotros vamos a hablar del segundo. GNOME Partition Editor, abreviado como GParted, es un programa de gestión de las particiones basado en la librería libparted. Entre sus mayores ventajas podemos incluir la capacidad de crear, mover, y copiar la partición, así como la de modificar su tamaño. No obstante, no debe olvidarse su interfaz, muy intuitiva y elaborada al detalle, ya que sus autores declaran la conformidad del programa con las normas de diseño de la interfaz GNOME (GNOME Human Interface Guidelines). El programa ahora da soporte a la mayoría de las funciones de la librería libparted, brindando la oportunidad de plena administración de las particiones: ext2, ext3, fat16 y fat32, así como de la swap. Además, GParted sabe editar las particiones ReiserFS, pero requiere para ello una librería libreiserfs aparte. A pesar de que se da soporte oficial sólo a los paquetes binarios para Debian, la instalación del programa no debe
34
Linux+ 1/2005
provocar contratiempos. Lo único que nos hace falta para que compilemos GParted de manera correcta es libparted (y en el caso del soporte de ReiserFS, también la libreiserfs), así como Gtkmm. Descargamos el programa desde la página de inicio del proyecto y descomprimimos sus fuentes con el comando: # tar -jxfv gparted-0.0.6.tar.bz2
Luego, procedemos como si se tratara de la mayoría de los programas Linux, llamando sucesivamente: # ./configure # make
y desde la cuenta de superusuario: # make install
Figura 1. La interfaz del programa
Arrancamos el programa con el comando gparted desde la cuenta de root (al intentar iniciarlo desde la cuenta del usuario no privilegiado veremos el mensaje de que el programa puede ser un arma de destrucción masiva, así que debe emplearse sólo por el root. Este aviso de broma nos hace ser conscientes de que jugar con la tabla de particiones puede resultar dañino). La interfaz GParted la componen tres elementos: la barra de herramientas relacionada con el menú principal, el diagrama de las particiones de nuestro disco y la lista de particiones. En el diagrama vermos todas las informaciones importantes respecto a las particiones: tipo, tamaño, ubicación, espacio ocupado, y nombre del dispositivo bajo el que una partición dada se deja ver por el sistema. La lista de las particiones está conectada a un diagrama gráfico que presenta la
GNOME
Figura 2. Realizando operaciones sobre las particiones
misma información, y esto significa que la partición en la que queremos realizar cambios la podemos seleccionar tanto en la lista como en el diagrama. Si una partición está actualmente en uso, en la lista se mostrará un candado informándonos de que no es posible realizar ninguna operación sobre esta partición. En este caso nos ocupamos de las demás particiones, o arrancamos Gparted a través de cualquier distribución “viva”. Tras haber marcado la partición que nos interesa procedemos a modificarla: para ello están destinados los botones colocados en la barra de herramientas. Las funciones disponibles son: crear una partición nueva (en el caso de seleccionar un espacio vacío en el disco), eliminar una partición existente o moverla y dimensionarla. Los dos botones siguientes son: Volver y Aplicar, que permiten realizar o rechazar los cambios propuestos. De manera similar a los correspondientes programas comerciales para Windows, al operar sobre las particiones en el programa sólo modificamos la lista de las acciones planeadas: elegir la opción Aplicar provoca la ejecución sucesiva de todos los pasos de la lista, llevando el arreglo de las particiones hasta el estado deseado. Al crear una partición nueva elegimos la distancia de la partición del principio del espacio libre, así como del final de este espacio, fijando al mismo tiempo el tamaño de la partición. Fijaremos el tamaño y la ubicación a través de los campos de edición, y con el ratón sobre el diagrama, moviendo y dimensionando el rectángulo que represente una partición determinada. El programa también
permite escoger el tipo de partición de entre básica, ampliada o lógica. Además, podemos seleccionar el tipo de sistema de ficheros (ext2, ext3, reiserfs – después de haber instalado libreiserfs, swap, fat16 o fat32). Actuamos de forma análoga si se trata de modificar el tamaño o la ubicación de la partición, a condición de que no estemos seleccionando su tipo ni el tipo de sistema de los ficheros. La principal ventaja de GParted, en comparación con los programas basados en Fdisk, consiste en que dimensionar la partición no hace daño a los datos que en ella se encuentran:, así pues, aumentamos nuestra partición sin tener miedo y el programa se ocupará del resto. La eliminación de las particiones existentes se limita a confirmar si de verdad nos hemos decidido a realizar este paso. Tras haber efectuado todos los cambios que nos interesan escogemos el botón Aplicar. Confirmada la intención de llevar a cabo todas esas operaciones, el programa se pondrá a trabajar. La ventana que aparecerá permite estar al corriente del proceso que experimentan los cambios en la tabla de particiones. Después de que el proceso haya terminado tenemos que reiniciar el ordenador para que el sistema lea la nueva tabla de particiones y obedezca a su normativa. GParted es un programa que de verdad merece nuestra atención y además es muy práctico para todos aquellos a los que no les gusta utilizar el Fdisk, o no saben hacerlo. http://gparted.sourceforge.net/
Noticias
Kazehakase El mercado de los navegadores web se va desarrollando de forma muy dinámica. Si hablamos de los sistemas Unix, en el campo de batalla han permanecido: Opera, Mozilla y Konqueror. A Mozilla no le faltan los frontends escritos por varios autores, que se han propuesto varios objetivos: Kazehakase es uno de estos frontends. La torpeza de Galeon, por un lado, y la ligereza exagerada de Epiphany por otro, han contribuido al nacimiento de Kazehakase. El programa se ha escrito utilizando GTK+ y, según las intenciones de su autor, está destinado a ser el navegador GNOME más fácil en el uso y más práctico por habilitar. Las características del programa las forman: la visualización en paneles, el soporte de pestañas externas (de ficheros RSS), así como una interfaz de usuario fácilmente configurable, incluyendo el soporte de gestos y los atajos de teclado. A pesar de su relativamente baja popularidad, Kazehakase puede estar orgulloso de sus numerosas mejoras, que lo distinguen de entre sus rivales. http://kazehakase.sourceforge.jp/ XML domado Para MlView, un editor de XML escrito con el apoyo de GTK, ya ha llegado la hora de una nueva versión de número 0.7.0. La suposición clave de sus autores ha sido crear un programa cuya tarea permita construir ficheros XML correctos, rápida y cómodamente, sin que sea importante si se ha empleado DTD o no. El principio de la operación de MlView se basa en una representación en árbol del documento, así como en la edición de cada uno de los nodos de este árbol. La nueva versión introduce muchas innovaciones, entre otras, la posibilidad de asignar los atajos de teclado que facilitan el trabajo sobre el documento y lo hacen más rápido, además de un nuevo sistema de validar el fichero editado. Conviene mencionar la migración al GtkFileChooser, un control nuevo de GTK, el número infinito de volver/rehacer de una operación determinada, o la posibilidad de desactivar un nodo sencillo a través de un comentario. Aunque sea menos popular que su rival Conglomerate, el programa merece la atención y es capaz de facilitar el trabajo a todos los que se dedican a editar los ficheros XML a diario. http://www.freespiders.org/projects/ gmlview
www.lpmagazine.org
35
software aktualności
kde
Kaffeine Player
– un reproductor multimedia Witold Kieraś
H
ace ya un par de años MPlayer reinaba con todo su esplendor en la categoría de los reproductores multimedia para Linux. Ahora sigue teniendo muchos aficionados, porque no ha perdido su valor, pero la dominación ya no es tan evidente. Primero apareció Xine, un proyecto del motor del reproductor multimedia que, al igual que MPlayer, sabe utilizar los codecs binarios para Windows. Su popularidad ha ido creciendo lenta pero sucesivamente. Los que han descubierto Linux hace más o menos un año quizá emplean Xine más a menudo que los veteranos que adoran el MPlayer, probablemente porque el primero se arranca con una interfaz gráfica. Por otro lado, MPlayer cuenta también con un frontend gráfico, pero es difícil encontrar a alguien que esté plenamente satisfecho con su funcionamiento (desde luego, no cabe duda de que los propios desarrolladores de MPlayer lo han tratado siempre con desgana). La belleza y ergonomía tampoco son rasgos con los que pueda lucirse Xine. Por esta razón, a partir de este motor han surgido programas gráficos en su totalidad y agradables para la vista. Uno de ellos es Kaffeine Player, un reproductor multimedia para el entorno KDE.
¿Para qué sirve Kaffeine? Si conocéis AmaroK, un reproductor de música para KDE, y os atrae, seguro que también os gustaría tener un reproductor de vídeo diseñado a partir de unas ideas parecidas. Se requiere que sea de fácil manejo y a la vez dé acceso a muchas opciones detalladas, ergonómico, intuitivo, en una palabra, un reproductor que contenga todas esas características de las que carecen los frontends gráficos estándar para Xine y MPlayer. Kaffeine es un proyecto de ese estilo. De momento no ha alcanzado la estabilidad, sin embargo, las diferencias entre las versiones 0.4.x y 0.5 demuestran ya la dirección que desean tomar sus autores. A la hora de escribir este artículo se
36
Linux+ 1/2005
encuentra disponible sólo la primera versión, que es candidata para la edición 0.5 (release candidate), pero tal vez los Lectores ya han tenido la oportunidad de conocer la versión estable de esa edición. Han cambiado muchas cosas respecto a la versión 0.4, entre las que cabe mencionar la reconstrucción casi completa de la interfaz, o la reescritura de una amplia parte del código. De modo que en este artículo centraremos nuestro interés en la versión nueva, que puede agradar mucho a los usuarios.
Instalación y configuración preliminar Lo más fácil es instalar Kaffeine desde los paquetes para las respectivas distribuciones. Si no disponemos de tales paquetes hay que aprovechar los fuentes. Aparte de los fuentes del programa, hará falta también: el entorno KDE, al menos en la versión 3.2, junto con los ficheros de cabecera de las librerías kdelibs y Qt (paquetes kdelibs-devel y qt3-devel), así como el paquete xine-lib, al menos en la versión 1.0rc4; todos ellos instalados en el sistema. Tras descomprimir los fuentes del programa mediante el comando tar xjvf kaffeine<versión>.tar.bz2 pasamos al directorio kaffeine-<versión> (cd kaffeine-<versión>) que se acaba de crear y ejecutamos sucesivamente los comandos: ./configure, make y make install (este último, por supuesto, autorizado como administrador del sistema). Kaffeine se instalará de manera estándar en el directorio /usr/local/. Si preferimos instalarlo en otro sitio, debemos comunicar esta información al script de configuración a través de la opción --prefix. En tal caso, el comando ./configure ha de tener el siguiente aspecto: ./configure –prefix=/ruta/al/ directorio/. Al configurarlo por primera vez, nos dará la bienvenida un autoconfigurador sencillo, que comprobará si los componentes necesarios se han instalado en el sistema, y nos preguntará si queremos que Kaffeine reproduzca los formatos de streaming de manera estándar. Además,
tenemos la posibilidad de poner un icono del programa en el escritorio. Kaffeine, como tal, no nos hace disponibles muchas opciones de configuración. Al seleccionar en el menú Preferencias–> Configurar Kaffeine Player... podremos decidir únicamente de si el icono del programa debe verse en la bandeja de sistema, y también concluir cómo deben ser los intervalos entre los llamados falsos pulsados del botón, gracias a los cuales, mientras se ponga la película, no se arranca el salvapantallas. Lo que constituye la fuerza de Kaffeine está incluido en las opciones de configuración del motor Xine y esto está disponible en el menú tras seleccionar la opción Preferencias–>Parámetros del motor de xine.
DVD, VCD, audio..., es decir, todo en uno La popularidad de las películas en formatos DVD y VCD ha aumentado últimamente, sobre todo, a causa de las revistas en color que adjuntan discos casi en cada número. Kaffeine da un soporte cómodo, no sólo de la película misma, sino también de su menú, ampliado con bastante frecuencia. Lo mejor es definir la unidad DVD al principio (la opción dvd_device), en la sección input. Para las películas VCD podemos definir otro dispositivo: en la sec-
Figura 1. Kaffeine Player justo después de ser instalado
KDE
Figura 2. DVD se convierte ya en un estándar en el mundo del ocio
En el menú Preferencias–>Parámetros del motor de xine podemos fijar el tamaño de los subtítulos (con la opción spu_subtitle_size), así como su desplazamiento vertical (opción spu_vertical_offset – los valores positivos desplazarán los subtítulos hacia arriba de la pantalla, y los negativos, hacia abajo). Tras pulsar el botón Expert Options accedemos a la configuración avanzada que incluye los tipos de letra con los que se visualizará la película (la opción spu_font).
Resumen ción vcd (en la parte inferior) escribimos p. ej. unidad CD-ROM, o sea, /dev/cdrom. Si el disco con la película está en la unidad correspondiente, basta con hacer clic en la pestaña Go! en Open DVD u Open VCD respectivamente para empezar a reproducirla. Y ¿qué pasa con el menú de las películas DVD/VCD? Ambas pueden ser manejadas, o bien de manera estándar, como sucede en el caso de otros reproductores DVD, o bien desde el menú de Kaffeine: Player–>Menu DVD. De este modo, se puede pasar sin más a las secciones del menú escogidas, como por ejemplo a la administración de subtítulos, sin que se haga necesario esperar a que termine de mostrarse la publicidad. Es conveniente fijarse en que Kaffeine nos permite reproducir discos audio, supliendo de esta forma a KsCD, un programa especializado para KDE. Kaffeine sabe descargar los títulos de los álbumes y de las piezas desde las bases CDDB en Internet. Esto nos permite, además, preparar las listas de reproducción.
DivX y subtítulos Una de las preguntas que aparecen con más frecuencia en los grupos de discusión de Linux y que suelen ser formuladas por los usuarios principiantes se refiere a los subtítulos de las películas. Una configuración del reproductor correcta, que hace que éste visualice los subtítulos propiamente codificados, en un lugar adecuado y del tamaño oportuno provoca muchos problemas. Los usuarios de Kaffeine lo tendrán mucho más fácil. Primero, si sólo el reproductor encuentra cualquier fichero de texto en el directorio de la película, nos preguntará si queremos habilitar subtítulos. Si hay más de un fichero de texto, nos permitirá seleccionar la versión adecuada. Esta ventaja supone ya una comodidad muy agradable, puesto que indicar los ficheros de subtítulos a mano durante cada reproducción suele ser muy irritante.
Kaffeine Player es, o más bien será en un futuro no muy lejano, una oferta interesante, en particular para los usuarios principiantes de Linux. Sobre todo debido a que sus autores no sólo elaboran una interfaz gráfica, sino que también reflexionan sobre cómo hacerla lo más útil posible. Y en este aspecto, por desgracia, la interfaz sigue dejando mucho que desear en el mundo de las aplicaciones gráficas de Linux. La comparación con el reproductor AmaroK surge casi de manera obvia: se trata de un mar de opciones organizadas para que el usuario no tenga que rebuscar entre ellas y pueda utilizarlas casi mediante un único clic del ratón. Tampoco es difícil notar que los autores de ambos programas están mirando con lupa todas sus invenciones, incluso las más diminutas, como por ejemplo el marcador del estado de reproducción que se visualiza en el icono del programa (en la bandeja de sistema), que se ha implementado recientemente en AmaroK y que ya se conocía de Kaffeine. Desafortunadamente, las comparaciones con AmaroK no acaban aquí: Kaffeine es también un programa de considerables requerimientos de sistema, pero esto no es nada nuevo, ya que todo el entorno de KDE necesita, cómo mínimo, máquinas de clase media para poder funcionar a sus anchas. También es una pena que los autores de Kaffeine no hayan optado por hacerlo compatible con Xine a la hora de manejar el programa a través del teclado; los hábitos de los usuarios son muy importantes y merece la pena respetarlos. Kaffeine es un proyecto que todavía no ha alcanzado la madurez ni la estabilidad completa, pero se perfila muy prometedor y vale la pena buscarlo. Parece que son los programas de este tipo los que serán la fuerza motriz de Linux en los escritorios y los que van a convencer a los incrédulos de que este sistema se las arregla perfectamente en el ámbito personal. http://kaffeine.sourceforge.net/
Noticias
¡8 años de KDE! Para algunos puede resultar difícil de creer, pero el entorno gráfico KDE ya tiene ocho años. La realización del proyecto se inició en el año 1996 por Matthias Ettrich, un estudiante de informática de Alemania, que pronto concentró a su alrededor a un grupo de programadores bastante numeroso. Ahora KDE es uno de los proyectos Open Source más populares. ¡Enhorabuena, y que sean muchos los años provechosos para este trabajo! Esperamos impacientes la edición crucial KDE 4.0. http://dot.kde.org/1097866585/ KDE 3.3.1, o sea, mejoras... El 12 de octubre del año pasado apreció la nueva versión del entorno gráfico KDE que lleva el número 3.3.1. tan sólo se trata, claro, de una edición que introduce las mejoras avisadas para la versión 3.3.0. En esta actualización, se arregló el mayor número de errores en los programas: Kopete, KMail y Quanta Plus. También las versiones lingüísticas se sometieron a estas mejoras: KDE está disponible en cincuenta lenguas del mundo. http://kde.org/announcements/ announce-3.3.1.php AmaroK 1.1.1 La siguiente edición del reproductor de música para KDE que se desarrolla de manera fenomenal, tiene la denominación de código Candy y está marcado con el número 1.1.1. En ella, se han reparado un par de errores, avisados respecto a la edición pasada, se han añadido algunos detalles (entre otros, una barra de menú como opción), y también se ha agregado una nueva pantalla que anuncia el arranque del programa (ing. splashscreen) cuyo autor es Nenad Grujicic. http://amarok.kde.org/content/view/ 16/2/ Codeine 1.0-beta1 El proyecto Codeine, un simple reproductor multimedia para KDE, está a punto de llegar a su madurez. De hecho, es un frontend más para Xine, pero esta vez la ambición del autor ha sido eliminar las funciones que consideraba inútiles y que eran basura en la interfaz. Y, de verdad, Codeine cuenta con un aspecto excepcionalmente sobrio, pudiendo llegar así a encontrar sus partidarios entre los que no se encontraban a gusto con Kaffeine, descrito en este número de Linux+. http://www.methylblue.com/codeine/ http://kde-apps.org/content/ show.php?content=17161
www.lpmagazine.org
37
software aktualności
linuxfresh
Blob Wars – un juego de destreza Piotr Machej
H
ubo un tiempo en que los Blobs vivían en paz y la palabra guerra sonaba para ellos solamente como un eco de los tiempos remotos. Sin embargo, aquello no podía durar para siempre. Los Blobs fueron invadidos por los agresores del cosmos y tuvieron que hacerles frente. Después de varios años de lucha agotadora, el ejército de los Blobs tuvo que retroceder. Durante esta maniobra muchos soldados perdieron la vida. Se les consideró desaparecidos en acción (MIA – Missing in Action) y dejados a su propia suerte. Sin embargo, hubo alguien a quien esta situación no le gustó nada. Y tú, soldado, eres ese alguien. Así empieza el juego Blob Wars: Metal Blob Solid. Se trata de un típico juego de plataformas, del tipo conocido ya en Atari, Commodore y Amiga. Su autor, el grupo Parallel Realities, tiene como objetivo crear juegos gratuitos basados en el código abierto, cuya calidad haga que puedan competir con los productos comerciales. Y éste, en principio, lo consigue. Blob Wars es precisamente atractivo y jugable, y esto hará que dure mucho tiempo, que, en definitiva, es lo que más cuenta. El juego se puede instalar de dos maneras. Podemos elegir entre los paquetes RPM y la instalación desde los fuentes. Si utilizamos la distribución que emplea RPM (por ejemplo, Aurox), se aconseja utilizar esta posibilidad. Por otro lado, tenemos la opción de usar los fuentes (bastan los comandos estándar: ./configure, make, make install). Después de instalar el juego, lo iniciamos con el comando /usr/games/ blobwars. También podemos acceder a él desde el menú (tanto desde el menú KDE como GNOME), y luego elegir la posición Metal Blob Solid. Después de arrancar, nos aparece la introducción, gracias a la cual podemos conocer las causas de los acontecimientos a los que asistiremos en el juego. A continuación, obtenemos el acceso al menú.
38
Linux+ 1/2005
Es recomendable pasar inmediatamente a las opciones (Options). Aquí tenemos la posibilidad de definir opciones tales como el volumen del sonido y de la música o la claridad de la pantalla. Si preferimos que el juego esté en modo de pantalla entera, escogemos la posición On de la opción Full Screen, o también accionando la tecla [F]. Las personas sensibles deben desactivar con Off la opción Blood and Gore. De este modo, al matar a los enemigos no veremos las fuentes de sangre roja sino algo parecido a los fuegos artificiales. Si decidimos empezar un juego nuevo (Start New Game), deberemos elegir dónde guardar el juego presente. Para ello, podemos escoger entre cinco localizaciones. La siguiente elección se refiere al nivel de dificultad. En función del nivel seleccionado, tendremos un número diferente de tareas a cumplir. Por ejemplo, en el nivel
Easy debemos concentrarnos solamente en la búsqueda de nuestros soldados desaparecidos en acción (MIA). Aquí, rara vez encontraremos a enemigos que nos ataquen. En el nivel Normal es necesario realizar algunas tareas adicionales como la búsqueda o la destrucción de un objeto. El nivel Practice es el nivel de entrenamiento y no cuenta en las estadísticas del juego, en cambio, podemos familiarizarnos aquí con su manejo. El nivel más elevado (Extreme) será accesible siempre que, por lo menos una vez, hayamos acabado todo el juego en uno de los niveles inferiores. Antes de empezar la misión apropiada, veremos un mapa. Lo utilizaremos siempre entre las misiones, que son más de 25. Los puntos latentes son los destinos que podemos alcanzar. Los indicamos con el ratón o con las teclas del cursor (botón izquierdo y [Ctrl] para aceptar). En la par-
Figura 1. En este momento se puede salvar solamente a uno de ellos
FRESH
Noticias
Pinfo 0.6.8 Revisando la documentación del sistema con los comandos man e info, nos pueden irritar las diferencias entre las interfaces de estos dos programas. La solución para estos problemas es instalar Pinfo, que sustituye perfectamente a ambos comandos mencionados. Este programa posee una interfaz intuitiva y cómoda, parecida a la conocida del navegador web del texto Lynx. Permite también la búsqueda de los textos según las expresiones regulares, así como la definición de los propios colores y atajos. En la versión actual del programa se ha añadido un nuevo algoritmo para detectar los nodos man e info en la documentación, así como la corrección de una serie de pequeños errores. http://freshmeat.net/projects/pinfo/
Figura 2. En la página de Blob Wars se pueden encontrar otros juegos muy interesantes
te baja de la pantalla están los botones: START (inicio de una misión seleccionada), INFO (información sobre la misión), MIAS (índice de los desaparecidos en acción), STATS (estadísticas), OPTIONS (opciones) y QUIT (salida del menú principal). Durante la realización de la misión puede ocurrir que no consigamos salvarlos a todos. Y es que a veces están en sitios inaccesibles. En estos casos, habrá que volver a ellos cuando en las misiones siguientes adquirimos mejor equipamiento (por ejemplo, la mochila de reacción o una escafandra autónoma). Si al final de la misión disponemos de objetos útiles, como las llaves, será posible abandonarlos y posteriormente recogerlos otra vez. La propia misión es un típico juego de destreza. Así pues, nos moveremos con las teclas del cursor, y dispararemos las armas con la tecla izquierda [Ctrl]. Aparte de esto, cuando adquiramos la mochila de reacción (ing. jetpack), podremos activarla con la tecla de espacio. Los niveles respectivos son muy amplios. En ellos, no solamente damos con las escabrosidad del terreno, sino también con agua, lava y hielo. En el agua se puede bucear, pero hay que tener cuidado con la cantidad de oxígeno en los pulmones (el índice Oxygen). Si estamos en el agua demasiado tiempo, esto también perjudicará (rápidamente) la salud (Health). A los perdidos seguramente les vendrá bien un mapa que se encuentra bajo la tecla [Tab]: las flechas que están en el mapa indican las localizaciones orientativas de los objetos y los soldados desaparecidos en
acción. Teniendo en cuenta la amplitud de los niveles (son bastante grandes), alguna vez damos con los puntos de control: habitualmente a la hora de realizar alguna tarea. Durante la realización de las misiones podremos encontrar varios tipos de armas, desde las ametralladoras hasta el láser. Es recomendable conocer la documentación del juego (basta con abrir en el navegador el fichero /usr/share/doc/blobwars/index.html) y verificar qué iconos definen los tipos de armas correspondientes. Esto es importante porque debajo del agua solamente podemos utilizar la pistola, mientras que otros tipos de armas nos serán inútiles. Es la hora de ponerse en camino y encontrar a los compañeros de armas. ¿A lo mejor, por el camino, nos enteraremos qué hacen los agresores en nuestro país? ¿Por qué no lo destruyeron todo? Y, ¿por qué utilizan nuestros soldados contra nosotros? Detrás de todo esto hay un secreto... ¿Será posible explicarlo? En la versión más reciente se introdujo la posibilidad de guardar los parámetros del “nivel de la sangre” del juego. También se añadieron los límites de tiempo en el nivel más alto de dificultad, se mejoraron los gráficos y el efecto antyaliasing en algunas escenas intercaladas, así como otras modificaciones menos significantes. Se modificó también la localización del directorio temporal: ahora es uno de los subdirectorios en el directorio del usuario. http://freshmeat.net/projects/blobwars/
GQview 1.4.5 El navegador más popular de ficheros gráficos ya tiene la siguiente versión estable. Sobre todo, se ha centrado en la corrección de los errores que aparecieron en la edición anterior. Se ha corregido, entre otros, el problema con el manejo del teclado durante la visualización de la lista adicional de ficheros, así como el problema con la visualización de las decoraciones de las ventanas en el modo de pantalla entera (en el caso de utilizar los gestores de ventanas más viejos). La tecla [R] permite la actualización de la pantalla en el modo de pantalla entera. http://freshmeat.net/projects/gqview/ Kwavencoder 2.2 Este programa es una herramienta pequeña que permite la conversión de los ficheros de música en los formatos Ogg Vorbis, MP3, FLAC y WAV. Su ventaja (para los usuarios de KDE) es la buena integración con Konqueror: el comando de conversión lo encontraremos en el menú bajo el botón derecho del ratón. En la nueva versión se ha icluido, entre otras cosas, la posibilidad de la consulta recursiva de los directorios. http://freshmeat.net/projects/kwavencoder/ Avidemux 2.0.30 Si grabamos con una cámara la película de nuestra excursión y queremos enseñársela a los compañeros de la manera más bonita, podemos ayudarnos de Avidemux. Este programa permite, no sólo leer los ficheros de vídeo en varios formatos (entre otros, AVI y MPEG), sino también editarlos, ya que podemos recortar los fragmentos seleccionados de la película, reunirlos y convertirlos (cambiar el tamaño, cortar, etc.). El resultado de nuestro trabajo lo guardamos, por ejemplo, en los ficheros AVI o MPEG 1/2. La nueva versión presenta muchas mejoras, entre otras, en el servicio del formato Ogm y de las firmas. http://freshmeat.net/projects/avidemux/
www.lpmagazine.org
39
software aktualności
linuxfresh
Komics
– gestor de las tiras cómicas Piotr Machej
P
oca gente hay que no conozca las tiras cómicas tan populares en los periódicos. Estas historietas nos divierten desde hace muchos años y algunas tienen verdaderos aficionados. Entonces, no es de extrañar que junto a la popularidad creciente de Internet, la mayoría de las tiras cómicas estén también allí. Uno de los programas que nos libera de la necesidad de navegar todos los días entre docenas de páginas con tiras es Komics, destinado para KDE. Este programa permite, no sólo ver las partes actuales de las historietas en cuestión sino también guardarlas en el disco. Es fácil de manejar y al mismo tiempo tiene muchas opciones interesantes de configuración. Después de descargar el programa desde el sitio web, pasamos a su instalación. Empezamos por descomprimir el archivo tar xjvf komics-1.4.tar.bz2. Después de entrar en el directorio creado (cd komics), vale la pena estudiar los ficheros README
e INSTALL. Si no tenemos exigencias especiales, será suficiente ejecutar los tres comandos estándar: ./configure --prefix=`kde-config --prefix` , make y (después de obtener los derechos del usuario root con el comando su) make install. Para el funcionamiento correcto del programa se necesitan dos módulos Perl: LWP (libwwwperl) y HTML::TokeParser. Si no los tenemos, habrá que instalarlos (por ejemplo, con ayuda de Webmin o con el comando: perl -MCPAN -e 'install "LWP"' y perl -MCPAN -e 'install "HTML:: TokeParser"'). Ahora podemos indicar el panel con el ratón y, desde el menú disponible bajo el botón derecho del ratón, seleccionar la opción Add–>Applet–>Komics. Obtendremos el mismo efecto con el comando dcop --all-sessions
--user
$USER
kicker
Panel addApplet /usr/share/apps/kicker/
(suponiendo que KDE esté instalado en el directorio /usr/ ). applets/komics.desktop
Figura 1. Las tiras preferidas pueden ocupar todo el escritorio; y éstas son solamente algunas de ellas
40
Linux+ 1/2005
O bien, podemos simplemente ejecutar el comando komics &, gracias al que Komics no funcionará como un applet, sino que se instalará en la bandeja de sistema (System Tray). Desde este momento basta con indicar el icono Komics (una interrogación en el bocadillo) y activar el menú oculto bajo el botón derecho del ratón. Veremos entonces el índice de las tiras cómicas disponibles. Al seleccionar una de ellos, la tira en cuestión se descargará de Internet, y luego se visualizará en la pantalla. Si no tenemos el navegador predefinido, puede aparecer la petición de escoger el programa que servirá para abrir la imagen. Durante el proceso de descarga del fichero, el icono del programa se convierte en el icono del reloj; cuando hagamos un clic en él, la descarga se interrumpirá. Cuánto mayor sea el número de tiras para visualizar, el hecho de indicar cada una de ellas a mano puede resultar agobiante y, por ello, el programa tiene el objetivo de facilitar su destreza. Por suerte, podemos determinar las horas de leer las tiras, y cuando llegue la hora establecida, el icono del programa se convertirá en el signo de exclamación. Si apretamos el icono en ese momento, se copiarán y visualizarán todas las tiras previstas para esa hora. Por defecto, todas las tiras se parametrizan a las 8 hrs, sin embargo, cabe la posibilidad de cambiarlo. Si sólo miramos las historietas, la hora de su lectura no tiene importancia, a no ser que esto tenga lugar entre las puestas al día respectivas. En cambio, si las guardamos en el disco y queremos tener los nombres que corresponden a las fechas de publicación, hay que cuidar que la tira se descargue después de su actualización en la página web. La configuración se hace en Configure –>Komics. Está opción está disponible en el menú del applet (si hemos puesto Komics en la bandeja de sistema) en el índice
FRESH
Noticias
DrQueue 0.50.0 Los dise;adores gráficos que emplean muchos ordenadores para la renderización de los proyectos mayores seguramente apreciarán el programa DrQueue. Éste ayuda en la gestión de las tareas en una granja de renderización. El programa no sólo funciona bajo Linux sino también bajo FreeBSD, Mac OS X y IRIX. Por defecto, soporta programas tales como Maya, Blender, Bmrt o Pixie, pero gracias a la posibilidad de usar los scripts puede también tratar otras operaciones de renderización o cálculos. Las últimas versiones se concentran prácticamente sólo en la corrección de los errores. http://freshmeat.net/projects/drqueue/
Figura 2. El autor de la página del programa advierte sobre los derechos de autor y nos pide apoyar a los autores de las tiras cómicas
de las tiras. Es posible escoger entre dos pestañas: General y Strips Configuration. En la primera, determinamos las horas de regeneración (Refresh time) en los minutos. Este es el tiempo con el que el programa verifica si ocurrió uno de los criterios temporales fijados por nosotros. Aquí también tenemos dos opciones: Check if available on start (verifica los criterios al iniciar) y Auto download when ready (la descarga automática de la tira). Por supuesto, si no nos gusta que de repente aparezcan en la pantalla algunas ventanas a la vez, es mejor no utilizar esta opción. En vez de esto, en el campo Play sound when ready podemos indicar la ruta al fichero de sonido que se reproducirá cuando las tiras escogidas por nosotros estén listas para descargar. Seguramente esto atraerá nuestra atención al icono del signo de exclamación. La segunda pestaña nos permite el control más detallado de las historietas descargadas. A la izquierda tenemos el índice de las historietas con los botones Add strip y Remove strip. Cuando escojamos una tira concreta, su configuración aparecerá a la derecha. Elegimos, por ejemplo, la historieta Ctrl+Alt+Del. El nombre de la tira aparece en el campo Strip name. El campo más importante es Strip URL que define la dirección web de la tira. Puesto que en la mayoría de los casos la dirección cambia casi cada día, en este campo podemos escribir el nombre del script Perl que, como resultado, nos devuelve el camino detallado URL de la tira cómica.
Los scripts de ejemplo se suministran junto con el programa en el directorio /usr/share/ apps/komics/. Basándose en ellos, podemos crear nuestros propios scripts y ponerlos en el directorio ~/.kde/share/apps/komics/. En el campo Execute introducimos la llamada de los navegadores de las imágenes; si no lo hacemos, se iniciará el navegador asignado a un tipo de fichero determinado. El campo Save as permite añadir el directorio donde deben guardarse las imágenes. Si queremos crear una colección, vale la pena utilizar en el nombre del fichero indicaciones de la fecha. Por ejemplo, /home/gerard/tiras/ CtrlAltDel/cad_%a%m%d.jpg generará los nombres usando el número del año, el mes y el día. El campo Referrer se suele dejar vacío, solamente algunas páginas exigen entrar en ellas desde otra dirección web concreta (en este caso hay que introducir la dirección en este campo). Estableciendo el valor de la opción Activated como false borramos un título determinado del índice de las tiras que no descargará automáticamente. En el último campo, determinamos el horario de la descarga de las tiras. La estrella significa libre elección. La opción Inverse permite invertir el funcionamiento de un criterio dado gracias al cual podemos descargar una tira dada todos los días exepto el martes. En la nueva versión se corrigieron muchos errores. Y, aparte de esto, se añadió la opción activated, con la que las tiras pueden ser eliminadas de la lista para la descarga sin borrar su configuración. http://freshmeat.net/projects/komics/
Pam_sotp 0.2.0 Pam_sotp es el módulo PAM que pone a nuestra disposición el servicio de autentificación a partir de las contraseñas únicas. En la versión más reciente se han agregado algunas correcciones y algunas nuevas funciones. Entre ellas, vale la pena destacar el soporte para las contraseñas activas durante un tiempo determinado, así como nuevas opciones: fail_delay ipw_lifespan. Aparte de esto, la documentación se ha convertido al formato HTML y se ha añadido el servicio básico de inicio de las sesiones (a través de syslog). http://freshmeat.net/projects/pam_sotp/ Tux Paint 0.9.14 Tux Paint es un programa dirigido a niños pequeños. Permite dibujar con diferentes pinceles, crear las líneas y formas, y también escribir texto. Con él, es también posible poner imágenes-sellos en un dibujo. Gracias a los pequeños requerimientos y a una interfaz sencilla y amistosa lo pueden utilizar tanto para distraerse como de ayuda en la educción. También es importante el hecho de que el programa se ha traducido en varios idiomas. http://freshmeat.net/projects/tuxpaint/ http://freshmeat.net/projects/tuxpaintstamps/ TorrentFlux 1.4 Se ha publicado la nueva versión del programa TorrentFlux. Una de las mayores modificaciones es el soporte para el cliente BitTornado (se sigue soportando BitTorrent) y gracias a su uso tenemos acceso al mayor número de estadísticas. Se ha corregido la navegación en los directorios. En la parte inferior de las páginas vemos del la velocidad de la descarga y envío de datos; además, el usuario puede definir el nivel límite de envío. Se han introducido también muchos otros cambios, entre otros, en el soporte de RSS. http://freshmeat.net/projects/torrentflux/
www.lpmagazine.org
41
software aktualności
linuxfresh
Coccinella
– cliente de mensajería Piotr Machej
E
ntre los clientes de mensajería que utilizan el protocolo Jabber, vale la pena fijarse en el programa Coccinella. Su ventaja principal e indiscutible es la posibilidad de compartir la pizarra blanca (whiteboard) entre los participantes de las conversaciones. Se trata de un espacio donde poder escribir, dibujar o poner los ficheros de manera que otra persona lo vea todo y, a la vez, pueda dibujar con nosotros. Como vemos, una herramienta así resulta muy útil a la hora de planear en grupo las tareas, el trabajo sobre un proyecto o el diseño del mapa de cómo llegar a mi casa. Aparte de esto, Coccinella es un típico cliente de Jabber que trabaja en el entorno Linux así como en Windows. Hasta ahora se ha traducido a varios idiomas (entre otros, alemán y francés). Se puede contar, además, que junto al interés creciente de los clientes, aparecerán también varias versiones lingüísticas. La instalación de Coccinella no ocasiona ningún problema. El autor provee las versiones binarias prácticamente para todos los sistemas (más precisamente, para Linux, Windows y Mac OS X). Por supuesto, si queremos, también podemos descargar los fuentes: el programa está escrito en Tcl/Tk. Después de descargar el fichero Coccinella-0.95.1Linux-x86.tar.gz de la página del programa (http://hem. fyristorg.com/matben/ ) y descomprimirlo (tar xzvf Coccinella-0.95.1Linux-x86. tar.gz), entramos en el directorio creado y ejecutamos el programa con el comando ./Coccinella-0.95.1.bin. Al ejecutarlo por primera vez, nos dará la bienvenida el asistente de instalación (Setup Assistant), que nos guiará por la configuración inicial. En primer lugar, empezamos seleccionando el idioma en el que el programa se comunicará con nosotros. Después, debemos informar de la dirección del
42
Linux+ 1/2005
Figura 1. Incluso el ordenador de la película War Games entendió que el juego de las tres en raya no se puede ganar
servidor Jabber que queremos utilizar. Si todavía no disponemos de una cuenta, podemos apretar el botón Get gracias al cual se visualizarán los servidores accesibles. Una vez seleccionado el servidor adecuado (éstos se diferencian no sólo por su estabilidad sino también por las funciones ofrecidas), lo señalamos y apretamos Set. Podemos elegir, por ejemplo, el servidor jabber.org. El siguiente paso es dar el nombre del usuario y la contraseña (la contraseña la repetiremos dos veces para evitar errores). Si ya poseemos la cuenta en el servidor, damos también sus datos. Al registrarnos por primera vez, el nombre del usuario que elijamos no puede existir ya en el servidor (si existe, lo sabremos al intentar registrarnos). En la ventana siguiente, los nuevos usuarios deben pulsar el botón Register Now. Los datos que hemos dado se visualizarán para que los verifiquemos (tenemos
también la posibilidad de establecer una conexión cifrada). Si los datos son correctos, apretamos el botón New. En caso de error (por ejemplo, el nombre del usuario ya existe) hay que intentar repetir la misma operación con los datos corregidos. El registro correcto debe terminar con el mensaje You are now registered and automatically logged on as, después recibiremos el primer mensaje del servidor. A continuación, ya podemos terminar con el botón Finish. Cuando reiniciemos, ya no aparecerá más el asistente. Para conectarse, basta con apretar el botón Connect y elegir el perfil adecuado. Después de añadir un nuevo contacto (Jabber–>Add New User), indicamos al usuario y elegimos Whiteboard desde el menú que aparece tras apretar el botón derecho del ratón. Por supuesto, esto tiene sentido solamente cuando hay otro usuario de Coccinella que, además,
FRESH
debe estar activo. Aparecerá, entonces, la segunda ventana con la pizarra y la barra de herramientas. Con ellas, podemos dibujar rectángulos, círculos, líneas, flechas, así como escribir y llenar las formas con los colores. Cuando dibujemos una forma o cuando escribamos un texto, el segundo usuario podrá ver en la pizarra los cambios introducidos por nosotros. Además, él mismo podrá participar dibujando o escribiendo. De esta forma, es posible jugar a las tres en raya con un amigo. Por supuesto, no debemos limitarnos a dibujar o a escribir en la pizarra. Si queremos mostrar un fichero de texto o HTML a algún amigo, simplemente basta apretar el botón Import e indicar el fichero adecuado (hay que cuidar que en el campo Files of type se dé un tipo idóneo). Éste aparecerá en la pizarra en forma de icono para que nuestro compañero pueda hacer clic en él para visualizarlo. Es posible eliminar cada uno de los objetos puestos en la pizarra con ayuda de la goma. Por supuesto, esta herramienta sería inútil si no existiese la posibilidad de guardar el estado. Al elegir File–>Save Canvas guardamos el estado actual de la pizarra en el fichero, mientras que la opción File–>Open Canvas nos permitirá visualizar en la pizarra el estado guardado antes. Esto resulta cómodo, ya que nos permite trabajar de manera independiente sobre un proyecto (File–>New Whiteboard en la ventana principal de Coccinella),
y luego mostrar el resultado al compañero. Cuando ya estemos satisfechos con nuestra pizarra, vale la pena volver a la página de Coccinella y echar un vistazo a la sección Extensions. Allí encontraremos algunas extensiones que aumentarán las posibilidades de la pizarra, entre otras, el complemento Img, que permite importar los ficheros gráficos hacia la pizarra (de modo que sean visibles como una imagen o como un icono), o el complemento Snack que permite reproducir los ficheros en formatos como MP3 o WAV. Después de instalarlos, podremos importar este tipo de ficheros hacia la pizarra igual que lo hacíamos antes con los ficheros de texto y HTML. En la versión más reciente de Coccinella se han introducido muchas modificaciones y mejoras. El complemento más importante es el entorno para la ejecución de los scripts gracias al cual es posible poner en la pizarra los objetos más interesantes. Los scripts pueden escribirse en lenguaje IncrTcl, la versión de Tcl orientada a los objetos. Como primer ejemplo del empleo de estos scripts se ha adjuntado a Coccinella el juego de naipes y dado. También podemos conocerlos la opción Library–>Games eligiendo en la pizarra. http://freshmeat.net/projects/coccinella/
Noticias
SportsTracker 0.6.2 Gracias a la aplicación SportsTracker, podemos registrar nuestras actividades deportivas. Así pues, no debemos limitarnos a una sola disciplina, podemos crear una categoría para cada tipo de deporte que hagamos, como jogging o bicicleta. La principal ventaja del programa es la posibilidad de consultar fácilmente los datos sobre los ejercicios y también la de crear las estadísticas para periodos de tiempo determinados y varias disciplinas del deporte. Los usuarios de los monitores de pulso pueden utilizar los datos registrados integrándolos con la información sobre los ejercicios. Puesto que la aplicación se escribió en el lenguaje C#, requiere para su funcionamiento la instalación de Mono y Gtk#. http://freshmeat.net/projects/ sportstracker/ Scalar 1.0 Si nos gusta hacer puzzles, entonces nos gustará Scalar. El juego consiste en la reproducción de la imagen original asociando los fragmentos mezclados y sustituyendo unos por otros. El número de los cambios es limitado. El juego termina en el momento de completar tres imágenes. Entonces, se calculan los puntos por los intercambios no utilizados y otros premios. Una gran ventaja de este juego es la posibilidad de añadir nuestras propias imágenes o fotos. En la nueva versión se ha introducido el sistema de scoring que muestra el número de puntos por cada imagen y el número de cambios posible. Se ha añadido también la lista de los mejores resultados y muchas imágenes nuevas. http://freshmeat.net/projects/scalar/ Aiee! 0.2 El usuario de juegos de aventura sabe que en este tipo de juego lo más importante es el guión. Gracias a Aiee! tenemos la oportunidad de probarnos precisamente en la creación de nuestros propios guiones. Aiee! es un motor sencillo y fácil de usar, que permite jugar al juego descrito en el fichero XML. Sólo de nosotros depende que seamos capaces de igualar a los creadores de estos juegos, como Leisure Suit Larry o Police Quest. En la nueva versión Aiee! se ha incluido el cliente gráfico, los actores, el equipamiento y la posibilidad de luchar. Durante las aventuras es posible visualizar las imágenes y reproducir el sonido. Por supuesto, no podemos olvidarnos de poner a disposición de otros los guiones de las más interesantes aventuras. http://freshmeat.net/projects/aiee/
Figura 2. En la página web de Coccinella conoceremos algunos ejemplos acerca de su uso
www.lpmagazine.org
43
software aktualności
linuxfresh
Gubed
– depurador de los scripts en PHP Piotr Machej
S
e dice que el lenguaje PHP es muy sencillo. En efecto, es fácil aprender sus bases, pero muchas cosas pueden hacerse de varias maneras. Durante la programación puede ocurrir un error, sobre todo, cuando trabajamos sobre un proyecto mayor. En este caso, recurrimos a los depuradores. Uno de ellos es Gubed, que está destinado a analizar los programas escritos en PHP. ¿Para qué sirve un depurador (debugger)? Es seguro que no para buscar el paréntesis que falta, ya que para esto es suficiente un buen editor con los colores de la sintaxis. Si nuestro programa no funciona tal como debiera, ejecutando bucles infinitos o, al contrario, no ejecuta algún bucle, es el momento de emplear un depurador. Con su ayuda, podemos estudiar el programa paso a paso, observando los valores de las variables y así, al final quizá advertiremos que, en la condición, en lugar de poner = = pusimos =. Por supuesto, el error puede ser totalmente diferente y no necesariamente tan banal. Sin embargo, siempre tendremos mayores posibilidades de encontrarlo observando el código en su funcionamiento. En el caso del depurador Gubed seguramente nos alegrará el hecho de que no sea necesario ningún cambio en el software del servidor, ni tampoco en el código verificado. Además, podemos ejecutar Gubed en otro servidor que el script probado. El script se puede ejecutar, por ejemplo, en un servidor Linux, y el mismo Gubed puede funcionar en nuestro ordenador personal con Windows (Gubed funciona tanto en el entorno Linux como en el entorno Windows). La instalación puede resultar problemática. Por eso, teniendo en cuenta razones de seguridad, es mejor no permitir el acceso a Gubed a personas
44
Linux+ 1/2005
Figura 1. Gubed permite estudiar profundamente el funcionamiento del script
no autorizadas. Si otros usuarios tienen acceso (tanto remoto como local) a nuestro ordenador, necesariamente debemos leer la sección Security en el fichero serversetup.txt. Pero si no tenemos miedo de los riesgos, o bien, podemos arreglárnoslas con ellos, procederemos a la instalación sin más. Desde la página descargamos el fichero Gubed0.1.2.tar.gz, y luego lo descomprimimos. En el directorio creado, primero nos interesará el subdirectorio Clients/wxGubed/. Entramos en él y damos los comandos: ./autogen.sh, ./configure, make. Si todo transcurre sin problemas, (en el caso de Aurox es necesario el paquete wxGTKdevel), en el directorio src/ buscamos el fichero gbdwxGubed. Es precisamente nuestro cliente el que vamos a utilizar. A continuación, es hora de poner algunos ficheros en el directorio principal de nuestro servidor web. Para esto nos harán falta los derechos del administrador. Estando en el directorio Gubed0.1.2/,
ejecutamos el comando cp -r Gubed/ /var/www/html/ (el directorio de destino puede ser diferente independientemente de la configuración de nuestro servidor web). Una vez hecho esto, podemos ejecutar nuestro cliente con el comando /gbdwxGubed. Aparte de esto, hay que iniciar el navegador web y entrar en el directorio donde pusimos los scripts Gubed (por ejemplo, http://localhost/ Gubed/ ). Así pues, este será nuestro modo de trabajo: con la ayuda del navegador determinaremos qué scripts deben ser probados (y observaremos los resultados de su actividad), mientras que con la ayuda del cliente seguiremos el funcionamiento del programa. Al utilizar Gubed por primera vez, vale la pena iniciar los tests. Esto permitirá conocer las posibilidades del programa. Con este fin, en la página visualizada, elegiremos el enlace en la sección Gubed tests. Si luego decidimos hacer
FRESH
Noticias
PostgreSQL AutoDoc 1.24 Este programa permite guardar en el fichero XML las informaciones sobre la base PostgreSQL que luego van a ser utilizadas para crear el diagrama UML. Un diagrama así (con las relaciones entre las tablas e informaciones descriptivas) se crea recuperando el fichero XML en el programa Dia. Aparte de los ficheros XML, podemos guardar las informaciones sobre la base en los formatos HTML, GraphViz .dot, y también SGML (Docbook 4.1). El programa coopera con cada base apoyada en PostgreSQL 7.x. En la versión más reciente se han introducido las mejoras de algunos errores. http://freshmeat.net/projects/postgresql_ autodoc/
Figura 2. Gubed se puede integrar con el programa sQuanta
pruebas de nuestros propios scripts, utilizaremos el enlace specify script to debug (o directamente entrando en la página http:// localhost/Gubed/StartSession.php). Aquí tenemos a nuestra disposición cuatro grupos de tests. En primer lugar leeremos acerca de cada uno de ellos. El segundo enlace nos permite ejecutar el script sin el depurador, gracias a lo cual podemos observar su funcionamiento y el resultado. El tercer enlace sirve para ejecutar el script bajo el control de Gubed. Después de su llamada hay que pasar al cliente y, entonces, podemos decidir si queremos observar la ejecución paso a paso (los botones Step), o preferimos permitir al script ejecutarse con el botón Run. En este segundo caso, siempre podemos apretar el botón Pause. Vale la pena leer todas las introducciones a los tests que nos instruyen entre otras cosas, sobre los parámetros acerca de la reacción a los errores que aparecen. Ejecutando los tests sucesivos aprendemos a utilizar los puntos de control (breakpoint), a observar las llamadas de las funciones (allí no servirán los botones Step Over, Step Into y Step Out), a configurar Gubed de manera que preste atención a los errores concretos, y tendremos también la oportunidad de seguir los valores de las variables, así como de parametrizar los puntos de control condicionales. El análisis de nuestro propio script se parece mucho a lo que hici-
mos durante los tests. Es necesario poner el script debajo del árbol principal del servidor web (es decir, en nuestro caso en el directorio /var/www/ html/ ). Luego, damos la ruta hacia el script en la página http://localhost /Gubed/StartSession.php. A continuación, pulsamos el botón Debug y pasamos a la ventana del cliente Gubed. Allí, o bien podemos analizarlo paso a paso a nuestro antojo, o bien parametrizar los puntos de control en los sitios sospechosos y permitir su realización. En la versión más reciente se encuentran las funciones Step over (realiza la función pero no sigue su actividad), Step out (sigue la realización de la función paso a paso) y Backtrace. Además, se ha corregido la apertura de los scripts del lado del cliente y se ha añadido la lista de historiales para StartSession. http://freshmeat.net/projects/gubed/
Figura 3. Gubed, analizando un script PHP
MPFC 1.3.3 MPFC es un reproductor de música que funciona en modo de texto (a partir de la librería Curses). Gracias al empleo de la lista de reproducción es más cómodo en el uso que los programas de tipo mpg321. El programa soporta varios formatos de ficheros (para lo que utiliza los plugins). En la nueva versión se ha corregido el sistema de configuración y se han introducido los puntos reparse de las teclas. http://freshmeat.net/projects/mpfc/ Exobius 0 0.3 Cuando nos entretenemos en los juegos con los efectos gráficos tridimensionales, a veces olvidamos los tiroteos sencillos con los que empezó todo. Un intento de crear un juego así, bidimensional, es precisamente Exobius 0. El juego contiene por el momento 13 niveles repletos de armas y enemigos. A pesar de la fase inicial de desarrollo, el juego ya es completamente funcional: podemos pasar por él desde el principio hasta el final. El mayor defecto son los gráficos inacabados que, sin embargo, deberá mejorarse en las versiones posteriores. Vale la pena interesarse por este título e incluso apoyar al autor en sus esfuerzos. http://freshmeat.net/projects/exobius0/ Thunder&Lightning 041013 Thunder&Lightning es un simulador de vuelo futurista. Nos permite llevar el timón y luchar, tanto contra otros aviones, como contra tanques. Los efectos gráficos tridimensionales y bonitos seguramente facilitarán vivir el juego. El programa sigue todavía en fase de desarrollo: hace muy poco se ha puesto a disposición del público. La versión más reciente funciona también bajo Windows. Actualmente, se puede volar con uno de los dos aviones disponibles (Thunder y Lightning) pero en el futuro el autor desea poner a nuestra disposición más tipos de máquinas. http://freshmeat.net/projects/tnl/
www.lpmagazine.org
45
software aktualności
linuxfresh
Cssed
– editor de hojas de estilo CSS Piotr Machej
C
ada vez más autores de páginas web aprovechan en su trabajo hojas de estilo en cascada (CSS – Cascading Style Sheets). Esto es digno de admirar porque gracias a ello no sólo ahorran mucho trabajo sino que, al mismo tiempo, van con el espíritu del tiempo. Y si únicamente hacen un poco de esfuerzo, podrán crear una página fácil de visualizar en cualquier navegador, y además que sea también accesible para personas discapacitadas (los que utilizan las líneas braile o el sintetizador del habla). Cssed es un programa que permite la creación de hojas de estilo. Es capaz de realizar también la sintaxis de otros archivos, pero sigue siendo el editor de los ficheros CSS. Entre sus ventajas, vale la pena señalar el realce y el autocomplemento. El programa también está equipado con varios creadores que ayudan durante la creación de los estilos más populares (por ejemplo, la posición de los márgenes y el tipo de
fuente). Por supuesto, Cssed es capaz de verificar la conformidad del código escrito. Tampoco se puede negar que la transparencia de la interfaz y la facilidad de su manejo resulta cómodo para el usuario. El programa puede instalarse tanto desde los paquetes (están disponibles los paquetes RPM y DEB), como desde los fuentes. La primera posibilidad es, por supuesto, la más cómoda. Después de instalar el programa podemos ejecutarlo con el comando cssed. Tras la ejecución, cuando empecemos el trabajo con nuevos documentos, se recomienda parametrizar inmediatamente la fuente apropiada. Lo hacemos eligiendo del menú Document la posición Change font. Asimismo, es aconsejable seleccionar el tipo de fichero con el que vamos a trabajar. Para ello, indicamos Document–>Highlighting–>CSS. Por supuesto, si tenemos intención de crear otro documento (por ejemplo, la página web),
Figura 1. No es de extrañar que la hoja de estilos utilizada en la página web de Cssed no tenga ningún error
46
Linux+ 1/2005
en lugar de CSS, escogeremos HTML/ PHP u otro valor adecuado. Si queremos utilizar la opción de autocomplemento, marcaremos la opción Document–>Enable autocompletion (esto tiene sentido sólo en el caso de CSS). Resulta muy útil también la opción Document–>Enable folding, sobre todo, si trabajamos con un fichero más largo. Ésta nos permite plegar el contenido de las clases respectivas de manera que solamente sea visible la cabecera. Es importante advertir que las opciones parametrizadas en el menú Document son características para cada documento por separado, de modo que podemos utilizar en cada uno de ellos otro tipo de letra y editar otro tipo de fichero. Los valores de nuestro fichero de estilos los podemos parametrizar de varias maneras. El modo más básico es la introducción manual de todos los valores. Para esto, sin embargo, no necesitamos Cssed. Como ya sabemos, podemos ayudarnos del autocomplemento. Lo importante es que no sólo nos permite ofrecer los nombres de los atributos, sino también sus valores. Esto indica tanto los valores posibles como el uso del creador (por ejemplo, la gama de colores en el caso del color de las fuentes y marcos). El creador se puede ejecutar de manera manual escogiendo el icono correspondiente de la barra que está justo encima del documento o desde el menú CSS. La última posibilidad de insertar en el documento el atributo con el valor es el empleo del árbol de los atributos que está en la pestaña CSS, a la derecha del documento. Durante la edición, resulta muy útil una función muy cómoda, que consiste en indicar el grupo de los atributos que queremos modificar y luego escoger la opción Tools–>Scan selector. Los atributos seleccionados se hallan en la ventana derecha superior, donde de fácil manera, podremos modificar sus valores.
FRESH
Noticias
Crimson Fields 0.4.5 Ha aparecido una nueva versión de la adaptación conocida del juego clásico Battle Isle. En ésta, se ha añadido la misión de la campaña Seed of Resistance, se ha corregido el soporte de los eventos y algunos errores en CoMET. También se han reformado las localizaciones. Del mismo modo, se ha visto mejorada también la inteligencia de los enemigos del ordenador. http://freshmeat.net/projects/crimson/
Figura 2. Aparte de Cssed, el autor también ofrece varias herramientas de ayuda durante la edición de las hojas de estilo
Otra función muy útil son los marcadores. Durante la edición de grandes ficheros son realmente inapreciables. Si durante la edición nos movemos a menudo entre líneas concretas corrigiendo los valores, basta hacer clic en el margen izquierdo de cada una de estas líneas para que aparezcan allí marcadores blancos. Ahora, podemos movernos entre ellos utilizando las flechas Previous Bookmark y Next Bookmark, visibles en la barra de herramientas. En la parte inferior de la pantalla tenemos dos pestañas: Program output y Scratch Pad / Static Pad. El primero contiene los resultados devueltos por el programa, por ejemplo, los mensajes de error. Es muy útil durante los tests de conformidad del código que realizamos seleccionado del menú la posición Tools–> Validate only. Se aconseja también tener activada la numeración de las líneas (Document–>View line numbers), puesto que gracias a esto es más fácil localizar el error en un fichero más grande. La segunda pestaña tiene dos ventanas que podemos utilizar para los apuntes. Además, sirven también como depósito: el texto marcado se arrastra desde el documento y luego se pega al otro documento (arrastrándolo de nuevo). Si Cssed no nos gusta, podemos cambiar sus parámetros predefinidos. Cada parametrización de las opciones en el menú Document puede resultar muy agotadora. En vez de hacer esto, elegimos del menú Edit–>Preferences. Aquí, en la pestaña
Document settings, definimos los valores por defecto para cada documento. También es aconsejable marcar la opción View line numbers y Enable autocompletion. En la pestaña Font precisamos la fuente que nos conviene y la validamos con el botón Apply. Nos queda todavía la pestaña Highlighting. Aquí definimos con precisión qué colores deben ser utilizados para resaltar en los casos concretos. Hay que decir que Cssed es muy interesante. Como hemos visto, se trata de un editor CSS muy agradable, y el autor sigue trabajando para ampliar más sus posibilidades. Entre los planes más interesantes destacan la posibilidad de consultar las páginas web con el estilo puesto en el navegador externo y (¡atención!) la posibilidad de creación de la hoja de estilo a partir del documento HTML, esto es, convertir los antiguos marcadores HTML (por ejemplo, <font>) en sus equivalentes de las hojas de estilo en cascada. En la versión más reciente se ha mejorado el soporte para varias codificaciones de caracteres. También se han añadido los esquemas de realce para otros idiomas, tales como HTML, PHP, scripts de shell, Python y otros. Asimismo, se ha creado una interfaz con plugins y se han puesto a disposición algunos plugins como: el panel de consulta de los archivos, la ventana del terminal VTE, y también el panel para buscar texto en los ficheros.
CbrPager 0.9.4 CbrPager es uno de los programas que permiten consultar los archivos CBR en los que se difunden cada vez más con más frecuencia los comics y los mangas. Es verdad que no es un programa como CDisplay, conocido de Windows, pero el autor sigue añadiendo nuevas funciones. El programa permite consultar los ficheros JPG, GIF y PNG. Aparte de las funciones básicas de reducir y aumentar la vista, posee también varias opciones interesantes de configuración (por ejemplo, podemos determinar si al pasar a la página siguiente, debe visualizarse la parte inferior o superior, o precisamente ésta que estamos precisamente viendo). La versión más reciente permite establecer si el panel de navegación debe ser horizontal o vertical. http://freshmeat.net/projects/cbrpager/ Player vs. Player Gaming Network 1.6.6 PvPGN es el software gratuito para emular el servidor Battle.net. Gracias a él, se puede poner en marcha el servidor, desde la red local, y jugar a juegos tales como Diablo II o Starcraft. Están disponibles las estadísticas de los juegos y la posibilidad de organizar torneos, así como las escalas de puntos. En la versión más reciente se han corregido una serie de errores detectados y se han añadido nuevas opciones, como por ejemplo, la que permite limitar el acceso de los clientes seleccionados. http://freshmeat.net/projects/pvpgn/ http://freshmeat.net/projects/htmlformsge nerationandvalidation/ Getmail 4.2.2 Ha aparecido la nueva versión del programa Getmail que en conformidad con las intenciones del autor debe ser una alternativa sencilla y segura para el popular programa Fetchmail. Los cambios, sobre todo, están vinculados con la mejora del soporte de los ficheros dañados oldmail, así como los cambios del identificador eficaz y verdadero del usuario y del grupo del proceso hijo responsable de la recepción del correo. http://freshmeat.net/projects/getmail/
http://freshmeat.net/projects/cssed/
www.lpmagazine.org
47
software aktualności
linuxfresh
Vuurmuur
– configurador de cortafuegos Piotr Machej
T
odo aquel que alguna vez haya creado un cortafuegos usando iptables o ipchains, seguramente se habrá dado cuenta de que en algún momento el número de las reglas empieza a agobiar. Por eso, muchos usuarios siguen buscando los métodos más fáciles para la creación de las reglas y para la gestión de los cortafuegos. En este sentido, una de las ideas más interesantes es el programa Vuurmuur. En principio, el programa tiene que convertir las reglas comprensibles para el hombre (por ejemplo, Bloquear las conexiones FTP desde el ordenador de Juan con el servidor en Internet) en reglas comprensibles para el ordenador. Hay que reconocer que se las apaña bastante bien. Además, permite consultar los logs de una manera más clara. La configuración inicial exige un poco de esfuerzo pero resulta más sencilla que copiar la documentación IPtables. Seguramente vale la pena conocerlo mejor. Después de descargar el archivo desde la página web, debemos descomprimirlo. Hay que tener cuidado, ya que el archivo no se crea un directorio complementario: los ficheros están en el directorio actual. Una vez que obtenemos los derechos del administrador (con el comando su – o abriendo la sesión con la cuenta del usuario root), pasamos al directorio donde descomprimimos el archivo. Aquí no basta con el comando su (sin guión), puesto que en este caso más a menudo no tenemos acceso al comando iptables sin dar la ruta completa: un acceso así nos hace falta durante la instalación. En la versión más reciente disponemos del script de instalación que ejecuta la mayoría de las operaciones en lugar de realizarlas nosotros. Lo ejecutamos con el comando /install.sh, y luego contestamos a algunas preguntas acerca de los nombres de los directorios. En la mayoría de los casos, aceptamos los parámetros predefinidos (basta apretar
48
Linux+ 1/2005
Figura 1. Con la ayuda de Vuurmuur podemos también consultar las conexiones activas
la tecla [Enter]). Ahora, debemos esperar un momento hasta que el programa se compile y se instale. Para dar por terminada la configuración, es necesario iniciar el programa vuurmuur_conf. Lo mejor es empezar por los parámetros generales: Vuurmuur Config–>General. Nos aseguramos de que las rutas a los programas ifconfig e iptables sean correctas y verificamos otras rutas. Podemos volver al menú anterior con la tecla [F10]. Es aconsejable verificar y, si necesario, cambiar los valores en otras secciones de configuración (especialmente en Logging). Es la hora de añadir las interfaces. Para ello, salimos del menú principal y elegimos la opción Interfaces. Con la tecla [Insert] añadimos la nueva posición y escribimos el nombre de nuestra interfaz. Este nombre será utilizado solamente en el programa Vuurmuur, y por ello es mejor que sea corto y legible (por ejemplo,
inet para la interfaz que nos conecta con Internet o casa para una red doméstica). En la ventana siguiente escribimos la dirección IP (cuando indiquemos el campo Dynamic, el programa intentará leer la dirección desde el sistema) y el nombre del dispositivo (Device). También podemos añadir un comentario. Además de las interfaces, podemos agregar las zonas (Zones). Por defecto, tenemos definidas cuatro: dmz (zona desmilitarizada), ext (externa: Internet), lan (redes locales) y vpn (zonas locales virtuales). Primero entramos en la zona ext. Aquí vemos el índice de las redes (Networks) que integran esta zona. Por defecto, sólo aparece la red internet, pero podemos añadir otras. Señalamos la red internet y apretamos la tecla [E]. Resulta que no tiene asignada ninguna interfaz. Si antes añadimos una interfaz que nos conectaba con Internet, ahora podemos asignarla aquí. Lo hacemos apretando la tecla [F6],
FRESH
Noticias
HTML Forms generation and validation 2004.10.13 Los autores de las páginas web que trabajan en PHP tarde o temprano tienen que hacer frente a los problemas vinculados con la creación de los formularios y su tratamiento. La clase PHP descrita permite generar los formularios con el soporte del teclado y la verificación de la conformidad de los datos, tanto de la parte del servidor, como del cliente. Su funcionalidad puede extenderse a través de la adición de las clases-plugins. Las plantillas, usando PHP anidado en HTML, o el motor Smarty pueden definir la presentación de los formularios de resultado. La versión más reciente tiene algunas mejoras, entre ellas, se ha corregido el funcionamiento de las clases con la opción register_globals desactivada.
Figura 2. En la página web del proyecto se puede leer una descripción detallada del sistema de zonas, redes, grupos y servicios
luego [Insert] y, posteriormente, indicamos nuestra interfaz. Según las necesidades, podemos también definir otras opciones relativas a la red, luego definimos el valor de la opción Active con Yes. Si añadimos otras redes a otras zonas (por ejemplo, nuestra red metropolitana), tenemos que incluirles las direcciones concretas de los ordenadores (Hosts). Los ordenadores pueden estar también reunidos en los grupos (Groups), por ejemplo, para definir las reglas comunes para todos los servidores de mensajería o para los compañeros que no nos caen bien. Todas estas operaciones tienen como objetivo la descripción detallada de nuestra red, gracias a lo cual podremos crear luego las reglas correspondientes. La configuración previa en cuestión está descrita con detalles en la página web del programa, en la sección User Manual. A continuación, pasamos a añadir las reglas (Rules están en el menú general). Precisamente aquí tenemos la parte más agradable de la tarea. Una vez que hayamos pulsado [Insert] en la mayoría de los campos, utilizamos la tecla de espacio para visualizar todos los valores posibles. De este modo, si queremos bloquearle a un amigo la conexión HTTP con nuestro servidor, definimos sucesivamente: (en el campo Action) Reject (Service) http (From) ordenadorcompañero (To) firewall. En los paréntesis ponemos los nombres de los campos acompañados de los valores correspondientes. En el campo Reject type damos el tipo apropiado de rechazo (por
ejemplo, icmp-port-unreachable) y con esto ya podemos salir del índice de las reglas con la tecla [F10]. En este punto, vale la pena advertir que aquí utilizamos la denominación firewall para el ordenador. Es la denominación específica, ya que define el ordenador donde está instalado el cortafuegos. Todas las reglas con su participación se refieren a las conexiones entrantes y salientes, mientras que otras se refieren a las conexiones transferidas (forwarded). Si ya tenemos todo configurado, ejecutamos el programa apropiado de varias maneras. Podemos elegir entre hacerle un demonio (es la opción más aconsejable), un solo arranque con el fin de cargar las reglas y generar el script de la capa para crearlas. Las opciones correspondientes se hallan después de ejecutar el comando /usr/bin/vuurmuur -h. En el directorio /usr/share/vuurmuur/scripts/ encontramos ejemplos de los scripts de inicio y los scripts responsables de la rotación de los logs. En la versión más reciente se ha añadido: un script de instalación muy cómodo, la función de soporte de la interfaz gráfica, el soporte de interfaces virtuales, los comentarios para las reglas y diferentes mejoras de la interfaz GUI. Aparte de esto, las reglas con el inicio de las sesiones activadas tienen definidos algunos límites, lo cual debe dificultar una parte de ataques de tipo de rechazo del servicio (DoS – Denial of Service). http://freshmeat.net/projects/vuurmuur/
FreeRails 0.2.5 Los aficionados al juego clásico Railroad Tycoon seguramente se alegrarán de la aparición de la nueva versión del juego FreeRails. Es un juego gratuito inspirado en la obra del incomparable Sid Meier. Aunque el juego está en la fase Alpha, en cada versión aparecen cada vez más funciones. Esta vez se ha añadido, entre otras cosas, la opción del horario automático gracias al cual se pueden elegir de manera automática los vagones adecuados en función del tipo de carga en la estación de origen y de demanda en la estación de destino. http://freshmeat.net/projects/freerails/ Childsplay 0.72 Childsplay es un kit de juegos para niños conforme con el lema: aprender jugando y jugar aprendiendo. El programa tiene integrados dos juegos (Memory y la inserción de las letras): el resto de los juegos está disponible en un paquete independiente. Los juegos disponibles están destinados para los niños más pequeños que pueden practicar el reconocimiento de las letras, las operaciones aritméticas básicas, así como el reconocimiento de imágenes y sonidos. En la versión más reciente, se han corregido varios errores y se ha añadido un nuevo juego. Algunos de estos juegos emplean los ficheros de sonido, ahora ya traducidos. http://freshmeat.net/projects/childsplay/ Aviascene 2 Antes de la excursión posiblemente queráis conocer el relieve del terreno. El programa Aviascene nos lo permite, pero por el momento solamente en algunas regiones de los Estados Unidos. Los datos sobre la topografía del terreno se utilizan para la renderización de la imagen. Después, podemos ponernos en camino en algún vehículo, o incluso en avión. Podemos también utilizar las coordenadas GPS para determinar los puntos de control. Si no nos vamos de viaje, siempre podemos volar en avión por encima de un terreno real. http://freshmeat.net/projects/aviascene/
www.lpmagazine.org
49
software aktualności
juegos
FlightGear
– un simulador de vuelo Igon Skrzypek
F
lightGear es un simulador de vuelo muy realista, que puede competir con sus equivalentes para Windows sin problemas. Incluye más de 20.000 aeródromos, ciertos tipos de terrenos copiados fielmente y varios modelos de aviones (escenarios de todo el mundo caben en más de 11 CDs). Merece la pena prestar atención a la iluminación nocturna de los terrenos urbanizados, que tan bien refleja la realidad. Asimismo, los mapas del cielo cambian según la estación del año y según nuestra ubicación geográfica, como ocurre en el mundo real.
Instalación
Podemos descargar el juego desde la página www.flightgear.org. En la sección download hay tres opciones que nos interesan:
tiene unas opciones interesantes que podemos indicar cuando activamos el juego desde la consola. Entre otras cosas, nos permite modificar los parámetros del juego de varios modos y adaptarlo a nuestras propias necesidades. Los comandos básicos son:
mano que contiene las opciones detalladas del simulador. Para jugar a volar en avión, no tenemos que ajustar todo: durante unos vuelos simples nos serviremos de unas opciones estándar. Si queréis vivir un vuelo lo más real posible, os recomiendo experimentar con las posiciones.
•
Empezamos
• • • • •
• • •
•
Download Application – permite descargar paquetes preparados con el juego; Download Scenery – permite descargar y agregar mapas adicionales de todo el mundo; Download Source Code – permite descargar el código fuente.
--fg-root=RUTA – ruta al directorio
principal de datos, si no es estándar; --fg-scenery=RUTA – ruta al directorio de mapas; --language = CODIGO – idioma; --aircraft= NOMBRE – tipo de avión; --show-aircraft – listado con aviones accesibles; --wind = DIRECCION @VELOCIDAD – viento desde la dirección (en grados) con velocidad (en nudos); --turbulence =VALOR – valor de 0.0 a 1.0, que equivale a la fuerza de turbulencia.
Primera impresión
Después de iniciar sin parámetros adicionales, se nos mostrará la ventana del juego con una vista de la cabina del piloto de nuestra máquina y con el menú de
Lo primero que tenemos que hacer es aprender a pilotar y a observar la cabina del piloto con la ayuda del ratón. Para pilotar con ratón, basta hacer clic en la ventana del juego con el botón derecho del ratón; a partir de este momento, el ratón es el volante de dirección (el cursor cambia a una crucecita). Para modificar este estado, hay que presionarlo otra vez (ahora el cursor lo van a ser dos flechas horizontales opuestas). En este estado cada movimiento de ratón hará girar el volante en la cabina. Cada vez que pulsamos el botón derecho del ratón el volante vuelve a su estado principal, es decir, a la interacción con cocpit. También podemos controlar el volante por medio de las flechas. Las teclas principales de pilotaje (hay que fijarse en si están en mayúscula o en
Os recomiendo descargar el programa en forma de paquete RPM, cuya instalación no debe ocasionar problemas (rpm -ivh FlightGear-0.9.3-86.i586.rpm). El paquete con el juego también se puede adquirir con la distribución Debian Sarge (apt-get install flightgear).
Inicio
El juego se puede iniciar de dos modos: fgfs o fgjs. Empleamos el primer comando cuando queramos controlar el juego con el ratón y el teclado, y el segundo cuando tengamos intención de jugar con joystick.
Línea de comandos
Como sucede con la mayoría de programas y juegos bajo Linux, también FlightGear
50
Linux+ 1/2005
Figura 1. Avión de caza – uno de los muchos aviones que podemos pilotar
JUEGOS
Componentes principales de la cabina del piloto: •
velocímetro horizontal – indica la velocidad horizontal del avión, se halla
•
a la derecha del reloj; horizonte artificial – indica la posición orientativa del avión con respecto al horizonte (es útil por la
Figura 2. Vista de la cabina del piloto de nuestra máquina
noche), se halla a la derecha del velocímetro horizontal; •
minúscula) son las siguientes: • • • • • • • • • • • • • •
regulación de vueltas: [PageUp] aumenta, [PageDown] disminuye; modo de la vista: [v]; pausa: [p]; arranque de motores: [espacio]; control de estación: [{] la gira a la izquierda, [}] la gira a la derecha; freno de aparcamiento: [B]; activar/desactivar todos los frenos: [b]; mover hacia delante/mover hacia atrás el tren de aterrizaje: [g]; freno izquierdo: [,]; freno derecho: [.]; control de portezuelas: hacia arriba []], hacia abajo [[]; acelerar el tiempo: [a]; retardar el tiempo: [A]; pilotar el volante: el ratón en el modo de volante, joystick o teclas de cursores (flechas).
Primer vuelo
Ya tenemos el conocimiento teórico y ahora es hora de ponerlo en práctica. Al principio, giramos la estación a la derecha hasta sentir la resistencia, pulsando un par de veces la tecla [}]. A continuación, activamos el motor, presionando la tecla [espacio]. Después, poco a poco, aumentamos las vueltas del motor, presionando [PageUp]. A la vez, prestamos atención a que el avión esté en la pista de despegue. Para ello, empleamos los frenos: izquierdo ([,]) y derecho ([.]). ¡Nunca usamos el volante para estacionar el avión en la pista! Cuando el avión tenga una velocidad apropiada (normalmente cuando el contador esté a 80), arrastramos un poco el volante hacia nosotros. Gracias a esto, no vamos a arrastrar el avión y despegaremos. Luego, estabilizamos la máquina a una altura determinada y ya podemos disfrutar del vuelo. En los aviones que tengan un tren de aterrizaje escamoteable, nada más despegar, presionamos [g] para esconderlo. También merece la pena hacer ejercicios
•
altímetro – indica la altura actual sobre el nivel del mar, se halla a la derecha del horizonte artificial; velocímetro vertical – indica la velocidad con la que el avión se deja caer, o se eleva en el viento; se halla debajo del altímetro;
•
cuentarrevoluciones – indica las revoluciones del motor, se halla debajo del velocímetro vertical;
•
compás – indica la dirección del vuelo, se halla debajo del horizonte artificial y encima de la cabina del piloto;
•
indicador de inclinación de las alas – indica el nivel de ladeo de las alas, se halla a la izquierda del compás
•
principal (indicador de dirección); indicadores de nivel del combustible – indican el nivel de combustible en los tanques, se hallan debajo y a la izquierda del reloj.
de aterrizaje. Para aterrizar, nos alejamos primero de la pista para después volver y dirigirnos a ella, recordando que la distancia principal tiene que ser lo más larga posible. Cuando ya nos encontremos en línea recta con la pista, nos preparamos para aterrizar. Bajamos la altura del vuelo porque el momento de tocar tierra va a ser cuestión de segundos. Bajamos el tren, si antes lo habíamos escondido. Reducimos la velocidad, y cuando nos encontremos sobre la pista, elevamos un poco la punta del avión hacia arriba. Volvemos a reducir la velocidad, pero controlando el estado de arrastre (en caso de ''chirriar'', es decir, de arrastrar, bajamos un poco la punta del avión y aumentamos ligeramente la velocidad). Si hacemos todos estos pasos, las ruedas posteriores serán las primeras en tocar tierra. Cuando veamos que ya la han tocado, bajamos la punta hasta la línea recta y activamos los frenos (tecla [b]). http://www.flightgear.org/
Noticias
Open Quartz Se ha publicado la nueva versión del juego de acción Open Quartz. Es un intento de elaborar desde el principio un juego completamente funcional que se parecerá a Quake. Éste sirve de base para escribir nuestro propio juego FPS. En su última versión se ha incluido, entre otros, la documentación y unos módulos adicionales. Gracias a ellos, el arma se parece más a la de Quake, que a la de la versión anterior. http://openquartz.sourceforge.net/ Navy Seals: Covert Operations En octubre se editó la última versión de este juego que se basaba en Quake 3 Arena. Se trata de una modificación y una transformación del Quake 3 Arena original. Todas las armas, mapas y equipamiento se han elaborado para parecerse lo más posible a las que usan los soldados de comandos del Navy Seals. En la versión reciente se ha agregado un nuevo sistema de control de lesiones resultantes de caídas, sistema de contusiones psíquicas, 6 mapas nuevos y, además, se han subsanado varios errores. http://www.ns-co.net/ Attal El 22 de octubre se actualizó el juego de estrategia Attal. Es un juego que parece Heroes of Might and Magic, un viejo conocido de Windows. También en Attal disponemos de ejército y de ciudades, las cuales vamos perfeccionando durante nuestras tareas. En la última versión, se han modificado, entre otros, el sistema de calendario y la visualización de la base interior, así como también se han corregido los errores. http://www.attal-thegame.org/ Genuts Framework Ha aparecido la nueva versión de Genuts Framework, una herramienta para programadores que elaboran sus propios juegos. En ella, se han perfeccionado, entre otros, los motores que soportaban la visualización y los controles de colisiones, además se han añadido nuevos objetos. El paquete ha de ayudar a crear de modo rápido las aplicaciones en lenguaje Java para varias plataformas. En Gentus Framework se pueden crear proyectos, tanto para ordenadores de sobremesa, como para los equipos PDA y teléfonos móviles que soporten Java. http://www.genuts.com/ Poker3D Poker3D es un juego online (en el paquete hay cliente y servidor), mediante el cual podemos jugar al póker con aficionados de todo el mundo. El cliente, con la vista en 3D, muestra por pantalla a los jugadores sentados a la mesa, según la situación actual. Hasta 10 personas pueden jugar en una mesa y, a la vez, se puede tomar parte en 4 partidos. http://mekensleep.org/
www.lpmagazine.org
51
primeros pasos
Comparación de programas multimedia Piotr Machej
I
DVD
Tras ejecutar la distribución Linux+ Live DVD podemos testear los programas descritos.
En el DVD
En el DVD se encuentran todos los programas descritos en el artículo.
52
Linux+ 1/2005
ncluso si tenemos un profesional home cinema, de vez en cuando empleamos nuestro ordenador para ver películas o escuchar música. Muchas revistas adjuntan actualmente películas en formato VideoCD o en discos DVD; una unidad óptica DVD en el equipo informático no es rara hoy en día. Y si añades la televisión y la radio de Internet, resultará que ya no es necesario encender el televisor. Para ver cómodamente las películas desde tantas fuentes, se necesita un buen programa que no sólo sea capaz de reproducir nuestras películas o música, sino que también sea, sobre todo, cómodo e intuitivo al usarlo. Después de todo, si queremos relajarnos viendo una comedia en DVD, de seguro que no tenemos ganas de pensar por qué vemos garabatos chinos en vez de los subtítulos en español. La presente comparación tiene como objetivo facilitar al Lector la elección de un programa lo más fácil y universal para la reproducción de archivos multimedia. Para el test se eligieron cinco programas: MPlayer, Xine, VLC, RealPlayer y XMMS.
anuncios de las películas, con frecuencia, resulta útil el soporte de los formatos QuickTime y RealVideo. Aparte de esto, es importante la facilidad de manejo; la interfaz debe ser legible y cómoda. Si podemos, además, ajustar su apariencia a nuestro gusto (o los fondos del escritorio) aún mejor. Los propietarios de pantallas grandes, a quienes les gusta ver películas recostados cómodamente en el sofá, con seguridad les interesará saber qué programas tienen soporte para el mando a distancia. En la Tabla 1 he colocado el conjunto de características particulares de los programas junto con sus valoraciones. He empleado una escala de 1 a 6 y una simple marcación, si el programa posee una determinada funcionalidad (+:sí, -:no). El tamaño de los paquetes de instalación abarca las versiones para la distribución Aurox. Si el programa está compuesto de varios paquetes, el tamaño resultante es la suma de la cantidad de los paquetes indispensables para funcionar.
Criterios de selección
Personalmente, me gusta más la interfaz del programa Xine. Es muy clara y en el panel principal tiene botones que permiten iniciar fácilmente un disco CD Audio, VideoCD o DVD. El menú al principio parece algo confuso, pero después de algunos minutos podemos acostumbrarnos a él. Una solución excelente es la configuración de este programa. Tenemos a nuestra disposición varios niveles de dificultad
El criterio básico para la selección del reproductor multimedia es la cantidad de estándares soportados y sus cualidades. Seguramente, nos interesa si podemos ver una película DVD o si no tendremos problemas con el menú al intentar ver escenas elegidas. Si utilizamos la televisión o radio de Internet, nos interesará el soporte de la transmisión continua; y para ver los
Interfaz
ranking de programas multimedia
primeros pasos
Interfaces alternativas
Figura 1. La interfaz XMMS soporta esta ventana de MPlayer
de la interfaz, desde principiante (Benniger) hasta el guru (Master of the known universe). Gracias a esto podemos emplear diariamente en nuestro trabajo opciones menos complicadas y, dado el caso, pasar a un nivel más complejo, desde el que acceder a una mayor cantidad de opciones. Al igual que Xine también me gustó VLC. Me encantaron en particular las ventanas que permiten abrir el archivo, disco o localización. Están muy bien pensadas. En la configuración decidimos si queremos, o no, ver las opciones avanzadas. Y además, si lo deseamos, podemos ver las opciones avanzadas sólo en ventanas concretas. También me parece cómoda la posibilidad de ajustar los atajos de teclado a nuestro gusto. Si añadimos a esto el hecho de que las opciones inactivas (innecesarias) simplemente desaparecen del menú (gracias a que vemos sólo aquello a lo que tenemos acceso), tendremos una imagen completa de esta interfaz. En el segundo lugar hemos colocado a MPlayer. Su panel principal es claro, aunque el significado de algunos iconos haya que imaginárselo o averiguarlo experimentando (falta la información que aparece al señalar los iconos con el ratón). El menú está organizado legiblemente, pero desgraciadamente no siempre cumple con su función (por ej.: durante la emisión de una película DVD o VideoCD). En las preferencias
encontramos prácticamente todas las opciones que necesitamos, ordenadas en pestañas. Las últimas, pero de ningún modo las peores, han resultado ser las interfaces de los programas XMMS y RealPlayer. Estos dos programas son un ejemplo de que no todo me gusta. Se da la circunstancia que de estar abrumado con la cantidad de opciones de XMMS (y aún estoy, a pesar de que lo utilizo desde hace mucho tiempo), en RealPlayer me sentí insatisfecho.
La gran ventaja de los programas descritos es que, si no nos gusta la interfaz de alguno de ellos, podemos cambiarla. En el recuadro Programas examinados os comenté sobre el plugin para el programa XMMS, el cual permite usar MPlayer. Aparte de esto, en Internet podemos encontrar muchos otros frontends, incluso interfaces totalmente autónomas para estos programas. Como ejemplo podemos tomar la popular, principalmente entre los usuarios de Mandrakelinux, aplicación Totem, que funciona en base al motor del programa Xine. Basta con escribir la clave MPlayer en los buscadores de los portales Freshmeat.net o Sourceforge.net y en seguida nos aparecen muchos frontends, plugins y programas que emplean o colaboran con MPlayer. Esto se refiere también a los demás programas. De esta manera encontré alrededor de 15 proyectos que utilizan MPlayer – no sólo son frontends (KPlayer, Mplay, Flanagan Media Center o EMotion Player), sino también plugins para navegadores u otros programas (XMMS-MPlayer, Mozplayerxp o Mplayerplug-in). En el caso de Xine ni siquiera hay que buscar. Los frontends alternativos los tenéis en la sección Download de la página principal del proyecto. Aparte del Xine-ui estándar, tenemos aquí el Totem mencionado anteriormente, así como Kaffeine, OXine, GXine, Ople y otros. Xine, por supuesto, recibe un punto extra
Figura 2. Cambiar la apariencia de Xine requiere sólo algunos clics con el ratón
www.lpmagazine.org
53
primeros pasos
Programas examinados MPlayer
Muchos usuarios tratan Mplayer como el mejor de los programas para la reproducción de películas. Reproduce prácticamente todos los formatos de archivos multimedia conocidos. Además, podemos cambiar la apariencia de su interfaz usando skins.
Xine
Xine es un excelente programa para la reproducción de películas DVD, VideoCD y AudioCD. Aparte de esto, soporta muchos formatos de archivos multimedia. Al igual que con Mplayer, se puede cambiar su apariencia gracias a la gran cantidad de skins.
VLC
VLC antes fue conocido como VideoLAN Client. Aparte de reproducir prácticamente todos los formatos multimedia (con excepción de Real Audio/Video y algunos otros), es capaz también de funcionar como servidor de transmisión continua. Soporta skins, pero la versión actual pasa del antiguo sistema de soporte de skins a uno nuevo. A partir de la siguiente versión estarán dispanibles solamente los skins para el nuevo sistema.
RealPlayer
La versión para Linux del conocido programa RealPlayer de Windows se basa en el código fuente abierto del programa Helix Player. Se diferencia de éste último, en principio, por poseer algunas soluciones cerradas adicionales como: reproducción de formatos RealAudio/RealVideo o MP3.
XMMS
Este programa es en realidad un reproductor de música. Parecido a su homólogo de Windows (WinAmp), se ha desarrollado y actualmente, gracias a los plugins, puede también reproducir películas. Incluso hay un plugin que permite usar XMMS como interfaz para las películas reproducidas por Mplayer; gracias a ello puede reproducir prácticamente todos los formatos de archivos.
por faciliarlos en su página principal. Naturalmente, estos no son todos los frontends para Xine. Podemos encontrar otros, por ej.: Logan's Multimedia Console. Desgraciadamente, para VLC y RealPlayer no encontré frontends adicionales, pues tendremos que contentarnos con
54
Linux+ 1/2005
Figura 3. VCL se las arregla también con la lectura de las inscripciones de los archivos OGM
los integrados en los clientes predeterminados. Creo que el mejor, teniendo en cuenta la variedad de frontends, es XMMS. Aparte de la cantidad de frontends y applets tales como: XMMS-KDE, NCXmms, NetXmms o E-xmms, también tiene a nuestra disposición una serie de complementos para otros programas, por ej.: para el navegador Firefox, que permiten usar XMMS sin necesidad de visualizarlo.
Localización
Para facilitar el uso del programa es importante que la interfaz esté descrita en un idioma comprensible. En el nuestro propio sería lo mejor, pero no siempre sucede así; por suerte cada programa hoy en día tiene su versión en inglés. En la Tabla 1 en la línea Localización he marcado los programas que poseen interfaz traducida al español. Dependiendo del programa y de su versión, las traducciones pueden ser desde muy simples hasta muy complejas. Algunas veces no está traducido el menú principal, otras veces puede suceder que sólo vemos algunas opciones en nuestro idioma. No obstante, alguien trabaja con estas traducciones, así que nos queda la esperanza de que lo siga haciendo. Incluso, si tenemos algo de tiempo y ánimos, podemos ofrecernos a traducir la interfaz.
Mando a distancia
Si nos gusta sentarnos cómoda y tranquilamente a ver una película,
con seguridad nos hará falta un mando a distancia. En Linux el soporte para el puerto infrarrojo (a través de éste el mando se comunica con el ordenador) lo ofrece el proyecto LIRC. Sin contar a RealPlayer, todos los programas descritos soportan LIRC; gracias a ello no tendremos que hacer uso del teclado para parar la reproducción o regular el volumen. Desafortunadamente, no encontré ninguna información acerca de la colaboración con RealPlayer.
Skins
Muchas veces queremos cambiar la apariencia de nuestro programa, o simplemente queremos que llame la atención. En este caso nos pueden ayudar los skins. Por suerte, todos los reproductores, salvo RealPlayer, soportan skins. Xine se esfuerza tanto en cambiar su apariencia que hasta facilita una opción adecuada en el menú. Su elección descarga de la página web del programa un índice de skins donde podemos elegir alguna de nuestro agrado (en esto nos puede ayudar la vista previa). Todos los programas poseen en sus páginas principales conjuntos menos o más abundantes de skins. También los podemos encontrar en las páginas web de los usuarios, así como en los portales que facilitan skins e imágenes de fondo. Aprovechando esta oportunidad, vale la pena recodaros que en el caso del
primeros pasos
ranking de programas multimedia
Tabla 1. Ranking de reproductores Criterio
MPlayer
Xine
VLC
RealPlayer
XMMS
Nº de la versión
1.0pre5
1.0.0 (librería), 0.99.2
0.7.2
10.0
1.2.10
Tamaño del paquete de instalación
6,5MB
5MB
5,5MB
8MB
2MB
Localización
+
+
+
+
+
Interfaz
5
6
6
4
4
Interfaces alternativas
5
6
1
1
6
Mando a distancia
+
+
+
s/d
+
Skins
+
+
+
-
+
DVD
4
6
6
1
1
VideoCD
4
5
5
1
1
Audio CD
2
6
5
1
6
Formatos de vídeo:
6
6
6
3
2/6
MPEG
+
+
+
-
-
AVI
+
+
+
-
+
OGM
+
+
+
-
-
ASF/WMV
+
+
+
-
+
Matroska
+
+
+
-
-
Real
+
+
-
+
-
QuickTime
+
+
+
-
+
6
5
5
3
2/6
MPEG 1/2
+
+
+
-
-
MPEG 4
+
+
+
-
-
WMV 1/2
+
+
+
-
s/d
WMV 3
+
+
-
-
s/d
Real Media
+
+
-
+
-
Sorenson
+
+
+
-
-
3ivx
+
-
+
-
-
H.263
+
-
+
+
-
6
6
5
5
6
MPEG layer 1, 2, 3
+
+
+
+
+
AAC
+
+
+
+
+
WMA
+
+
+
-
+
Real Audio
+
+
-
+
+
Codecs de vídeo:
Codecs audio:
Ogg Vorbis
+
+
+
+
+
Visualización
1
2
3
1
6
Plugins
2
5
5
1
6
Código abierto
+
+
+
-/+
+
Cantidad de puntos
45
57
51
22
44
Posición
3
1
2
5
4
programa VLC hay un cambio del sistema de skins. Por eso también, si nos gusta alguno del conjunto antiguo, podemos modificarlo en el sistema nuevo, según las instrucciones contenidas en la página web. No olvidéis compartirlo con otros.
Soporte DVD
Los discos DVD son portadores bastante característicos. Dependiendo de cuánto
se haya esforzado el editor, podemos encontrar en tales discos algo más que una película. A menudo se adjuntan varios idiomas: tanto el doblaje como subtítulos. Aparte de esto podemos contar con otros complementos, como entrevistas con los actores y con el equipo, fotografías de los lugares del rodaje o de tomas que por algún motivo se eliminaron de la versión final. A veces incluso nos podemos topar con
complementos de tipo: cómo se creó la película. Nuestro reproductor, sin duda alguna, debe permitirnos emplear todos estos beneficios. En este papel los mejores son Xine y VCL. Ambos visualizan el menú y dan acceso a todos los complementos del disco. Peor es con MPlayer, que no visualiza el menú. A decir verdad, a algunos complementos (por ej.: entrevistas) podemos acceder empleando el menú interno del
www.lpmagazine.org
55
primeros pasos
visualiza los títulos de las canciones en el citado menú. Esta vez MPlayer salió mal: si bien podemos intentar poner en marcha el disco audio (empleando Cdparanoia) desde la línea de comandos, ya en la interfaz gráfica no encontramos ninguna opción para ello. A RealPlayer le damos el último lugar, puesto que no tiene soporte para discos audio.
Reproducción de archivos con películas
Figura 4. Los medios de comunicación continua pueden servir para la difusión de conferencias
programa, pero la galería de fotos es imposible verla ya de esta manera. Por suerte, el menú del programa es suficiente para elegir el idioma, pues, sin esto, emplear MPlayer como reproductor de películas DVD no tendría sentido. Los programas RealPlayer y XMMS desgraciadamente no soportan DVDs, lo que, evidentemente, se refleja en sus valoraciones.
Soporte VideoCD
Durante la reproducción de mis discos VideoCD me llevé una gran desilusión; ninguno de los programas resultó ser el ideal. Por desgracia, sólo tengo dos discos de esta clase, así que me es difícil realizar la valoración (siempre y cuando sea culpa de estas dos películas). Mejor se las arregló VCL. A decir verdad, no visualizó el menú, pero dió acceso a escenas elegidas – gracias a las posiciones en el propio menú VCL. En cambio, Xine nos visualizó el menú con un cómodo desplazamiento (entre la página principal y las páginas con las vistas previas de escenas elegidas). Desgraciadamente, la elección de cualquier posición, ya sea el inicio de la película o el salto a una escena elegida, resultó imposible. Solamente
56
Linux+ 1/2005
invocando el menú de Xine, que contiene un índice de todos los fragmentos, pude iniciar la película. MPlayer ha seguido los pasos de Xine y no visualizó el menú pasando directamente a la visualización de la película. No obstante, aquí no contamos con acceso a las escenas elegidas, incluso dentro del propio menú del programa. Sólo nos quedó por desplazar la barra de progreso. Los programas RealPlayer y XMMS no soportan formato VideoCD.
Reproducción de discos audio
Mientras escuchamos los discos, es útil ver los nombres de las canciones. Gracias a la base CDDB de Internet, no sólo XMMS, sino también Xine nos ofrecen esta posibilidad. Por eso, estos dos programas ocupan los primeros lugares en el ranking de los reproductores de discos audio. En VLC la reproducción de música es bastante buena, aunque nos puede molestar un poco que los botones visibles sirvan para desplazarse por la lista de reproducción, donde el disco que escuchamos figura como una posición, y para cambiar las canciones haya que emplear el menú Navigation. Además, el programa no
En este campo, sin duda, mejor se las arregla MPlayer. Soporta la mayor cantidad de estándares y acepta la mayoría de los tipos de inscripciones para películas. Empleando las opciones estándares, trata de cargarlas automáticamente, pero, si deseamos, podemos desactivar esta función. A Xine le otorgamos el segundo lugar. Soporta una cantidad menor de formatos y, además, no pude encontrar en el menú la opción de agregar inscripciones desde archivo (aunque la documentación afirma que la opción existe). A decir verdad, siempre podemos agregarlas desde la línea de comandos o empleando el atajo de teclado [Ctrl]+[Shift]+[S], pero una pequeña disonancia aparece. Asimismo, VLC bien se las arregla con las inscripciones – no sólo anexadas de un archivo externo, sino también codificadas en el archivo con la película (por ej.: en formato OGM). RealPlayer, por culpa de la cantidad limitada de tipos de archivos que soporta, se queda muy atrás. Igual sucede con XMMS, que nos recuerda que su misión es la de reproducir música. Los plugins que permiten la reproducción de películas, parecen haberse quedado. La situación la salva sólo el plugin XmmsMPlayer, pero provoca la ejecución de MPlayer – de aquí la doble valoración para XMMS en categoría Formatos y Codecs de vídeo. Aprovechando la ocasión, vale la pena subrayar que los programas probados agradecen el soporte de ciertos formatos a las librerías provenientes del sistema Windows. Aparte de esto, en cierta medida, éstos son dependientes entre sí; por ej. Xine puede emplear las librerías que instala el programa RealPlayer. Es importante que, en este caso, se instale la versión 8 ó 9 de RealPlayer. Podemos instalarla junto con la versión 10, así que no debería haber ningún problema.
ranking de programas multimedia
Método para calcular el resultado
Para elegir al ganador de esta comparación, sumé todos los valores de los campos señalados. Por cada + asigné un punto, por cada – cero puntos. Los signos más de la categoría formatos y codecs no se sumaron, ya que de éstos dependía la nota colectiva de cada uno de los grupos de formatos y codecs – no hubo necesidad de contarlos nuevamente. La cantidad final de puntos la tenéis en la penúltima línea de la Tabla 1; en base a ésta se otorgaron las posiciones. Si se trata del valor 2/6 en el caso de los formatos de vídeo soportados por XMMS, al valor final se sumó el valor 2. Lo mismo ocurre en el caso del valor de la accesibilidad de los códigos fuente del programa RealPlayer – del valor -/+ se eliminó el menos. En este valor se asignó un plus a la accesibilidad de los fuentes del programa Helix Player, sobre el cual se basa RealPlayer.
También se puede emplear el conjunto de codecs disponibles en la página web de Mplayer; entonces incluso no hay necesidad de instalar RealPlayer.
Reproducción de archivos con música
En el caso de la reproducción de música desde archivos, todos los programas se comportan de la misma manera. Sólo VLC no es capaz de reproducir archivos
RealAudio. Las primeras diferencias aparecen en la etapa de visualización. En este tema, gracias a los diversos plugins, el mejor es XMMS. En peor situación están VLC y Xine, puesto que ofrecen solamente analizadores sencillos de espectro. Al final se encuentran RealPlayer y MPlayer, que no ofrecen ningún tipo de visualización de la música reproducida.
Ampliar la funcionalidad mediante los plugins
MPlayer es, en principio, un programa completo. Se instalan nuevos codecs que permiten el soporte de nuevos tipos de archivos, así como fuentes que mejoran la calidad de los textos. Xine utiliza plugins externos para aumentar su funcionalidad, pero prácticamente todos los plugins necesarios se suministran junto con el programa. Lo mismo ocurre con el programa VLC. RealPlayer, en cambio, no emplea plugins. Contrariamente está XMMS – la mayoría de sus funciones son plugins. Es más, en la distribución se adjuntan los más importantes; en Internet podemos encontrar muchos más, que no sólo mejoran el sonido, sino que también añaden diferentes efectos. Asimismo podemos encontrar muchos plugins que mejoran o adjuntan efectos visuales.
Conclusión
Así terminamos nuestros tests. Del resumen de los resultados podemos
deducir que el ganador es Xine, aunque pisándole los talones está VLC. Un poco más atrás tenemos al par MPlayer y XMMS. Aquí el orden podría ser otro, pero decidí no sumarle a XMMS las funciones que facilita mediante el plugin XMMS-MPlayer. He considerado que no sería honesto. En último lugar quedó RealPlayer. ¿Cómo valoro estos resultados? El programa Xine es realmente excelente, pero yo pocas veces veo películas en DVD o VideoCD. Si lo hago, sólo empleo este programa. A diario prefiero el programa MPlayer, ejecutado desde la línea de comandos, sin emplear la interfaz gráfica. Para utilizarlo es suficiente con recordar algunas teclas; puesto que la mayoría del tiempo trabajo en el terminal o en la consola, así me parece más cómodo. Observando la tabla podemos afirmar con toda seguridad: XMMS, gracias al plugin XMMS-MPlayer, tiene la posibilidad de convertirse en un programa fundamental para los usuarios. Es así, ya que reuniendo sus ventajas con las de MPlayer, este tándem soporta la mayor cantidad de formatos de archivos. Espero que mi comparación ayude a los Lectores a seleccionar su reproductor. Sólo me queda desearos lo mejor al ver películas.
En Internet: •
• • •
•
•
•
• Figura 5. MPlayer desgraciadamente no se las arregla con el menú DVD y VideoCD
primeros pasos
Página principal del programa Mplayer: http://www.mplayerhq.hu/ Página principal del programa Xine: http://xine.sourceforge.net/ Página principal del programa VLC: http://www.videolan.org/vlc/ Página principal del programa RealPlayer: http://www.real.com/linux/ Página principal del programa Helix Player: https://player.helixcommunity.org/ Página principal del programa XMMS: http://www.xmms.org/ Página principal de los plugins de XMMS-MPlayer: http://www.cse.iitb.ac.in/~nandan/ xmmsmplayer.php Página principal del proyecto LIRC: http://www.lirc.org/
www.lpmagazine.org
57
primeros pasos
Trucos y truquillos Grzegorz Niewęgłowski
Un arranque silencioso del sistema
Si de manera drástica queremos reducir la cantidad del texto que aparece en la pantalla durante el inicio del sistema, eliminamos todos los comunicados que muestra el kernel hasta el momento en que se inicia el proceso init. Es suficiente agregar la palabra quiet a las opciones transmitidas por el gestor de arranque al kernel. Después de esta pequeña intervención, en la pantalla no aparecerá ningún comunicado – hasta el momento en que se comiencen a arrancar los scripts de inicio. ■
La grabación de CDs en los nuevos kernels
Hace poco los desarrolladores del kernel aseguraron a los usuarios una atracción, cambiando el comportamiento de las grabadoras ATAPI. Se aseguró que el usuario que tiene derechos de escribir en el archivo que simboliza la grabadora en /dev puede, potencialmente, destruir el equipo. Esto se solucionó en el kernel 2.6.8 a través de un cambio en el conjunto de las funciones que el usuario común puede enviarle a la grabadora. Un efecto indirecto fue la descomposición del popular cdrecord, usado para la grabación de discos compactos. Comenzó a negar cooperación, lo que por ejemplo en el programa K3B se reveló en que presentaba los dispositivos de CD-RW como comunes CD-R. Para dejar a un lado el problema, se tuvo que arrancar los programas destinados a grabar CDs con todos los derechos de root, pero por supuesto esta fue solamente una solución provisional. Rápidamente apareció el parche que corregía este comportamiento (que regresó al estado conocido de los kernels 2.6.7), pero entonces resultó que en los kernels 2.6.8, durante esta corrección, se descompuso la grabación de discos AudioCD. El kernel no se las puede arreglar correctamente con el tamaño atípico del sector de los discos audio (las pistas de audio utilizan otro tipo de tamaño del sector que el que utilizan las pistas con datos) y, por esta razón, se pro-
58
Linux+ 1/2005
ducen grandes pérdidas de memoria. Cualquier dato de audio que haya sido dirigido a la grabadora, se escapa del kernel y ocupa la memoria ... irreversiblemente. Esto significa que, después de haber grabado 120 MB de pistas de audio (tres canciones típicas), estos 120 MB desaparecen de la memoria de operación accesible: se convierten en inaccesibles hasta el momento de reiniciar el ordenador. Cual fue mi sorpresa, cuando durante la grabación de un CD, K3B, de repente, comenzó a retardar, estropeó el disco, y un momento después todo el sistema se bloqueó. La desaparición de RAM y, como consecuencia, la ralentización del sistema durante la grabación de discos audio, es desgraciadamente un comportamiento normal de este kernel. Después de algún tiempo apareció el parche que corregía este escape de la memoria, pero entonces resultó que las pistas grabadas estaban estropeadas y no se podían escuchar: en vez de los sonidos esperados, en el disco se escribía un ruido. En el kernel 2.6.8.1 editado un poco más tarde, desgraciadamente, no se corrigieron estos errores. Se eliminaron apenas en el kernel 2.6.9, en el cual se ha observado otro efecto interesante: la grabación desde la cuenta del usuario funciona, pero bajo una condición: el programa ejecutable cdrecord no puede tener agregado el bit suid. Si utilizamos cdrecord con suid, lo que que tenemos que hacer es quitarlo (chmod 0755 `which cdrecord`), para así poder grabar CDs en el kernel 2.6.9. ■
El montaje de los sistemas de archivos VFAT en el kernel 2.6.9
Últimamente, varios usuarios del kernel 2.6.9 han notificado problemas con el uso del módulo vfat. De repente dejaba de funcionar mount: presentaba un comunicado de error, que decía que lo más posible era que hubiese sido dada una partición o un tipo de sistema de archivos incorrecto. Por suerte, no se refería a una destrucción de la partición, sino que la causa era un pequeño cambio en el comportamiento del mismo módulo vfat, introducido en el kernel 2.6.9.
El módulo vfat coopera con los módulos que soportan las páginas de codificación adecuadas para identificar correctamente en los nombres de los archivos los signos que no pertenecen al conjunto ASCII, por ejemplo, los de DOS 437. El módulo vfat intenta utilizar la página 437, pero si ésta no es accesible, entonces utiliza el conjunto básico ASCII. La utilización del conjunto básico ASCII hasta este momento había estado incluida en el mismo módulo vfat, pero en el kernel 2.6.9 se ha aumentado la modularización, e incluso se la ha introducido en un módulo aparte. Esto ha provocado la aparición de un error en algunas máquinas, en las que el uso de la páginas de codificación no era completo. Hasta aquel momento la falta de una página de codificación provocaba utilizar la codificación común ASCII, de lo que la mayoría de los usuarios no sabía. En los nuevos kernels, el módulo vfat, en caso de que no haya página de codificación, simplemente no montará el disco que contenga el sistema de archivos FAT16/32. Una información acerca de esto aparecerá en el log del kernel, mientras que en la consola del usuario aparecerá únicamente un comunicado estándar de error, que sugiere que haya aparecido un problema con la partición, lo que será una pista falsa. La solución del problema es una definición correcta de las páginas de codificación usadas por el módulo. Esto se puede hacer a través de /etc/fstab, agregando las declaraciones adecuadas a las opciones del sistema, por ejemplo: iocharset=iso8859-15,codepage=850
para los sistemas de archivos con los caracteres españoles en el nombre de los archivos.
Figura 1. Resultados de la función del programa Ink
primeros pasos
trucos y truquillos
Más tarde, hay que asegurar la presencia de los módulos que usan las páginas de código 850 e iso8859-15 (en make menuconfig se encuentran en el menú con los sistemas de archivos, en la posición Native Language Support). ■
Conversión de ext2 a ext3
El sistema de archivos ext3 posee contabilización (ing. journaling), que notablemente aumenta la resistencia del sistema de archivos a los estropeos producidos por los reinicios inesperados del ordenador o por las caídas del voltaje. Otra gran ventaja suya es el hecho de que las particiones existentes formateadas como ext2 se pueden fácilmente y con seguridad convertir a ext3, incluso sin desmontar el disco (los cambios entrarán en acción durante el siguiente montaje del disco). Para cambiar ext2 de /dev/hda1 a ext3, escribimos: # tune2fs -j /dev/hda1
Después, nos acordamos de cambiar el tipo del sistema de archivos en /etc/fstab, y tras reiniciar la máquina el que había sido previamente nuestro ext2 funcionará ahora como ext3. Es también posible la conversión contraria, es decir, de ext3 a ext2: # tune2fs -O '^has_journal' /dev/hda1
Después de realizar este paso, ext3 se cambia de nuevo a ext2. Por supuesto, hay que asegurarse de que el sistema después podrá hacer uso de este tipo de particiones, es decir, de que el kernel posea módulos montados adecuadamente. ■
Revisión del nivel de tinta en las impresoras
El paquete Gimp-Print, igual que los drivers para impresoras, incluye herramientas que permiten comprobar el nivel de tinta en los cartuchos de la impresora. Desafortunadamente, no soporta todos los modelos de impresoras (soporta por lo general impresoras Epson). Por su parte, Ink es una herramienta mucho más amplia (http:// ink.sourceforge.net/), que da soporte a la mayoría de las impresoras Epson y HP. Se trata de un programa sencillo que trabaja en el modo textual. La ejecución del comando ink visualiza el nombre de la impresora descubierta y el nivel de tinta que queda en los cartuchos, así como se refleja en la Figura 1.
Para una función adecuada, Ink exige derechos de lectura/escritura de los archivos de las impresoras en el directorio /dev – para las impresoras conectadas por el puerto paralelo son los archivos /dev/parport* y /dev/ lp*, y para las impresoras USB los archivos /dev/USB/lp*. ■
Teclas adicionales en los teclados multimedia
Últimamente, cada vez son más baratos y populares los teclados con un conjunto de teclas extendido. Los usuarios de Linux que tienen tales equipos se hacen la siguiente pregunta: ¿cómo obligar a las teclas adicionales a funcionar? Por lo general, esta tarea la lleva a cargo el gestor de ventanas u otro programa de esta clase, pero algunas veces esto no se puede realizar, porque lamentablemente no todos están en condiciones de hacer un uso suficientemente elástico del teclado. Para estos casos, nos ayuda un pequeño programa Xbindkeys (http://hocwp.free.fr/ xbindkeys/xbindkeys.html), que relaciona el pulsado de la tecla con el arranque exterior de comandos, así que, por ejemplo, es posible atribuirle el pulsado de la tecla Browser al arranque del navegador web. Xbindkeys exige la presencia de los archivos ~/.xbindkeysrc – pueden estar vacíos, pero deben existir, de otra forma el programa no funcionará. La descripción de una sola acción ocupa dos versos:
Pero ¿de dónde tomar los nombres de teclas? El mismo xbindkeys puede ayudar en esto. Supongamos que queremos que la tecla [Sleep] apague el monitor. pues, para ello, arrancamos xbindkeys -k y aparecerá una pequeña ventana, que espera a que sea pulsada la tecla. Después de pulsar nuestro [Sleep], Xbindkeys escribe el siguiente texto: "NoCommand" m:0x0 + c:223 XF86Standby
Utilizando estos datos, podemos construir este registro en ~/.xbindkeysrc: “xset dpms force standby” XF86Standby
Esto resulta cómodo cuando hay que dejar el ordenador durante un momento más largo – se puede apagar la pantalla inmediatamente, sin tener que recurrir al ratón, o esperar hasta que se encienda el salvapantallas. La mayoría de las teclas multimedia no tienen designados nombres simbólicos, pero xbindkeys puede funcionar sin ellos. Es suficiente utilizar la opción -k, para leer el código de la tecla. En el siguiente ejemplo Xbindkeys reconoce los modificadores ([Control]+[Shift]), pero ya no la tecla NoSymbol: "NoCommand" m:0x5 + c:222
"gimp&"
Control+Shift + NoSymbol
Control+Alt+g
En el primer verso damos el comando de arranque (es mejor con un “&” al final, para que el comando no congele el proceso Xbindkeys). En el segundo verso determinamos el atajo de teclado, que ha de accionar una acción dada. Los comandos pueden ser más complicados, por ejemplo: "pgrep >/dev/null gkrellm&&killall
S
Esto no es, sin embargo, un obstáculo, puesto que se pueden utilizar los códigos numéricos de las teclas, es decir, la serie “m:0x5 + c:222”. Esta cualidad hace de Xbindkeys la solución más rápida, cuando queremos activar teclas adicionales: es suficiente crear nuestra propia descripción de la acción en ~/.xbindkeysrc e iniciar xbindkeys junto con su sesión de los X. El archivo de ejemplo ~/.xbindkeysrc puede tener el aspecto siguiente:
gkrellm||gkrellm&" Control+Alt+k
"xterm&" Control+Alt+x
Aquí, con el comando pgrep, revisamos si se ha iniciado Gkrellm. Si lo ha hecho, entonces será desconectado. Si no ha sido así, entoces se iniciará en ese momento. El atajo [Control]+[Alt]+[k] funcionará como interruptor, mostrando o escondiendo Gkrellma.
"gimp&" Control+Alt+g "gqview&" Control+Alt+f "pgrep >/dev/null gkrellm&&killall
S
gkrellm||gkrellm&" Control+Alt+k
■
www.lpmagazine.org
59
equipo
ALSA y el sonido en Linux Piotr Wolny
E
n el año 1998, Jaroslav Kysela empezó a crear un driver para su tarjeta Gravis Ultrasound. Al proyecto, que después se llamó Advanced Linux Sound Architecture (ALSA), pronto se afiliaron muchos programadores que creaban drivers para otras tarjetas. Pasados unos años, resultó que los drivers ALSA superaban el hasta entonces utilizado OSS (Open Sound System) en lo que al número del equipo soportado, al mejor uso de los recursos y a la facilidad de construir las aplicaciones, que exigen conexión al sistema de sonido, se refiere. Así pues, ALSA se convirtió en el sistema de sonido por defecto en los kernels de la serie 2.6.x, sustituyendo a los módulos OSS. Este cambio se produjo también debido al hecho de que las aplicaciones de sonido más antiguas funcionaran con los drivers de ALSA gracias a la emulación OSS.
Construcción de ALSA
DVD
Después de iniciar Linux+ Live DVD, se puede hacer un test de las cuestiones aquí planteadas.
•
En el DVD
•
En el DVD se encuentra la programación de la que hablamos en el artículo.
60
ALSA, al contrario que OSS, no es sólo un conjunto de módulos del kernel con los drivers de cada uno de los dispositivos. Todo el proyecto está dividido en partes, y sus fuentes más recientes los podemos encontrar en los archivos individuales en las páginas del proyecto:
Linux+ 1/2005
alsa-lib – librería de sistema que proporciona el uso del sonido a las aplicaciones; alsa-utils – programas básicos de soporte de tarjeta de sonido que permiten cambiar el volumen, reproducir, grabar, etc.; Por supuesto, han aparecido muchos y variados
•
•
•
•
programas para desempeñar estas funciones, sin embargo, los suministrados por los programadores de ALSA, aunque son bastante simples (funcionan desde la línea de comandos), pueden ser muy útiles, especialmente en la fase de configuración y pruebas de la tarjeta. alsa-tools – en este paquete nos encontramos con los paquetes que resultan útiles sólo a los usuarios de algunas tarjetas, p. ej. las herramientas para cargar firmware; alsa-firmware – algunas tarjetas, para poder funcionar correctamente, exigen firmware; éste se halla en un paquete separado; alsa-oss – una librería que hace posible que funcionen los programas habilitados para trabajar con los drivers OSS; alsa-drivers – en este paquete encontraremos los módulos del kernel. En total, son unas decenas de ficheros, y salvo los módulos responsables de los respectivos chipsets de sonido (éstos son los más numerosos); unos módulos son responsables de emular OSS, y otros se ocupan de MIDI.
En todas las distribuciones hallaremos, como mínimo, los paquetes alsa-lib, así como los alsa-utils, mientras que los alsadrivers son los que forman parte del paquete binario del kernel (p. ej. rpm -qa | grep alsa). Lo más probable es que todos estos paquetes se hayan añadido al sistema al instalarse la distribución y deben estar en la misma versión. Es posible que ocurra
equipo
Advanced linux sound architecture
Instalación desde los fuentes En el momento de escribir este artículo la versión más nueva de ALSA era la 1.0.7rc2. Mientras tanto, los paquetes binarios de las versiones algo más antiguas siguen disponibles en todas las distribuciones populares. En Mandrakelinux 10.0 tenemos ALSA en la versión 1.0.2, en Aurox 10.0, la 1.0.5, en Slackware 10.0, la 1.0.5, mientras que en Fedora Core 2, se encuentra la 1.0.3. No me parece que la compilación de las versiones más recientes sea útil para muchos usuarios, incluso si nuestra distribución contiene la versión 1.0.3. A pesar de las extensas mejoras realizadas desde entonces, no debemos esperar soporte para muchos dispositivos más, o una mejora fundamental de la funcionalidad. Los usuarios que deseen incluir en sus sistemas la última versión deberán tener en cuenta un inconveniente. En teoría, antes de instalar las nuevas versiones desde los fuentes, habría que eliminar todos los viejos paquetes de ALSA. Pero, en la práctica, esto no va a ser tan fácil, porque el sistema de dependencias entre ficheros sólo permitirá eliminar ALSA junto a todos los programas que utilizan el sonido. Una manera de evitar este problema será, o bien, sobrescribir los ficheros de los paquetes binarios con los nuevos, independientemente de si están compilados o no, o bien, eliminar los paquetes alsa* con la opción --force, o también con la --nodeps; aunque la segunda solución parece menos cómoda. En resumen, aunque no es difícil instalar ALSA desde los fuentes, nuestro sistema resultará un poco dañado con una operación de este tipo. Además, conviene que antes de comenzar la instalación nos acordemos de instalar los fuentes del kernel del sistema que estamos usando actualmente. La instalación desde los fuentes la empezamos descargando la versión más
algún problema si actualizamos el kernel del sistema y no cambiamos el paquete alsalib y los demás. En tal caso, los módulos del kernel pueden provenir de una versión de ALSA un poco más nueva que la librería. Aunque esto raras veces provoca problemas con el sonido, para empezar es aconsejable comprobar mediante el comando more /proc/asound/version qué versión de módulos ALSA tenemos, mientras que el comando grep VERSION_STR /usr/include/ alsa/version.h confirmará la versión de alsa-lib. Si la diferencia entre las versiones llega a ser bastante grande (p. ej. 0.9.x y 1.x), podemos esperar con casi toda seguridad que surgirán problemas.
reciente de los ficheros de www.alsaproject.org. Luego, colocamos todos los archivos en un único directorio y los descomprimimos. Iniciamos la compilación desde el paquete con los drivers. Ejecutamos los comandos: cd alsa-driver1.0.7rc2, y después ./configure --with-cards=all. Si no tenemos la intención de compilar todos los drivers disponibles, damos sólo el comando ./configure --help, localizamos esos drivers necesarios en la lista (p. ej. emu10k1 para las tarjetas Creative SoundBlaster, o via82xx para las tarjetas VIA integradas con las placas madre), y a continuación escribimos algún comando concreto, p. ej. ./configure --with-cards= emu10k1,via82xx. Cuando no sabemos cuál de los módulos es el adecuado para nuestra tarjeta, podemos servirnos de las informaciones de dos ficheros que encontraremos en el directorio de trabajo: INSTALL y CARDS-STATUS. Podemos también emplear el programa alsaconf, disponible en algunas distribuciones, que una vez arrancado nos mostrará los dispositivos detectados automáticamente. Compilados los fuentes, damos los comandos: make y make install. A continuación, nos ocuparemos de la librería. Para ello, activamos los comandos: cd ./alsa-lib-1.0.7rc2, ./configure; make; make install. Los demás paquetes los podemos compilar del mismo modo en el orden que se quiera. En el caso del paquete alsa-tools no podremos compilar todas las herramientas incluidas allí con un único comando, sino que tenemos que ir a cada uno de sus directorios, p. ej. cd alsa-tools1.0.7rc2/ac3dec/; ./configure; make; make install. Por supuesto, compilaremos sólo los programas que nos puedan ser útiles.
Configuración básica
Como he dicho de paso anteriormente, ALSA proporciona decenas de módulos del kernel. En cada configuración, al menos un par de ellos tiene que cooperar entre sí, y para que esto sea posible, una parte de ellos se tiene que cargar con las opciones complementarias. Las opciones, que se transmiten a los módulos que se cargan en el kernel, se sitúan en el fichero /etc/modprobe.conf en las distribuciones más nuevas, y en /etc/modules.conf en las un poco más viejas. Desde el momento en que los kernels 2.6.x se han asentado en las distribuciones, ALSA apenas necesita
unos registros en el fichero /etc/ modprobe.conf (o alguno que le corresponda). Por ejemplo, en un ordenador equipado con la tarjeta de sonido VIA VT8233 (integrada con la placa madre) el instalador de la distribución Aurox realizará los siguientes registros vinculados con ALSA: alias snd-card-0 snd-via82xx install snd-via82xx /sbin/modprobe --ignore-install snd-via82xx &&
S S
S
/usr/sbin/alsactl restore > /dev/null 2>&1 || :
La línea que empieza con install... hace que, al cargarse el módulo para nuestra tarjeta (snd-via82xx), se restablezca la configuración del mezclador. Esta operación es opcional y la podemos llevar a cabo de varias maneras. Lo importante es la primera línea: este registro hará que la tarjeta base en nuestro sistema sea la via82xx. Veamos ahora cómo el instalador de Mandrakelinux 10.0 Community ha configurado la tarjeta. En su fichero /etc/ modprobe.conf localizaremos: alias sound-slot-0 snd-via82xx
S S --first-time --ignore-install snd-via82xx && { /sbin/modprobe S
install snd-via82xx /sbin/modprobe
snd-pcm-oss; /bin/true; }
Ahí veremos también dos líneas, pero éstas no contienen el alias snd-card-0 snd-via82xx, sino el sound-slot-0, que es preciso, no tanto para que funcione la tarjeta misma, como para emular OSS. Es también a este objetivo a lo que está dedicada la segunda línea; gracias a ella, tras cargar el módulo snd-via82xx, se cargará de forma automática el módulo snd-pcm-oss, que precisamente es necesario para que funcionen los programas que no operan directamente con los drivers ALSA. Si tenemos una tarjeta distinta, sólo cambiamos el nombre del módulo, p. ej. en vez de snd-via82xx indicamos snd_emu10k1. Aparte de la configuración, también prestaremos atención en que se carguen los módulos ALSA durante el arranque, o más concretamente, un solo módulo: el snd-pcm-oss. Para eso añadimos el comando modprobe snd-pcm-oss a al guno de los ficheros de arranque,
www.lpmagazine.org
61
equipo
Figura 1. Audigy2 es una de las decenas de tarjetas soportadas bajo Linux
o utilizamos la directiva install en el fichero /etc/modprobe.conf de la misma forma que se la emplea en el ejemplo ya citado de Mandrakelinux 10.0. Los demás módulos, imprescindibles para que la tarjeta funcione, se cargarán automáticamente, incluso cuando en el fichero /etc/modprobe.conf no se halle ni una sola noticia de nuestra tarjeta. Fijémonos ahora en un ejemplo un poco más avanzado que se refiere a dos tarjetas de sonido. Supongamos que a la tarjeta existente VIA VT82xx le agregamos también la tarjeta Creative Sound Blaster Audigy2. Repasando rápidamente el fichero /usr/src/linux/ Documentation/sound/alsa/ALSA-Configuration.txt encontramos la información que nos dice que el módulo snd-emu10k1 debe soportar esta tarjeta. Después de haberla montado en el ordenador arrancamos Linux. Al ponerlo en marcha, es posible que se inicie alguna herramienta para configurar la tarjeta de forma automática, p. ej. Kudzu en Aurox, o en Fedora Core. Aunque nosotros de todas formas realizaremos la configuración a mano, podemos dejar que se lleve a cabo de modo automático. En Aurox 10.0, Kudzu ha modificado /etc/modprobe.conf añadiendo allí las líneas casi idénticas a las que antes se referían a la tarjeta VIA: alias snd-card-0 snd-via82xx alias snd-card-1 snd-emu10k1
62
Linux+ 1/2005
La nueva tarjeta también ha aparecido en /proc/asound/. Tras analizarlo con más detalle, resulta que /proc/asound/card0/id contiene V8233A, mientras que /proc/asound/ card1/id contiene Audigy2. He decidido organizar el orden mediante los siguientes registros en /etc/modprobe.conf: #no cargar más drivers que dos options snd cards_limit=2 #los alias para ALSA alias snd-card-1 snd-via82xx alias snd-card-0 snd-emu10k1 #aquí fijamos el orden options snd-via82xx index=1 options snd-emu10k1 index=0 #los alias para la emulación OSS alias sound-slot-1 snd-via82xx alias sound-slot-0 snd-emu10k1
Figura 2. El programa Alsamixer
Ahora la tarjeta número 0 es la Audigy2, mientras que VIA queda con el identificador 1. Los parámetros index utilizados aquí no son, por supuesto, los únicos que se pueden transmitir a los módulos del kernel responsables de las respectivas tarjetas. En el fichero /usr/src/linux/ Documentation/sound/alsa/ ALSA-Configuration.txt hallaremos una descripción detallada de todos los módulos, junto con los parámetros que toman. No obstante, vale la pena buscar si por acaso figura allí algún parámetro importante para nosotros (p. ej. la activación del puerto de joystick). En todas las distribuciones detectaremos el fichero /etc/init.d/alsa (o alsasound). Normalmente, no sirve para cargar módulos sino sólo para restablecer la configuración del mezclador de tarjeta. Conviene repasarlo y cuidar de que se arranque cuando iniciamos el sistema. Comprobemos también si tenemos el fichero /etc/ sysconfig/soundcard o /etc/sysconfig/alsa – es allí donde encontraremos con más frecuencia los parámetros que se transmiten al script /etc/init.d/alsa.
Bases de ALSA
El primer programa que debemos arrancar para empezar a probar ALSA es el alsamixer, del paquete alsa-utils. Podemos estar seguros de que este programa siempre va a funcionar bien, lo que no se puede decir de otros muchos mezcladores, ya que la mayoría está habilitada a OSS. Tras su inicio, nos presentará todos los reguladores disponibles en la primera tarjeta de sonido. Si queremos seleccionar otra tarjeta, empleamos la opción -c, p. ej. el alsamixer -c1 seleccionará otra tarjeta
Advanced linux sound architecture
Soporte de tarjetas SB Live! y Audigy en ALSA
ALSA ofrece soporte a la mayor parte de las tarjetas de esta serie, es decir, a: Sound Blaster PCI 512, a Live (incluida Platinum, Value), a Audigy (incluida Platinum, Digital Entertainment, Gamer, ES), a Audigy2 (ZS Plantium Pro, ZS Value, OEM), a través de su módulo emu10k1. Las tarjetas de la serie Audigy LS (modelo SB0312) y SB Live! 7.1 24bit están soportadas por el módulo audigyls. La tarjeta Audigy ES, aunque no se ofrece ningún soporte oficial para ella, funciona con el driver emu10k1. El soporte de la tarjeta Audigy 2 Value – al menos en el momento de escribir este artículo – no se da bajo Linux.
(contando desde cero). El número de reguladores disponibles puede ser bastante amplio, pero es que, en lo que a algunas tarjetas concierne, también es posible que haya hasta unas decenas (!). Alguno de éstos sirve para una regulación fluida del nivel de sonido, mientras que otros son meros selectores. Por ejemplo, Mic Boost permite, en muchas tarjetas, conectar/desconectar la amplificación complementaria de la señal, y Tone conecta y desconecta la capacidad de regular el timbre del sonido. Una parte de los reguladores tiene sus funciones bastante obvias, mientras que los nombres de algunos suenan de una manera muy misteriosa. Los programadores de ALSA simplemente hacen disponible todo lo que detecten en la tarjeta. Por ejemplo, en mi Audigy2 bajo el nombre de Audigy Analog/Digital Output Jack hallamos un selector que activa la salida digital o las salidas analógicas, nunca las dos al mismo tiempo. Si no lo fijamos en una posición apropiada, no oiremos nada por nuestros altavoces. Hablo de los reguladores disponibles en mi tarjeta en el recuadro Mezclador en la tarjeta Audigy 2. Aunque los nombres indicados por alsamixer dependen del hardware, me parece que esta descripción también será útil para los propietarios de otras tarjetas. El manejo del programa alsamixer es bastante fácil: con las teclas del cursor arriba/abajo aumentamos y bajamos el nivel de la señal, mientras que derecha/ izquierda nos lleva al cursor siguiente. Igual de importante es también la tecla [m], con la que silenciamos un
canal dado o cambiamos el selector. Además, a través de la tecla de espacio fijamos la fuente de la señal para grabar (Capture), y mediante la tecla [Esc] salimos del programa. Después de iniciar el programa alsamixer, e instalar los drivers ALSA, todos los canales tienen su volumen fijado en cero y, a menudo, están también silenciados (mute). En vez de utilizarlo, podemos emplear el gnome-alsamixer, que funciona en un entorno gráfico, aunque kmix a veces provoca problemas. En este momento, todavía podemos intentar arrancar el amixer. En general, este programa sirve para lo mismo, pero no disfruta de ninguna interactividad. No recomiendo su uso diario, aunque tiene una ventaja que consiste en que, una vez arrancado sin parámetros, nos presentará una larga lista de todos los reguladores en la tarjeta de sonido junto con una descripción esquemática. Esto nos facilita la identificación de las funciones de algunos de ellos. Si ya hemos fijado el volumen en el nivel oportuno, emplearemos el programa /usr/sbin/alsactl, que sirve para guardar y restablecer el estado de todas las configuraciones del mezclador. Después de dar el comando /usr/sbin/alsactl store 0 desde la cuenta root, todos los datos de la primera tarjeta se colocarán en el fichero asound.state (su ubicación depende de la distribución), y si arrancamos /usr/sbin/
equipo
los vamos a restaurar. Podemos agregar estos comandos a los scripts responsables de conectar y desconectar el sistema (si los creadores de nuestra distribución no lo han hecho todavía). Para guardar la configuración de la tarjeta siguiente cambiamos 0 por 1, etc. Ya es el momento de intentar a reproducir algún sonido. Procuremos hacerlo otra vez con aplay, un programa escrito para este fin por los propios creadores de ALSA. Seguramente ya lo tenemos en el sistema, puesto que antes hemos instalado el paquete alsa-utils. Ahora, busquemos algún fichero en el formato *.wav. Seguro que hallaremos muchos ejecutando el comando find /usr/ -iname '*.wav'. Para más comodidad, coloquemos el fichero encontrado en el directorio de trabajo y llamémoslo con un nombre corto, p. ej. file.wav. Ahora, el comando aplay file.wav abrirá este fichero en el primer dispositivo de la primera tarjeta de sonido. El sonido debe ser audible, aunque puede resultar deformado: en tal caso, veremos un mensaje que nos persuade a utilizar otro dispositivo. alsactl restore 0
Dispositivos en ALSA
Ahora prestemos un poco de atención a los dispositivos ALSA. Tras dar el comando more /proc/asound/pcm obtendremos una lista abreviada de
Listado 1. Mezclar de forma programada el sonido reproducido pcm.card0 { type hw card 0 } pcm.!default { type plug slave.pcm "dmixer" } pcm.dmixer { type dmix ipc_key 1025 slave { pcm "hw:0,0" period_time 0 period_size 4096 buffer_size 16384 #4096 si ocurren problemas periods 128 rate 44100 } bindings { 0 0 1 1 } }
www.lpmagazine.org
63
equipo
Figura 3. Bajo Linux podemos utilizar todas las entradas y salidas de la tarjeta
los dispositivos PCM. Entonces, en el sistema tendremos:
S
00-00: emu10k1 : EMU10K1 : playback 32 : capture 1 00-01: emu10k1 mic : EMU10K1 MIC : capture 1 00-02: emu10k1 efx : EMU10K1 EFX : playback 8 : capture 1 01-00: VIA 8233A : VIA 8233A :
S S
S
playback 1 : capture 1
Las dos primeras cifras señalan el número de la tarjeta de sonido (0 para Audigy y 1 para VIA). Como vemos, cuando se trata de VIA la situación es simple: la tarjeta tiene un PCM para reproducir y otro para interceptar (capture). Y así será en el caso de la gran mayoría de las tarjetas de sonido. Por el contrario, Audigy es mucho más complicada. Observamos en ella tres dispositivos PCM. El primero contiene 32 subdispositivos (subdevices) que sirven para reproducir, y uno para interceptar; el segundo (MIC) sólo sirve para interceptar, y el tercero, el más misterioso, advierte que tiene 8 dispositivos reproductivos y uno interceptor. Las informaciones similares acerca de nuestro equipo las podemos obtener mediante los comandos: aplay y arecord. El comando aplay -l nos enumerará todos los dispositivos que reproducen el sonido, mientras que arecord -l, aquellos que pueden grabar;
64
Linux+ 1/2005
como es fácil de adivinar, arecord sirve para grabar el sonido desde la línea de comandos. Tampoco es suficiente conocer el número de los dispositivos, sino que convendría saber también cómo se llaman. Esto, en el sistema de sonido tradicional OSS resultaba más fácil: bastaba con recurrir al fichero del dispositivo /dev/dsp0 o /dev/dsp1. En ALSA, la cosa es totalmente distinta. Aquí, los dispositivos también se sitúan en el directorio /dev/, pero los programas escritos con el soporte de este sistema de sonido jamás se utilizan de manera directa, sino a través de unos nombres especiales. El dispositivo más popular se denomina hw. Aparece en todas las tarjetas, y a través de él, el sonido se transmite directamente al hardware. Por ejemplo, si escribimos aplay -D hw:0,0, el sonido se reproducirá en la primera tarjeta por el primer PCM. De forma analóga, aplay -D hw:1,0 abrirá el sonido en el primer dispositivo de la segunda tarjeta. Si nuestra tarjeta cuenta con subdevices, como Audigy2, podemos elegir también cuál de ellos emplear añadiendo el tercer parámetro, p. ej. aplay -D hw:0,0,31. Si utilizamos el programa arecord procedemos de la misma manera. Como ya he mencionado, hw no es el único dispositivo que aparece en ALSA. Obtendremos una lista com-
pleta de todos ellos dando el comando aplay -L. La lista no la forman sólo los nombres de estos dispositivos, sino también sus definiciones (puestas entre corchetes). A continuación, nos ocuparemos de una parte de estos dispositivos, p. ej. discutiremos dmix en lo que se refiere a la mezcla programada, y los dispositivos: surround, front, rear y otros por el estilo, en lo que concierne al sonido espacial. Los dispositivos los podemos crear también por nuestra propia cuenta, pero antes de que lleguemos a eso, ocupémonos del plughw, utilizado habitualmente. Se emplea de igual forma que hw, es decir, indicando el número de la tarjeta y del dispositivo, p. ej. aplay -D plughw:0,0 archivo.wav. Se diferencia de hw únicamente por el hecho de que el sonido, antes de ser enviado a la tarjeta, se convierte en la frecuencia adecuada de muestreo para esa tarjeta. Normalmente, esto resulta muy práctico, puesto que para disminuir los retrasos (ing. latency) el dispositivo hw envía el sonido directamente, y claro, no todas las tarjetas saben trabajar con todas las frecuencias de muestreo, lo que deriva en un sonido totalmente deformado, que da la impresión de que se reproduce a una velocidad incorrecta. Esta es una de las diferencias entre ALSA y OSS (en el que los problemas de ese tipo ocurrían sólo en algunos drivers). Pero aún así, esto no parece ser un impedimento, ya que en vez de hw se puede utilizar plughw.
Configuración de los programas
Sigo escribiendo acerca de arecord y aplay, sin ser éstos programas que usemos a diario. En otras aplicaciones tenemos la posibilidad de cambiar el dispositivo de sonido empleado por defecto con mayor facilidad, para, por ejemplo, usar el plughw, o para reproducir, o grabar el sonido de otra tarjeta de sonido. La mayor parte de los programas populares ya cuenta con el soporte de ALSA. En tal situación, esto resulta muy fácil. Entre ellos: •
•
XMMS – seleccionamos el plugin de ALSA como dispositivo de salida, y después de hacer clic en Configurar indicamos cualquier dispositivo de salida, p. ej. plughw:1,0; Xine – hacemos clic en Ventana de configuración–>Configuración, si hace
Advanced linux sound architecture
•
falta, lo cambiamos al modo Advanced, y luego, en la pestaña Audio, seleccionamos el driver de sonido ALSA. El dispositivo que elegimos lo podemos indicar como empleado para la salida estéreo o para las demás; MPlayer – veamos primero el resultado de la operación del comando mplayer -ao help. Debe figurar en la lista, o bien alsa, o bien alsa09. Al llamar el programa con la opción ao utilizamos ese nombre del driver, p. ej. mplayer -ao alsa archivo.avi. Para seleccionar un dispositivo concreto, tenemos que cambiar el signo de guión que aparece en el nombre por un punto, así como el signo de dos puntos por #; p. ej. el dispositivo plughw:1,0 se convertirá en plughw#1.0. En consecuencia, todo el comando debe tener el aspecto siguiente: mplayer
-ao
alsa:device = plughw #1.0
archivo.avi,
o en las versiones más antiguas que la 1.0_pre5, será mplayer -ao alsa:plughw #1.0 archivo.avi. Para facilitarnos esta tarea, cargaremos este dispositivo de manera estable en el fichero .mplayer/config en el directorio de inicio. La línea apropiada puede presentarse así: a o = als a : d e v ic e = plu g h w # 1.0,
o ao =alsa:plughw #1.0. Algunos, utilizan todavía las aplicaciones que reproducen el sonido solamente a través de /dev/dsp, por eso, ALSA incluye la emulación de los dispositivos viejos. Si hemos configurado los módulos del kernel tal y como dice el ejemplo del principio del artículo, deben funcionar: /dev/dsp0 – el primer PCM en la primera tarjeta, /dev/dsp1 – el primer PCM en la
Listado 2. Copiar la señal estéreo a los demás canales pcm.emulacion51 { type route slave.pcm surround51 slave.channels 6 ttable.0.0 1 ttable.1.1 1 ttable.0.2 1 ttable.1.3 1 ttable.0.4 0.5 ttable.1.4 0.5 ttable.0.5 0.5 ttable.1.5 0.5 }
equipo
Figura 4. Es fácil configurar el reproductor Xine para que utilice el sonido espacial
segunda tarjeta, y /dev/adsp0 – el segundo PCM en la primera tarjeta. Podemos también estudiar la lista de dispositivos y los datos generales sobre la emulación de OSS sirviéndonos del comando more /proc/asound/oss/sndstat. En mi sistema ha sido difícil localizar una aplicación para la que sea imprescindible emular OSS, sin embargo, he podido realizarle unos tests con el comando mpg123 -o oss -a /dev/ dsp1 archivo.mp3.
Mezcla programada
Reproducir sonido trabajando con muchas aplicaciones a la vez durante un largo periodo de tiempo era un reto para los autores de programas Linux y provocaba bastantes problemas a los usuarios con menos experiencia. A lo largo de este tiempo han ido apareciendo varios modos de evitar la cuestión de que /dev/dsp0 no se puede abrir con dos aplicaciones a la vez. Al principio, se vieron los llamados servidores de sonido: los más populares eran Arts de KDE y Esd de GNOME. Su idea era muy simple: sólo una aplicación (el servidor de sonido) abre el dispositivo de sonido, mientras que todos los demás se comunican únicamente con el servidor. Esta solución poseía desventajas sustanciales. Todas las aplicaciones tenían que habilitarse para cooperar con el servidor de sonido (más exactamente, con los dos más populares, como mínimo). Nunca ha llegado a ser así: una gran
parte de los programas seguía queriendo abrir el equipo directamente, y en estos casos, el servidor, en vez de ayudar, estorbaba; tenía que apagarse para que se pudiera oír el sonido. Además, los servidores de sonido no mejoraban la calidad del material reproducido (y ocurría que lo estropeaban), suponían mucha carga para los recursos, producían retrasos fuertes, etc. Hacia el final del desarrollo de OSS aparecieron los drivers para un par de tarjetas que permitían abrir /dev/dsp de forma múltiple, pero la primera solución compleja ha aparecido en las versiones nuevas de ALSA. Funciona con casi todas las tarjetas, pero es tan nueva que no se preconfigura en las distribuciones. Técnicamente hablando, se basa en aprovechar el plugin dmix para el predefinido dispositivo de sonido ALSA. No es necesario ningún proceso adicional del servidor de sonido. En la práctica, basta con que introduzcamos los datos adecuados en el fichero /etc/ asound.conf o .asoundrc en nuestro directorio de inicio (si todo va a funcionar para un solo usuario). El ejemplo comprendido en el Listado 1 funciona muy bien, y no sólo en mi ordenador. Ahí se ha creado pcm.dmixer, un dispositivo nuevo que mezclará todas las señales que llegan desde hw:0,0. Al mismo tiempo, el dispositivo ALSA, por defecto, ha sido fijado en dmixer. Las opciones bindings hacen que la mezcla se refiera únicamente a los
www.lpmagazine.org
65
equipo
Mezclador de tarjetas basadas en emu10k1 Las tarjetas basadas en el sistema emu10k1 (p. ej. Sound Blaster PCI 512, SB Live, Audigy, Audigy2) sorprenden a los usuarios de Linux con el gran número de reguladores disponibles desde el nivel de alsamixer. En las nuevas versiones de ALSA la dirección de la tarjeta se ha hecho más simple y el número de reguladores ha bajado por debajo de los cincuenta, lo que de todas formas sigue siendo mucho. Estudiemos, al menos, una parte de esos reguladores sobre el ejemplo de la tarjeta Audigy 2, pues esto nos ayudará a comprender, no sólo el manejo de las tarjetas con emu10k1, sino también las reglas que rigen el funcionamiento de las tarjetas de sonido en general: muchos de esos reguladores aparece también en otras tarjetas. Los reguladores presentes en la Audigy2 los podemos dividir en los siguientes grupos: •
•
entradas analógicas: Line in (en la parte trasera de la tarjeta), Aux (auxiliary – de repuesto, o sea, una entrada complementaria ubicada directamente en la tarjeta), CD (una entrada CD analógica en la tarjeta). Ayudándonos de estos reguladores podemos regular la intensidad del sonido de esas fuentes. las demás fuentes estereofónicas de la señal: PCM (sonido generado en la tarjeta, p. ej. la reproducción de mp3), Music (sintetizador MIDI en la tarjeta), Mic (micrófono), Audigy CD (CD ROM conectado a través de la entrada interna spdif), IEC958 Optical (el volumen de las entradas spdif: la regular y la óptica), Line2 i Aux2 (entradas adicionales en AudigyDrive), Analog Mix (la suma de todas las entradas analógicas). Además, todas estas fuentes de sonido cuentan con una regulación del volumen separada para la señal interceptada que provenga de ellas (capture). Por ejemplo, PCM Capture será útil sólo para la grabación.
dos primeros canales, es decir, dejamos el sonido multicanal sin cambiar para no frenar el sistema. Algunas tarjetas (p. ej. VT82xx e ICE1712) exigen que se limite el tamaño del búfer, pero hay que recordar que este tamaño tiene que ser una potencia de la cifra dos. Una solución de este tipo funciona prácticamente con todos los programas; también con los que utilizan la emulación OSS. No existen límites en cuanto al número de aplicaciones que pueden reproducir el sonido simultáneamente. Si no queremos utilizar el dmix como dispositivo ALSA por defecto, podemos no escribir la definición
66
Linux+ 1/2005
•
•
•
•
Todas estas fuentes se mezclan entre sí y luego se distribuyen entre los respectivos canales: Front (volumen de los altavoces de frente), Surround (altavoces traseros), Center (altavoces del medio, delanteros y traseros) y LFE (Low Frequency Effects, es decir, el subwoofer); controladores del sonido multicanal: si reproducimos el sonido multicanal a través de nuestra tarjeta, disponemos de los reguladores: PCM Front, PCM Rear, PCM Center y PCM LFE; salida de la señal: Master (todas las salidas juntas), Tone (activar/desactivar la regulación del timbre de sonido), Bass, Treble (regulación del timbre de sonido); controladores de los flujos: EMU10K1 – PCM, EMU10K1 PCM Send Routing, EMU10K1 PCM Send – no es necesario cambiarlos, al menos hasta que no nos familiaricemos con su documentación; controladores especiales: • EC958 Optical Raw – dirige la salida spdif. En el estado mute de la salida spdif tenemos la misma señal que en las salidas analógicas; después de deshabilitarla en la salida spdif conseguiremos un flujo puro de datos digitales, y de este modo, ya podemos utilizar el decodificador externo AC3; • Audigy Live Analog/Digital Output Jack – conmuta la salida digital y las salidas analógicas; • External Amplifier – en teoría, conmuta el nivel de la señal de salida para ajustarlo a la especificación del amplificador externo, pero en la práctica parece que no funciona. Suele causar la falta de sonido en algunos ordenadores portátiles.
pcm.!default, sino configurar el dmix como dispositivo de salida en los programas requeridos.
Sonido espacial
El primer equipo de música que ofrecía más de dos canales audio apareció ya en los años 70 del siglo pasado. Entonces, se proveía que quatro pronto iba a sustituir a stereo. Sin embargo, hubo que esperar una popularización masiva del uso de los canales complementarios hasta los años 90. Hoy día, la idea ha vuelto, pero ya no en su versión de cuatro canales: las soluciones de hoy comprenden seis y más canales independientes.
El estándar más popular ha llegado a ser el AC3 (Dolby Digital). En él se utilizan tres altavoces en la parte delantera (el izquierdo, el derecho y el medio), dos en la parte de atrás, así como el subwoofer – de ahí la denominación 5.1. Existe también la versión Dolby Digital 5.1 EX, que suele describirse como la 6.1 y que cuenta con un altavoz más en el medio de la parte trasera. Algunos distinguen también el sistema 7.1, en el que dos altavoces se colocan por los lados. Si no tenemos tantos altavoces, podemos reproducir el sonido grabado en AC3 mediante cuatro altavoces, sin que con ello perdamos demasiado. Mi tarjeta dispone de tres salidas analógicas; una para los altavoces de delante, una para los traseros, y una tercera que sirve para conectar el subwoofer y los altavoces del medio (el de delante y el de atrás). Esta última salida es la que es capaz de dar soporte a los tres altavoces sólo a través de una pieza de unión especial, de la que disponen los conjuntos de altavoces producidos por la misma empresa que haya fabricado la tarjeta. Así pues, esto nos hace más difícil el uso de todos los canales disponibles. Desde luego, en vez de usar los altavoces analógicos, podemos emplear los digitales, y en este caso basta con que acepten la señal SPDIF. Todos los canales a los que podemos conectar los altavoces van a funcionar bajo Linux.
Un test rápido
Si nuestra tarjeta cuenta con varias salidas, podemos intentar reproducir algún sonido sólo en los altavoces de delante sirviéndonos del comando aplay -D front /var/tmp/test.wav, y del aplay -D rear /var/tmp/test.wav en los altavoces de atrás. Por supuesto, front y rear son nombres visualizados por el comando aplay -L. En ALSA, cada una de las tarjetas de sonido posee su fichero de configuración (en el directorio /usr/share/alsa), de manera que el sistema sabe qué altavoces pueden conectarse a la tarjeta y dónde buscarlos. Los demás altavoces los podemos probar de igual forma. Si intentamos reproducir algo en los altavoces que no se pueden conectar a la tarjeta, obtendremos un mensaje de error, p. ej. Invalid type for PCM rear definition. Además, si queremos reproducir un normal sonido estereofónico en un dispositivo surround, veremos el mensaje: Channels count non available.
Advanced linux sound architecture
Desafortunadamente, es probable que existan tarjetas que no se pueden probar así, puesto que no son capaces de reproducir el sonido en los altavoces traseros. Si fracasamos, podemos ensayar las soluciones descritas a continuación.
Distintas soluciones
El sonido multicanal podemos obtenerlo de nuestra tarjeta de tres formas: •
•
•
tenemos una fuente de sonido multicanal (p. ej. una película con la banda AC3) y la reproducimos en todos los altavoces de los que dispongamos; el decodificador AC3 está conectado a la tarjeta a través de la salida digital y nos gustaría que la señal de sonido se transmitiera sólo p. ej. del DVD sin decodificarse (AC3 passthrough); sólo disponemos de una fuente de sonido estereofónica, pero de todas formas queremos que se empleen todos los canales al reproducirse el sonido.
Empecemos por la situación descrita en el primer punto. Lo más fácil es aprovechar el comando aplay -D surround51 archivo.wav. En vez de surround51, podemos emplear cualquier otro dispositivo con el número de canales apropiado, y si el número de los canales no es el adecuado, o se producen problemas con la frecuencia del muestreo, utilizaremos el plugin plug, p. ej. aplay -D plug:surround40 archivo.wav. Cuando nuestra tarjeta multicanal no se ha instalado como primera, agregaremos un argumento más, p. ej. aplay -D plug: surround40:1 archivo.wav. Es bastante difícil localizar los ficheros wav de cuatro o seis canales. Para solucionarlo, intentemos hacerlo mediante MPlayer y una película guardada con la banda AC3. Apoyándonos en el comando mplayer -channels 6 -ao alsa:device = plug #surround51
peli-
debemos oír el sonido en todos los canales. Ese comando funcionará bien sólo cuando tengamos un conjunto completo de altavoces (seis como mínimo). Si se ha iniciado sólo con cuatro altavoces conectados, no lograremos oír una parte de los sonidos que deben reproducirse en el canal del cula_con_ac3.avi
medio (donde a veces se hallan los diálogos). En este caso, es suficiente escribir -channels 4 en vez de -channels 6 y MPlayer mezclará la señal de forma correcta por su propia cuenta. La configuración mediante GUI en Xine es, tal vez, incluso más fácil: basta con escribir p. ej. plug:surround51 en las ventanas adecuadas y fijar el número de altavoces. Tuve que desactivar alsa_mmap_enable, ya que esa opción producía la pérdida de una parte de las bandas sonoras. En los ejemplos arriba mencionados el sonido AC3 lo decodificaba MPlayer o Xine. Si disponemos de un decodificador externo y somos capaces de conectar la salida digital de las tarjetas a la salida digital del decodificador, aprovecharemos las ventajas del nuevo equipo: normalmente, los decodificadores externos se caracterizan por una calidad mejor. Si utilizamos MPlayer, en vez de usar la opción -channels e indicar el dispositivo ALSA bastará la opción -ac hwac3, p. ej. mplayer -v -ac hwac3 dvd://9. El flujo de AC3 se enviará a la primera tarjeta de sonido. Para lograr lo mismo en Xine agregaremos las siguientes dos líneas al fichero de configuración .xine/config (en el directorio de inicio): audio.a52_pass_through:1 audio.five_lfe_channel:1
Recordemos también que hay que comprobar en detalle la configuración del mezclador y seleccionar en ALSA el dispositivo de salida apropiado (a veces contiene en su nombre IEC958 o S/PDIF). Como he dicho antes, el sonido de dos canales lo podemos reproducir también mediante muchos altavoces más. Hay que admitir que Linux carece de una tecnología tipo la EAX, conocida por los usuarios de los productos de Creative bajo MS Windows, pero a menudo es mejor tener un sonido cualquiera que el silencio absoluto. Para copiar de manera normal la señal destinada a los altavoces delanteros y también en los traseros, y mezclar el sonido del canal izquierdo y derecho en los altavoces de medio, no he tenido que hacer nada en mi sistema. Los autores del driver para Audigy han introducido en él una funcionali-
equipo
Listado 3. Hacer disponible un dispositivo de grabación para muchas aplicaciones a la vez pcm.fuente { type dsnoop ipc_key 1234 ipc_key_add_uid yes slave { pcm "hw:0,0" channels 2 period_size 1024 buffer_size 4096 rate 44100 periods 0 period_time 0 } }
dad así. Sólo cuando se reproduce el sonido de cuatro canales o más, éstos se utilizan de modo independiente. En lo que a otras tarjetas se refiere, nos las arreglamos mediante los registros adecuados en el fichero /etc/asound.conf o .asoundrc en el directorio de inicio del usuario. Basta copiar la configuración publicada en el Listado 2. Si ya tenemos algunos registros en alguno de los ficheros que se acaban de mencionar, simplemente añadimos allí el contenido del listado, lo que no producirá ningún conflicto. Para utilizar este sonido en cualquier aplicación, sólo necesitamos dar el nombre del dispositivo ALSA, p. ej. aplay -D emulacion51 archivo.wav. Si sólo copiamos, no nos asegurará un sonido que suene realmente espacial. Alcanzaremos un efecto mucho mejor, sin realizar cambios en la configuración, sólo al aprovechar las opciones oportunas de MPlayer. Este reproductor dispone de un decodificador para matrix encoded surround sound (la codificación matriz del sonido envolvente). Algunos ficheros mp3, o bandas de películas, aunque parezcan de dos canales, tienen codificada la información sobre los canales surround adicionales. Este tipo de ficheros no es muy común, pero este filtro resulta muy útil, puesto que introduce un retraso adicional a la hora de reproducir el sonido en los canales traseros, y eso es, precisamente, lo que produce la impresión de la “espacialidad” del sonido. Se activa de una manera muy fácil, p. ej. mplayer -channels 4 -af surround =30 -ao
alsa:device = plug # surround51
archivo.avi.
En este ejemplo, he fijado
www.lpmagazine.org
67
equipo
un retraso de 30 segundos: es bastante; aumenta la impresión de espacialidad, incluso con los altavoces traseros puestos muy bajo. Para realizar los tests podemos fijar incluso surround=1000, o sea, un segundo: entonces estaremos seguros de que funciona. Como es evidente, MPlayer reproduce también ficheros de música, y, desde que dispongo de los altavoces adicionales, éste se ha convertido en mi reproductor de mp3 preferido.
Capacidades de .asoundrc
ALSA tiene grandes capacidades de configuración, sin embargo, pasan inadvertidas por el público más amplio a causa de una documentación más bien escasa. Está bien conocer un par de las soluciones más populares que podemos obtener modificando de forma apropiada el fichero .asoundrc en el directorio de inicio, o el /etc/asound .conf. En este fichero definimos nuestro propio dispositivo de sonido, p. ej.: pcm.auriculares { type hw card 2 device 0 }
Un registro así sevirá para poder utilizar la denominación auriculares en vez de hw:2,0 para enviar el sonido a la tercera de nuestras tarjetas de sonido. La tarjeta de sonido por defecto la definiremos de forma parecida: pcm.!default { type hw card 2 } ctl.!default { type hw card 2 }
Estos registros dan lugar a que, si no indicamos ningún dispositivo, el sonido se enviará a la tercera tarjeta. También podemos definir el dispositivo predefinido en la tarjeta; p. ej. nos gustaría que la segunda tarjeta utilizara por defecto el segundo dispositivo: pcm.!default { type hw
68
Linux+ 1/2005
card 1 device 1 }
Sirviéndonos de un par de líneas añadidas al .asoundrc crearemos también un dispositivo de sonido que guarde cada sonido procesado en el disco duro, p. ej.:
no podemos cargar el módulo de la tarjeta, asegurémonos de que: •
es el módulo adecuado para nuestro hardware; ese módulo no se ha compilado, o cargado en el kernel antes; el kernel no tiene cargado el módulo OSS, que se dedica a dar soporte al mismo equipo.
• •
pcm.fichero { type file
Ahora, cuando seleccionemos el dispositivo de salida fichero en cualquier programa, el sonido se guardará en el fichero /tmp/ fichero.raw. Entonces, sólo habrá que escoger un formato adecuado para abrirlo a través de aplay: las opciones -f cd o -f dat suelen ser suficientes. Otro plugin interesante de ALSA que conviene conocer es el dsnoop. Funciona de modo similar que el dmix, pero al revés, es decir, posibilita que muchas aplicaciones graben el sonido de un solo dispositivo de manera simultánea. Su configuración de ejemplo se encuentra en el Listado 3. Por supuesto, al grabar tenemos que indicar el nombre correcto del dispositivo, p. ej. fuente.
Suele suceder que el problema proviene de cargar un módulo demasiado. Mi ordenador carecía de sonido después de que hubiera instalado Aurox 10.0, porque el módulo ALSA que da soporte al capture en la tarjeta de televisión se ha cargado por defecto, y precisamente esta tarjeta llegó a ser la primera, por defecto en el sistema, y será difícil esperar de ella que reproduzca sonido. A veces, la causa de problemas es el código ACPI: podemos intentar arrancar el kernel con el parámetro acpi=off y ver si esta es la solución. Algunas aplicaciones (Xine, XMMS) desactivan el modo mmap: podemos experimentarlo, pero sólo si ocurren problemas. Además, recordemos que los problemas con un sonido fuertemente deformado (como si se reprodujera a una velocidad incorrecta) pueden solucionarse usando el plugin plug, p. ej. aplay -D plug:surround71 archivo.wav.
Problemas
Para terminar
slave { pcm "hw:0,0" } file "/tmp/fichero.raw" }
La fuente de los problemas más frecuentes con ALSA consiste en la configuración del mezclador. Muchos usuarios se olvidan de que ALSA silencia por defecto todos los canales después de haberse instalado y para oír cualquier cosa hay que arrancar el alsamixer. Otros programas de este tipo pueden negarse a funcionar, en particular si se han escrito especialmente para OSS. Algunas tarjetas de verdad confunden al usuario ofreciéndole unas decenas de reguladores del volumen. Por desgracia, en casos así iremos incrementando el volumen de muchos canales con paciencia para llegar a oír algún sonido de los altavoces. A veces es necesario probar la posición de varios selectores en alsamixer. ALSA suministra todas las informaciones sobre sí mismo a través del /proc. Habría que comprobar si disponemos del directorio /proc/asound/card0/, ya que, en caso contrario, el módulo del kernel con el driver no se carga, o no detecta la tarjeta. Si
La descripción de las capacidades de ALSA que acabamos de presentar, da buena fe de que no haya sido casualidad que este sistema haya eliminado OSS del kernel Linux. Su configurabilidad y sus capacidades están a un nivel evidentemente más alto. El proyecto en cuestión ya funciona de forma estable y sigue desarrollándose tan rápido que los autores de las distribuciones de Linux y de las aplicaciones concretas todavía no han creado las herramientas que puedan aprovechar todas sus capacidades.
En Internet: •
•
Página de inicio de Advanced Linux Sound Architecture: http://www.alsa-project.org/ Documentación de ALSA en la tecnología Wiki: http://alsa.opensrc.org/
para programadores
Escribimos un juego a lo Quake Marek Sawerwain
T
DVD
Después de arrancar la distribución Linux+ Live DVD se pueden probar los programas descritos.
¿Qué hay en el DVD?
El DVD contiene las librerías usadas, el código fuente de los programas y todos los listados del articulo.
70
Linux+ 1/2005
odos conocemos títulos como Quake o Unreal. Escribir un juego de este tipo es un verdadero desafío para un equipo entero de programadores, diseñadores gráficos y expertos en sonido. En este artículo intentaré enseñar cómo realizar al estilo de un prototipo de juego FPS. Vamos a cargar un nivel en formato dedicado al juego Quake 3. Además vamos a introducir la colisión entre las paredes, para no poder pasarlas como si fuéramos un fantasma. Vamos a ver cómo cargar los personajes del juego desde los archivos MD2. También vamos a tirar al personaje que corre por nuestro nivel. Utilizaremos una librería bastante nueva, pero fácil de usar, que se llama Irrlicht. Es accesible para el sistema Windows, y lo que nos interesa más, también lo es para Linux. Vale la pena mencionar aquí que para esta librería se recomienda el uso de la tarjeta OpenGL, es decir, NVIDIA o ATI. Por eso hay que cuidar la correcta instalación de los drivers adecuados para el sistema Windows. Uno podría preguntar, ¿por qué no usar uno de los proyectos que modifican el código fuente de los juegos Quake 1 y 2 en vez de la librería Irrlicht? Por supuesto es una idea estupenda, aunque la librería Irrlicht es más transparente y fácil de emplear. El código fuente del Quake requiere un estudio más profundo. Lo recomiendo a los Lectores que quieran ganar una experiencia nueva. La lectura del código fuente de este juego debería ser obligatoria para todos los que quieran dedicarse profesionalmente a la creación de este tipo de programas en el futuro.
Unas palabras sobre la librería Irrlicht
Irrlicht se distingue por una API muy accesible en el lenguaje C++. Aunque la librería no es grande (el código fuente comprimido ocupa 1MB), ofrece bastante. Es posible cargar los objetos tridimensionales, entre otros, en formato MD2, 3DS, y los mapas en formato bsp del juego Quake 3. Irrlicht soporta también los formatos básicos de archivos gráficos como jpg, tga, bmp, pero le falta el soporte para los archivos png. La gran ventaja de la API es la posibilidad de creación de escenas híbridas. La librería permite crear el escenario con ayuda de nodos, lo que da la posibilidad de combinar dos tipos básicos de escenarios: indoor (escenarios en el interior en la mayoría de los casos los mapas bsp de juegos tipo Quake) y outdoor (escenarios en el exterior). Incluso podemos componer el escenario de fragmentos y administrar los nodos particulares de manera libre. Otra vez voy a subrayar la accesibilidad de la API, puesto que la gestión de los nodos se parece a la gestión de tipos dinámicos. En cualquier momento podemos crear, eliminar, u ocultar un nodo. Aunque la librería fue escrita en C++, están en preparación versiones para otros lenguajes p.ej. Java. Por desgracia, excepto C++, hasta ahora sólo tiene soporte oficial la plataforma .NET. La librería es accesible para los sistemas: Windows y Linux. En el caso de Linux se utiliza OpenGL como sistema gráfico principal. Una buena noticia para la gente que tiene una buena tarjeta de gráficos, pero le faltan los drivers para Linux, es que Irrlicht entrega un modo de programa para la aceleración 3D. Aunque no ofrece una calidad de imágenes ni un rendimiento tan alto, es suficiente para los programas que hemos presentado en este artículo.
escribimos un mini-quake
para programadores
El calentamiento
Antes de empezar a crear nuestro juego quería dar un ejemplo que nos introduce en la librería Irrlicht. Vamos a escribir un programa que muestra dos comunicados en la pantalla y tiene un botón Quit que termina el funcionamiento del nuestro programa. La Figura 1 presenta la captura de la pantalla con nuestro programa que, como podemos ver, no es muy complicado. El análisis del programa consistirá de dos partes. El Listado 1 presenta el contenido entero de la función main. En esta función creamos todos los objetos básicos imprescindibles para funcionamiento de la aplicación. Realizamos el procesado de datos en el bucle while. Después de analizar el Listado 1 sabemos que no abortamos el funcionamiento de la aplicación, porque el objeto SimpleEventReceiver es responsable de procesar eventos, entre otros, de reaccionar a las teclas pulsadas.
Compilación y instalación de la librería Irrlicht
Irrlicht todavía no utiliza (por lo menos hasta el momento de escribir este artículo) los sistemas automake y autoconf. La compilación tenemos que hacerla solos. En el paquete original el autor siempre prepara una librería estática, por tanto, puede resultar que la compilación no será necesaria. Si queremos compilar la librería, antes tenemos que asegurarnos de que el soporte de OpenGL y el entorno X Window han sido instalados correctamente. Si todo está bien, basta con descomprimir los fuentes de la librería:
Figura 1. La pantalla de nuestro primer programa en Irrlicht
El código entero del objeto se presenta en el Listado 2. En ambos listados no aparecen solamente las directivas del preprocesador y comandos using namespace. La primera acción de la función main es la creación de un dispositivo. Lo realiza la línea del código siguiente:
device = createDevice(EDT_OPENGL,
S S
dimension2d<s32>(resx, resy), 16, false, false, false, 0);
Hay muchos parámetros, pero nos interesan sólo los tres primeros. El primero determina el sistema que soporta la creación de gráficos 3D, en nuestro
Listado 1. Contenido de la función main del primer ejemplo device = createDevice(EDT_OPENGL, dimension2d<s32>(resx, resy), 16, false,
S
false, false, 0);
SimpleEventReceiver rcv;
device->setEventReceiver( &rcv );
# unzip source.zip
device->setWindowCaption(L"Hello World! - First Example");
y lo mejor en el mismo directorio. Un momento después de ejecutar el comando make en directorio ~/irrlicht-0.7/ lib/linux (si la distribución principal hemos descomprimido en el directorio principal) veremos un archivo nuevo libIrrlicht.a. Ahora podemos compilar sin problemas los ejemplos adjuntos a la librería con el comando make. Los autores no entregaron el archivo configure, pero prestaron atención para que el proceso de construcción y compilación de los ejemplos sea lo menos complicado posible. Si queremos compilar los ejemplos del disco adjunto a la revista, hay que cambiar los directorios donde están la librería estática libIrrlicht.a y los archivos de cabecera.
IVideoDriver* driver = device->getVideoDriver(); ISceneManager* smgr = device->getSceneManager();
IGUIEnvironment* guienv = device->getGUIEnvironment(); guienv->addStaticText(L"Hello World!!!", rect<int>(10,70,100,82), true);
guienv->addStaticText(L"Irrlicht based!!!", rect<int>(10,90,100,102), true); guienv->addButton(rect<s32>(100,210,200,240), 0, OK_BTN_ID, L"Quit"); while(device->run()) {
driver->beginScene(true, true, SColor(0, 200, 200, 200)); smgr->drawAll();
guienv->drawAll(); }
driver->endScene();
device->drop();
www.lpmagazine.org
71
para programadores
El primer argumento es el contenido del mensaje con la macro L puesta delante de una serie entre paréntesis: Irrlicht espera los mensajes en Unicode. El segundo argumento determina las coordenadas del rectángulo en el que va a aparecer el mensaje. El valor true al final significa que el mensaje se ha recuadrado. De manera casi igual ponemos un botón en la pantalla. La línea del código que lo realiza se presenta así:
Listado 2. Recepción de eventos en el segundo ejemplo class SimpleEventReceiver : public IeventReceiver {
public:
virtual bool OnEvent(SEvent event) {
if (event.EventType == EET_GUI_EVENT) {
s32 id = event.GUIEvent.Caller->getID();
IGUIEnvironment* env = device->getGUIEnvironment(); switch(event.GUIEvent.EventType) { case EGET_BUTTON_CLICKED: { if (id == OK_BTN_ID) {
}
(100,210,200,240), 0,
return true;
OK_BTN_ID, L"Quit");
} break;
}
}
return false; };
}
caso, OpenGL. El siguiente, con ayuda de una plantilla, determina el tamaño de la ventana. El tamaño actual está guardado en las variables resx, resy. El valor 16 define la cantidad de bits que describen el color. Actualmente admitimos solamente dos valores: 16 y 32. El tercer parámetro decide si iniciaremos el modo pantalla entera. Al principio de la creación de la aplicación vale la pena usar el modo ventana y enviar los mensajes de error u otras informaciones a la consola del terminal. Las dos siguientes líneas del Listado 1 crean un objeto que recibe los eventos y lo registran a través del método setEventReceiver. Después, con el método setWindowCaption definiremos el título de la ventana. Si no usamos el modo pantalla entera, éste aparecerá en la barra de título. Las tres líneas siguientes realizan una tarea bastante importante: la lectura de los objetos que representan la parte restante del sistema Irrlicht: el driver de imagen (tipo IVideoDriver), el gestor del escenario (tipo ISceneManager) y el objeto responsable de la interfaz de usuario, al que voy a llamar administrador de la interfaz GUI, es decir, de botones, ventanas de diálogo y otros controles de pantalla (tipo IGUIEnvironment).
72
Linux+ 1/2005
S S
guienv->addButton(rect<s32>
device->closeDevice();
Después de realizar las actividades iniciales creamos dos comunicados y un botón en la pantalla. Sólo una línea de código añade una etiqueta utilizando el método addStaticText, del objeto de administrador de GUI: guienv->addStaticText
S
(L"Hello World!!!", rect<int> (10,70,100,82), true);
Figura 2. Mini-Quake en Irrlicht
S
El orden de los argumentos es distinto comparando con el método addStaticText. También aparecen argumentos nuevos. El segundo define al padre del control, el tercero contiene un número que sirve para que objeto SimpleEventReceiver pueda detectar si hemos hecho clic sobre este botón. Hemos realizado así todas las actividades importantes de la función main. Nos queda solamente poner en marcha el bucle while, en el que funcionará nuestra aplicación. El contenido del bucle se encuentra en el Listado 1. Como vemos, el bucle se ejecuta mientras el run devuelve el valor verdadero. En el bucle ejecutamos solamente tres acciones. Empecemos a crear un escenario a través del método
escribimos un mini-quake
de eventos. Vamos a comprobar si la tecla [Esc] ha sido pulsada. En ese caso, igual como antes, terminaremos el programa. El fragmento más importante del método OnEvent lo presenta el Listado 3. No hay diferencias notables en el soporte de eventos, comparando con el ejemplo anterior. Nos aseguramos de que evento EET_KEY_INPUT_EVENT (relacionado con el teclado) ha tenido lugar. Dentro de una instrucción condicional, aplicando la construcción switch, comprobamos qué teclas hemos pulsado. Si ha sido [espacio], enviamos a la pantalla las coordenadas actuales de la cámara. Si ha sido la tecla [Esc], nos comportamos igual que en el ejemplo anterior. Y ¿cómo mover la cámara o cambiar el sentido de su objetivo con el ratón? Irrlicht realiza estas tareas por sí mismo y no hay que programarlas manualmente.
Figura 3. Esquema funcional de Mini-Quake
(los dos primeros valores lógicos de argumentos deciden si los búfers de imagen y de profundidad se eliminan o no). Después, dibujamos todos los objetos del gestor del escenario y del administrador de GUI, o sea, dos mensajes de texto y un botón. Es necesario terminar de dibujar el escenario con el método endScene. Si el valor final del método run es verdadero, volveremos a ejecutar el contenido del bucle. beginScene
Procesar eventos
La clase del Listado 2 es la responsable del procesado de eventos. En nuestro primer programa tenemos solamente un evento: la situación en la que el usuario hace un clic sobre el botón que está en nuestra aplicación. Para detectar este evento, en el método OnEvent comprobamos si el tipo de evento del argumento event de este método es igual al valor EET_GUI_EVENT (en otras palabras, el evento se relaciona con el entorno de usuario). En este caso tenemos que probar el identificador del componente sobre que se ha hecho un clic.
con OK_BTN_ID. Si son iguales, llamamos al método close del objeto driver, cerrando el programa entero. De este modo usando la librería Irrlicht hemos escrito un programa bastante sencillo, pero completo. Recomiendo añadir otro botón que p.ej. envía un mensaje a la consola.
Mini-Quake – soporte de eventos
El siguiente ejemplo es más largo, así que en el artículo sólo presento fragmentos escogidos. El código fuente entero se encuentra en el disco adjunto a la revista. La Figura 2 presenta una parte de nuestro proyecto. La Figura 3 presenta un esquema de la construcción del proyecto. Como en el programa anterior vamos a crear un objeto para el análisis
Cargar el mapa en formato bsp
Ha llegado el momento de hacer lo más importante, es decir, cargar un nivel del juego en formato bsp. Irrlicht puede sacar provecho de los elementos de Quake 3. El Listado 4 presenta cómo hacerlo. La primera línea del listado: device->getFileSystem()->
S
addZipFileArchive("../media/
S
map-20kdm2.pk3");
no carga el mismo nivel, sino que añade un archivo con el nivel y las texturas (en realidad los archivos pk3 están en formato zip) a un sistema de archivos virtual. La línea siguiente es la responsable de la lectura de datos del nivel.
Listado 3. Soporte de eventos en Mini-Quake if(event.EventType == irr::EET_KEY_INPUT_EVENT) { switch(event.KeyInput.Key) { case KEY_SPACE: {
core::vector3df v = cameraFPS->getPosition(); std::cout << v.X
} break;
<< " " << v.Y << " " << v.Z << "\n";
case KEY_ESCAPE: {
s32 id = event.GUIEvent.Caller->getID();
En el Listado 2 se puede ver que leemos el objeto del gestor. Luego, a través de switch, comprobamos qué tipo de evento ha aparecido. Si ha sido un clic sobre el botón, comparamos el identificador de variable id
para programadores
device->closeDevice(); return true;
}
}
} break;
www.lpmagazine.org
73
para programadores
nos ocuparemos es la cámara. Será del mismo tipo que las que podemos encontrar en los juegos FPS. Con las flechas nos movemos y con el ratón cambiamos el sentido del objetivo. El código para crear la cámara se encuentra en el Listado 5. En la creación de la cámara, la definición de su posición ocupa solamente dos líneas. La primera es la que sigue:
Listado 4. Carga del nivel bsp en Mini-Quake device->getFileSystem()->addZipFileArchive("../media/map-20kdm2.pk3"); scene::IAnimatedMesh* level = smgr->getMesh("20kdm2.bsp"); if (level) { }
level_node = smgr->addOctTreeSceneNode(level->getMesh(0));
if (level_node) {
S
level_node->setPosition(core::vector3df(-1370,-130,-1400));
cameraFPS = smgr->addCameraSceneNodeFPS
level_node->setID(LEVEL_ID);
(0, 100.0f, 300.0f);
selector = smgr->createOctTreeTriangleSelector(level->getMesh(0), level_node, 128); level_node->setTriangleSelector(selector); }
selector->drop();
scene::IAnimatedMesh* level =
S
smgr->getMesh("20kdm2.bsp");
El tipo IAnimetedMesh es un poco confuso, puesto que su nombre nos indica que es un objeto animado. La librería unifica de este modo todos los objetos estáticos y las animaciones, como p.ej. los objetos MD2. El comando anterior no provoca la carga del nivel; primero hay que crear un nodo del escenario. Para mantener un alto rendimiento, Irrlicht utiliza los árboles octales. La creación de la estructura del árbol desde un nivel se realiza así: level_node = smgr->
S
addOctTreeSceneNode(level->getMesh(0));
Después de ejecutar esta operación, hay que ajustar las coordenadas del nivel: level_node->setPosition
S
S
selector = smgr->createOctTreeTriangle
S
Selector(level->getMesh(0),
El primer parámetro define el nodo del padre, aunque no es imprescindible. El segundo es la velocidad de rotación; el tercero, la velocidad del movimiento de la cámara en el espacio. La segunda línea es la responsable de situar la cámara en las coordenadas determinadas. Aquí otra vez usamos los datos listos, por tanto, aconsejo cambiarlos:
level_node, 128);
S
Fijémonos en que el nombre de la función que crea el selector se refiere a los árboles octales. Después de crear el selector hay que pasarlo al nodo que representa un nivel entero: level_node->setTriangleSelector
S
(selector);
Ya están todas las operaciones que hemos tenido que realizar para obtener un nivel para visitar. En la última línea del Listado 4 llamamos el método drop sobre un selector, lo que provocará la eliminación de un ejemplar del selector de sobra.
Cámara FPS
Después de cargar un nivel y crear el selector, otro elemento muy importante del que
cameraFPS->setPosition(core::vector3df (-100, 25, -150));
Podemos decir que hemos acabado con la cámara y podemos movernos, pero todavía es posible traspasar las paredes. Para impedirlo necesitamos detectar las colisiones. El código responsable de la detección de errores se encuentra en el Listado 5. La introducción de la detección de colisiones entre la cámara y el nivel requiere que añadamos, aunque pueda parecer raro, un nuevo objeto de animación. En realidad, la colisión influye en el comportamiento de la cámara. Para unir la detección de colisiones con el nivel (o sea, con el entorno) llamamos al método createCollision-
(core::vector3df(-1370,-130,-1400));
Por supuesto, las coordenadas pueden cambiar. Ya que utilizamos los elementos listos de la librería Irrlicht, vamos a usar las coordenadas que utiliza el autor de esta librería. Luego definimos el identificador del nivel, que nos ayudará mucho en la detección de eventos. Las tres líneas siguientes realizan un elemento muy importante: la detección de colisiones. Creamos un selector y luego lo conectaremos a la cámara para que no sea posible traspasar las paredes como si fuéramos un fantasma.
74
Linux+ 1/2005
Listado 5. Creación de una cámara estilo FPS cameraFPS = smgr->addCameraSceneNodeFPS(0, 100.0f, 300.0f); cameraFPS->setPosition(core::vector3df(-100, 25, -150)); anim = smgr->createCollisionResponseAnimator( selector, cameraFPS,
core::vector3df(30, 10, 30), core::vector3df(0, -100, 0), 100.0f,
core::vector3df(0,50,0)); cameraFPS->addAnimator(anim); anim->drop();
escribimos un mini-quake
Aún tenemos que añadir dos puntos, entre los que el personaje se pueda mover:
Listado 6. Bucle principal de nuestro mini-Quake while(device->run()) {
driver->beginScene(true, true, 0);
core::array<core::vector3df> waypoint;
smgr->drawAll();
waypoint.push_back(core::vector3df
guienv->drawAll();
(-150, -25, -80));
selectedSceneNode = smgr->getSceneCollisionManager()->getSceneNodeFrom
S
CameraBB(cameraFPS);
if(selectedSceneNode->getID()==SYDNEY_ID) { << "|col|";
core::vector3df a=cameraFPS->getPosition();
}
}
cameraFPS->setPosition(a);
selectedSceneNode = 0; }
waypoint.push_back(core::vector3df
S S
(350, -25, -80));
Por supuesto, hay que probar los valores de las coordenadas (las que uso han sido probadas antes). Si no lo hacemos, puede ocurrir que el personaje corra por el techo (que a veces pasa en los juegos). Si hemos asignado los puntos, creamos un objeto especial de animación:
if(selectedSceneNode != level_node) { std::cout
para programadores
driver->endScene();
S S
anim = device->getSceneManager() ->createFollowSplineAnimator
ResponseAnimator,
que tiene varios parámetros. Los dos primeros son obvios. El tercero define los radios del elipsoide de colisión. Vale la pena comprobar qué valores valdrán para este vector para evitar los choques contra las paredes (valores demasiado pequeños) o un comportamiento anormal de la cámara (valores demasiado grandes). El cuarto describe los valores de gravitación para los ejes x, y, z. El quinto es el valor de la aceleración. El último es el desplazamiento del elipsoide, p.ej. delante del objetivo de la cámara para una mejor (más rápida) detección de la colisión.
sydney_model->setMaterialTexture (0, driver->getTexture
S
S
("../media/sydney.bmp"));
Como antes, es necesario ajustar muchos parámetros, pero en el caso de los objetos MD2, el elemento más importante es el modo de animación. Supongamos que nuestro personaje va a correr. Este modo de animación se inicia así: sydney_model->setMD2Animation
S
(scene::EMAT_RUN);
(0, waypoint, 0.25f); sydney_model->addAnimator(anim);
Desgraciadamente, la solución no es la ideal, porque el personaje también va a correr de espaldas. Irrlicht, hasta ahora, no tiene la implementación de dar la vuelta al personaje de forma automática. Es una tarea propia de los Lectores.
Poner el sistema en marcha
El Listado 6 contiene el bucle while, responsable de procesar los datos en
Cargar un objeto adicional
Hasta ahora hemos conseguido cargar un nivel y aplicar la detección de colisiones entre la cámara y las paredes. Ahora añadimos un personaje y le hacemos correr a lo largo de una línea. El proceso de cargar el personaje de un archivo MD2 exige solamente dos líneas de código. En la primera cargamos un objeto mesh (la malla del objeto), en la segunda creamos un nodo del escenario:
S
sydney_mesh = smgr->getMesh("../media/ sydney.md2");
sydney_model = smgr->
S
addAnimatedMeshSceneNode(sydney_mesh);
Sería bueno elegir un archivo con la textura del objeto. En nuestro caso vamos a aprovechar la textura del archivo sydney.bmp:
Figura 4. Página principal del proyecto Irrlicht
www.lpmagazine.org
75
para programadores
nuestro segundo programa. A pesar de las acciones anteriores, comprobaremos si no existe colisión entre nosotros, es decir, entre la cámara que controlamos, y el personaje. Como en el sistema Irrlicht el escenario está siempre dividido en nodos, esperamos a que el sistema nos indique el nodo con el que colisionamos. Para conseguirlo, ejecutamos el comando: selectedSceneNode = smgr->
S S
getSceneCollisionManager()
->getSceneNodeFromCameraBB(cameraFPS);
Si aparece una colisión con el objeto de cámara, el gestor de la colisión atribuirá un valor adecuado a la variable selectedSceneNode. La instrucción condicional excluye la colisión con el entorno, y como hemos cargado solamente un objeto, sabremos si se ha producido la colisión entre él y la cámara.
¿Y los disparos?
En nuestro prototipo ya podemos andar, pero todavía nos falta la posibilidad de disparar. Ampliemos nuestro programa con esta posibilidad. Supongamos que vamos a disparar con la tecla [espacio]. La detección de esta situación es tarea del objeto SimpleEventReceiver que procesa eventos. Después de pulsar espacio llamamos a la función shoot_ test. La comprobación de si hemos alcanzado un blanco consiste en probar qué cruza el radio trazado desde la cámara hacia el punto que miramos. Vamos a necesitar el gestor de colisiones. Primero tenemos que conocer las coordenadas del principio y del final del radio: core::vector3df start = camera-> getPosition(); core::vector3df end = (camera
S
S
Figura 5. Con la ayuda de Irrlicht se pueden crear niveles muy avanzados
La primera contiene un triángulo que hemos alcanzado, la segunda representa una línea de prueba, o sea, el radio. El test de si el radio se cruza con las paredes se reduce a sólo una instrucción condicional: if (sm->getSceneCollisionManager() ->getCollisionPoint(line, { core::vector3df out =
std::cout << "|col with wall|"; }
Como vemos, utilizamos el selector que hemos creado antes. Ahora nos interesa comprobar si el radio se cruza con el personaje: if (sm->getSceneCollisionManager()
S
->getCollisionPoint(line, sydney_selector, end, triangle)) { core::vector3df out =
S
triangle.getNormal(); out.setLength(0.03f);
S
sydney_model->setMD2Animation
S
( EMAT_PAIN_A ); pain_time=device->getTimer()
S
Antes de comprobar si hemos dado en algo, establecemos dos variables más:
}
core::triangle3df triangle;
En la segunda parte de la instrucción if hacemos algo importante. Normalmente nuestro personaje está corriendo por el
core::line3d<f32> line(start, end);
Linux+ 1/2005
sydney_model->setMD2Animation( EMAT_PAIN_A );
Además, en la variable pain_time guardamos el tiempo actual. Después de un rato en el bucle principal restableceremos la animación estándar de correr. De este modo, nuestro personaje reacciona correctamente después de recibir un tiro.
Resumen
out.setLength(0.03f);
getFarValue());
76
S
triangle.getNormal();
end.normalize(); end = start + (end * camera->
S
level_selector, end, triangle))
->getTarget() - start); start += end*5.0f;
S
nivel. Si le alcanzamos, querremos llamar a una animación adecuada. La visualización de dar en el blanco la inicia el comando:
->getTime();
Espero que esta presentación de la librería anime a los Lectores a experimentar. Los ejemplos adjuntos a la distribución Irrlicht son una buena lectura. También querría recomendar familiarizarse con el proyecto IrrlichtNX. Los autores introdujeron numerosas correcciones al código de Irrlicht y añadieron posibilidades nuevas. Aunque la nueva versión está solamente disponible a través de CVS, podemos aprovechar las nuevas posibilidades antes de la publicación de la versión oficial de la librería.
Enlaces: • •
Página principal de la librería Irrlicht: http://irlicht.sourceforge.net Versión especial de Irrlicht, provista en correcciones y ampliaciones en comparación con la versión original: http://www.irrlichtnx.mmdevel.de
tests
tests
Creative Zen Xtra
Creative Zen Xtra Piotr Truszkowski
A
lo mejor, todos los aficionados al mundo del sonido conocen ya la empresa Creative. No es extraño que, en la era del verdadero boom de los reproductores portátiles de MP3, Creative también quiera ofrecer algo propio. Sus competidores son muy fuertes, pues para cumplir con las exigencias del mercado y de los posibles clientes, el producto tiene que ser de alta calidad. ¿Es Creative Zen Xtra una receta del éxito? Cuando me entregaron este reproductor para probarlo estuve muy cómodo con él. Un diseño modesto, materias de alta calidad... No obstante, después de usarlo más de una semana, me convencí de que las apariencias engañaban. El diablo está en los detalles: en el caso de Zen es casi un infierno.
El manejo intuitivo es importante
Lo primero en que fijamos la atención cuando compramos este tipo de reproductor es su uso. Queremos sacar nuestro dispositivo de la caja, conectarlo al ordenador, copiar de él un poco de música y empezar a escuchar. Estas tareas no deben proporcionarnos problemas, pero la navegación sí hará. Hace ya mucho tiempo que no veía
Figura 1. Zen Xtra en todo su esplendor
un dispositivo con un manejo tan difícil y tan poco intuitivo. Por suerte, el fabricante adjuntó instrucciones de uso, pero, ¿realmente se trata de esto cuando nos referimos a reproductores portátiles MP3? ¿Por qué se nos obliga a leer las instrucciones? Además, el reproductor pesa mucho. No me comprendáis mal. Creative Zen Xtra no es un mal reproductor. Tiene sus ventajas. La primera: soporta nuestro sistema operativo preferido. La segunda: la capacidad del disco del reproductor. Disponemos de 60 GB, que podemos llenar tanto con unos ficheros de sonido, como con datos corrientes. Creative Zen Xtra soporta los formatos de ficheros de sonido más populares: MP3, WMA y AV. El mecanismo EAX proporciona efectos interesantes. Falta el soporte para el formato Ogg Vorbis, lo que supone un defecto. Podemos grabar los ficheros que necesitemos del disco duro con la ayuda del protocolo USB 1.1/2.0. En este caso, la velocidad sí que es satisfactoria.
Linux
Al principio una mala noticia: Creative Zen, como otros reproductores de este tipo producidos por la empresa Creative, no tiene los drivers oficiales para Linux. Es más, el representante de Creative dijo que no había drivers así y no los habría. ¿Por qué? Porque la comunidad los escribirá de todas formas. Esto no necesita comentarios: efectivamente, la comunidad los escribió. Además, el intercambio de ficheros de Creative Zen Xtra en el sistema Linux, basado en los drivers abiertos, funciona de modo más estable que con los drivers del fabricante en el sistema Windows. Cada una de las distribuciones actuales de Linux debe trabajar sin problemas con nuestro Zen. Necesitamos la librería libnjb, que es responsable de la comunicación entre todos los reproductores tipo Creative Jukebox y nuestro Linux. Para transferir los datos vale la pena usar el programa Gnomad2, cuyo manejo no nos proporcionará ningún problema. Después de instalar el software citado (./configure; make;
Desventajas: – – – – –
tamaño menú manejo faltan drivers oficiales falta soporte para el formato Ogg Vorbis
Ventajas: – –
capacidad del disco EAX
make install),
conectamos nuestro reproductor, reiniciamos el mecanismo hotplug (comando /etc/init.d/hotplug restart) y activamos la aplicación Gnomad2. A la izquierda se hallan nuestros recursos locales y a la derecha el contenido del disco de nuestro Zen.
¿Bueno? ¿Malo?
Es hora de hacer un resumen. Creative Zen Xtra es un reproductor portátil de música muy mediocre. No está mal, pero, con la competencia actual en el mercado, un diseño bonito no es suficiente para vender el producto. Zen no nos sorprende y su manejo es muy incómodo. El dispositivo puede tratarse como un disco duro portátil, pero pagar unos 360 euros por el disco duro para USB es un precio bastante elevado. Además, la actitud del fabricante en la cuestión de los drivers para otras plataformas distintas a Windows causa una muy mala impresión. Con impaciencia espero la nueva versión de este dispositivo, sin los defectos antes descritos. Calificación: 2+/5
En Internet: • •
Página principal de la librería Libnjb: http://libnjb.sf.net/ Página principal del programa Gnomad2: http://gnomad2.sf.net/
www.lpmagazine.org
77
tests
SUSE Linux 9.2 Professional Piotr Truszkowski
S
USE Linux es una distribución que por el momento no se ha adaptado en todos los hogares europeos. Quizás por la política de la empresa y por los elevados precios del producto. Actualmente, el propietario de la firma es la empresa Novell. Gracias a ello se cambió el sistema de emisión para las versiones posteriores, y ahora la empresa pretende conquistar el mercado de los ordenadores personales.
¿Qué hay de nuevo?
En SUSE Linux 9.2 Professional tenemos varias novedades: kernel 2.6.8 con diferentes correcciones que incrementan su funcionalidad, X.org 6.8.1, GCC 3.3.4 y glibc 2.3.3, KDE 3.3, así como las versiones más recientes de drivers y aplicaciones. Además, nos viene la versión demo del programa comercial para la edición de grabaciones de vídeo – Main Actor. Asimismo, es importante mencionar los
módulos adicionales en el programa YaST (centro gestor de SUSE Linux), me refiero a IrDA y Bluetooth. Gracias a ellos la comunicación entre nuestro sistema y los dispositivos periféricos se llevará a cabo sin problemas. Se ha mejorado el soporte para la red WLAN y los ordenadores portátiles.
Muy fácil
Comenzamos nuestra aventura con el sistema a partir de la instalación. Aquí vemos inmediatamente la habilidad artística con la que fue preparado el marco gráfico del instalador. El proceso de instalación es muy fácil. No hace falta que comente que todo el hardware fue reconocido sin el menor problema – siempre ha sido así en SUSE.
Primera ejecución
Después de la instalación nos sube el ánimo y sólo podemos afirmar una
cosa - ¡qué hermoso! Nunca antes había visto tanto detalle y cuidado en una distribución. Simplemente hay que verlo. Probé el sistema en un ordenador con procesador AMD AthlonXP 2600+, 512MB RAM, tarjeta gráfica nVidia y tarjeta de sonido Sound Blaster Live! 5.1 Digital. Todo el hardware fue reconocido y configurado correctamente a excepción de...
¿Qué pasa con el sonido?
Puesto que en casa tengo un grupo de altavoces en estándar 4.1, me preguntaba si sería posible escuchar los cuatro a la vez. En las ediciones anteriores tuve problemas para configurar el sonido de cuatro canales. SUSE Linux 9.2 no me sorprendió. El sonido, desgraciadamente, sólo lo obtuve en dos de los cuatro altavoces. Es una gran incomodidad, principalemente porque bajo otra popular distribución de Linux (Mandrakelinux), incluso en otra menos popular que utilizo ahora (Gentoo Linux), no tuve ningún problema de esta índole. Para obtener sonido en todos los altavoces tuve que fatigarme muchísimo. ¿No podrían configurarlo para que funcione sin problemas?
¡GNOME está servido!
Figura 1. Simplemente SUSE
78
Linux+ 1/2005
Cada usuario de SUSE está acostumbrado al entorno gráfico KDE. No es ningún secreto que la empresa apoya fuertemente a los creadores de este popular entorno gráfico; gracias a ello todas las novedades llegan primero a SUSE Linux. GNOME, como entorno gráfico, siempre ha sido tratado peor. La mayor competencia de SUSE, la empresa Red Hat, se decidió por GNOME, pero SUSE lo hizo por KDE. ¿Decisión atinada? Creo que es mejor no discutir sobre el tema, pero sí decir que a causa de estas acciones GNOME distribuido por SUSE deja una impresión de insatisfacción. Esta vez es un poco mejor. Lástima que en la distribución se encuentra la
tests
SUSE Linux 9.2 Professional
Desventajas: – –
GNOME - versión 2.6.2 problemas con el sonido espacial
Ventajas: – – – – – – – –
acabado por completo rapidez estabilidad innovador reconocimiento del hardware fácil de instalar y usar soporte multilingüe presentación gráfica
fuentes de la empresa Microsoft. Segundos después tenemos delante de nosotros la licencia de este software, que, o bien aceptamos o rechazamos.
En Internet
Figura 2. También se encuentra GNOME
versión 2.6.2 y no la versión 2.8 (disponible desde hace algún tiempo). En cambio KDE fue y sigue siendo una obra de arte en SUSE.
Software licenciado
En el nuevo SUSE Linux se ha empleado un interesante mecanismo de instalación de aplicaciones, las cuales no pueden encontrarse en los CDs con la distribución por razones de licencia. Nos referimos
a los drivers de las tarjetas con chipsets de la empresa nVidia y a los fuentes de la empresa Microsoft. Si poseemos, por ejemplo, una tarjeta gráfica con chipset de la empresa nVidia, entonces abrimos el centro de control YaST, vamos al módulo de actualización del sistema y elegimos actualización manual. En la lista de aplicaciones encontramos los drivers nVidia preparados especialmente para SUSE Linux. Ocurre lo mismo con los
Todos sabemos que Linux es una espléndida plataforma para trabajar en red. Resistente a todo tipo de virus que atormentan al sistema Windows; seguridad y estabilidad son sólo algunas de sus ventajas. Estos elementos en SUSE tienen carácter primordial. Aparte de las aplicaciones estándares para el soporte de los beneficios de la red (Mozilla Firefox, Opera, Mensajería instantánea), también encontramos software como Ximian Evolution 2. Es un paquete parecido al programa Microsoft Outlook, que permite, entre otras opciones, la lectura de correspondencia, la planificación de actividades y mucho más. SUSE Linux es la primera distribución que conozco en introducir Evolution - versión 2. Los partidarios del entorno gráfico KDE también encontrarán algo para ellos - Kontact, un producto que en funcionalidad le pisa los talones a su hermano mayor (Evolution).
¿Lo compro o no?
Por supuesto que sí. Actualmente no hay otra distribución de Linux en el mercado más detallada y lograda que ésta. Novell creó una obra de arte. SUSE Linux 9.2 tiene muchas probabilidades de dominar el mercado mundial, así como hizo con el mercado europeo. Valoración: 4+/5
En Internet: • Figura 3. YaST tiene dos módulos nuevos
Página principal de SUSE Linux: http://www.suse.com/
www.lpmagazine.org
79
tests
Gericom EGO 1560 XL
tests
Gericom EGO 1560 XL Piotr Truszkowski
L
a empresa Gericom se dedica a la producción de ordenadores portátiles baratos destinados a las personas con un nivel adquisitivo medio. Por esta razón, en esta reseña, voy a presentar el ordenador de Gericom desde el punto de vista de la utilidad para un usuario corriente que no exige mucho. El EGO 1560 XL pretende ser algo más. Gericom quiere que este modelo sea la herramienta principal para las personas que al tomar la decisión de comprar un portátil no se fijan tanto en el precio. ¿Ha sido una jugada oportuna? ¿Es EGO 1560 XL un portátil digno de interés?
¿Linux?
Como una de las ventajas de este ordenador portátil podemos sin duda enumerar su compatibilidad con las distribuciones más populares de Linux. Para probar este ordenador portátil he usado las distribuciones de Linux siguientes: Aurox Linux 10.0, Fedora Core y Gentoo. No hubo ningún problema con la detección y soporte de tarjeta gráfica, tarjeta de sonido, ratón táctil ni ratón normal conectado por USB. Todo ha sido configurado correctamente y ha funcionado idealmente. Solamente la distribución Mandrakelinux 10.1 no quiso
cooperar ya desde el nivel de instalador. Un error grave del productor, teniendo en cuenta que Mandrakelinux es una de las más utilizadas distribuciones de Linux del mundo. Aparte de la cuestión de Mandrakelinux, este modelo de portátil sería un regalo estupendo para todos los usuarios del sistema con pingüino en escudo, si no fuera por un detalle...
No funciona
La mayor y única desventaja de este modelo es su unidad de CD. Por fuera todo parece correcto. El Combo, o sea, la grabadora de CD y DVD, da velocidades de lectura y de grabación satisfactorias. Promete mucho, pero ya al segundo día de pruebas aparecieron problemas con la lectura de discos. Presenté el problema y el portátil ante un servicio autorizado donde le cambiaron la unidad. Sin embargo, el problema no ha desaparecido. No pude probar más distribuciones sólo porque no pude instalarlas. Es un defecto que en mi opinión degrada esta unidad de CD al nivel mediocre de un dispositivo no name hecho en Taiwán. Por culpa de este elemento, el portátil pierde mucho.
Resumen
80
Linux+ 1/2005
• • • • • •
Procesador: Intel Pentium M 1,5 GHz Pantalla: 15" Unidad: Combo DVD-R/CD-RW Acelerador gráfico: ATI MOBILITY RADEON 9700 64 MB Almacenamiento: 60 GB Memoria RAM: 512MB
lado, tiene un equipamiento muy avanzado, una matriz LCD de alta calidad, un funcionamiento tranquilo y silencioso, una cooperación correcta con la mayoría de las distribuciones más populares. Sin embargo, carece de un apoyo para Mandrakelinux 10.1, y su unidad combo es defectuosa. Si no fuera por el precio, que es excesivo, podría aconsejar su compra a las personas que necesitan un ordenador silencioso para conectarse a Internet. Sin embargo, por este precio, aun se puede considerar la compra de otro modelo con mayores prestaciones. El surtido es enorme. Nota: 2+/5
Pero se calienta poco
El elemento que toman en consideración todos los que compran un portátil es el tiempo de funcionamiento autónomo. Con la instalación estándar de la distribución Fedora Core 2, EGO 1560 XL ha trabajado durante 4 horas. Es mucho tiempo. Seguramente, si afináramos bien la distribución, funcionaría incluso más. Vale la pena fijarse en que apenas emite calor y el trabajo con él es muy silencioso. Como si fuera un dispositivo de alta gama.
Figura 1. Gericom EGO 1560 XL
Especificaciones técnicas:
Gericom EGO 1560 XL es un ordenador portátil lleno de contradicciones. Por un
Desventajas: – – –
unidad combo precio problemas con la instalación de Mandrakelinux 10.1
Ventajas: – – –
trabajo silencioso compatibilidad con la mayoría de las distribuciones populares matriz LCD de alta calidad