linux+ dvd 2

84

Upload: linuxes-spain

Post on 15-Mar-2016

276 views

Category:

Documents


13 download

DESCRIPTION

Blender: una expedición a la tercera dimensión El visualizador de consola de archivos gráfcos Linux en el estudio de grabación

TRANSCRIPT

Page 1: LiNUX+ DVD 2
Page 2: LiNUX+ DVD 2
Page 3: LiNUX+ DVD 2
Page 4: LiNUX+ DVD 2

2 Linux+ 2/2004

índice

6

16

18

20

21

14

El primer paso ya lo dimos

22

26

Krzysztof KrawczykRedactor Jefe Linux+

Este es el segundo número de la re-

vista ”Linux+”, la úni-ca revista sobre Li-nux con dos discos DVD, que se puede adquirir en 13 países de Europa (ahora también en Italia).

El primer número, según nuestras infor-maciones, os ha gustado mucho y estáis muy contentos de que haya aparecido en el mercado.

¿Qué os hemos preparado esta vez? El tema de este número son los multimedia, y más exactamente se trata de la creación

Descripción del contenido de DVDsPiotr Truszkowski

NovedadesKrzysztof Krawczyk, Witold Kieraś El núcleo LinuxMaja Królikowska

DebianGrzegorz Prokopski

MandrakeDaniel Koć

AuroxJarosław Górny

GentooJarosław Świerad, Witold Kieraś

KDEPaweł Biliński

de sonido. Desde hace mucho se sabe que para Linux son disponibles muchos programas de este ramo (http://www.linux-sound.org/ ), pero ahora también se pueden utilizar profesionalmente. Nuestra redacción tiene el propósito de ayudar a una de las estaciones locales de radioa pasarse a Linux: de seguro escribi-remos sobre esto.

Os animo a leer este número y os pido vuestra opinión sobre el tema de la revista. El próximo Linux+ aparecerá en noviem-bre, así que nos encontraremos de nuevo dentro de dos meses.

Actualidades:

En este número de :

linux

fresh

gnom

e

kde

GNOMEMateusz Papiernik

24

28 LinuxFreshPiotr Machej

JuegosWitold Kieraś, Krzysztof Krawczyk

34

Trucos y truquillosGrzegorz Niewęgłowski

36

Bimestral Linux+ está publicado por Software-Wydawnictwo Sp. z o. o. Producción: Monika Godlewska [email protected] jefe: Krzysztof Krawczyk [email protected] adjuntos: Piotr Truszkowski, [email protected] Kieraś, [email protected] de Redacción: Katarzyna Gajewska, [email protected] Kuran, [email protected]ón de DVDs: Krzysztof Krawczyk, Piotr TruszkowskiDiseño portada: Agnieszka MarchockaPublicidad: [email protected]ón: [email protected]ón y composición: Marcin Ziółkowski [email protected]ón: Paulina Stosik, Mariusz Muszak, Roberto Buchting Soza, Hanna Grafik-KrzymińskaCorrectores: Rosario Ortega Serrano, Fernando Escudero García, Andoni del Olmo, David Aranda Alonso, Jorge Barrio Alfonso, Mario Plasencia OrtegaDistribución: SGELAvda Valdelaparra, No29, Polígono Industrial, 28108 Alcobendas (Madrid), España

Dirección: Software–Wydawnictwo Sp. z o.o., ul. Lewartowskiego 6, 00-190 Varsovia, Polonia

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. 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 decomposición automática

Imprenta: KENGRAF

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.

Page 5: LiNUX+ DVD 2

3www.lpmagazine.org

índice

Entrevista con Ton Roosendaal, fundador de Blender FoundationWitold Kieraś

Si no fuera por la entrega de Ton Roosen-daal, Blender, superprograma para la cre-ación de gráficos 3D, sería recordado como uno de estos programas comerciales que defraudaron las esperanzas que se pusie-ron en ellos. Precisamente por su iniciativa se creó la organización Blender Foundation, que recogió los fondos necesarios para dar acceso a la fuente de este programa y su consiguiente desarrollo por la comunidad Open Source. Decidimos conversar con él y darnos cuenta de algunas cosas.

Primeros pasos

Blender: una expedición a la tercera dimensión Piotr Machej

En Windows los gráficos 3D por lo gene-ral se realizan en el programa 3ds max. Su equivalente en Linux es Blender. Con ayuda de este segundo programa se pueden hacer preciosísimas imágenes y espléndidas animaciones. Todo el que quiera conocer los secretos de trabajar con este programa, debería familiarizarse con el artículo de Piotr, que paso a paso enseña cómo generar una imagen de ejemplo.

Multimedia

Linux en el estudio de grabaciónPaweł Wolniewicz

Las siguientes aplicaciones de Linux son cada vez mejor recibidas. Así es en el caso de lo multimedia. Ahora mismo se puede usar con éxito nuestro sistema operativo en el estudio de grabación. Paweł presenta qué hardware y software son necesarios para este objetivo y nos enseña a cómo con-figurarlos y usarlos. Se centra en el servi-dor del sonido JACK y en las aplicaciones MuSE y Ardour.

Entrevistas

Entrevista con Eric S. Raymond, presidente de la Open Source InitiativeWitold Kieraś

Si tuviéramos que señalar a la persona que más frecuentemente se asocia a Linux,ésta sería, sin lugar a dudas, Linus Torvalds. Si habláramos de Software Libre sería posiblemente Richard M. Stallman. Y ¿quién sería en el caso de Open Source? Eric S. Raymond creo que no es tan conocido como las dos personas mencio-nadas anteriormente, pero él es, precisa-mente, el presidente de Open Source Initiative. Decidimos conocer más de cerca su opinión sobre diferentes temas.

42

Equipo

ACPI – gestión de energía en Linux Piotr Wolny

Frecuentemente dejamos encendidos nuestros ordenadores domésticos duran-te todo el día, incluso cuando no traba-jamos en ellos. Todo esto, sin embargo ,cuesta: el contador de la energía eléctrica no se detiene. Precisamente entonces pueden ser de ayuda los mecanismos de administración de energía accesibles en ACPI, que no se han diseñado única y exclusivamente para ordenadores por-tátiles. Piotr os enseñará cómo suspender el procesador cuando no se usa y, además, cómo disminuir su frecuencia con Over-Clocking.

Para programadores

El visualizador de consola de archivos gráficosMarek Sawerwain

Rara vez hacemos uso del framebuf-fer, si tenemos a nuestra disposición el entorno gráfico de trabajo, como KDE o GNOME. Sin embargo, cuando estamos “condenados” al modo textual, resultan ser muy necesarias las herramientas escri-tas para el framebuffer. En este artículo veremos cómo escribir un sencillo visuali-zador de archivos gráficos desde la conso-la textual. Marek nos ayudará a entender cómo funciona todo esto.

Buena lectura

The Art of Unix Programming

Red Hat Linux and Fedora UnleashedWitold Kieraś, Krzysztof Krawczyk

Tema del número Multimedia

38

40

52

62

72

80

Page 6: LiNUX+ DVD 2

¡Pide suscripción!LiNUX+ por suscripción es más barata:

86 €Si tienes preguntas, problemas o dudas,

escribe a: [email protected]

Precio de suscripción anual (12 números) de LiNUX+ – 86 €

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: [email protected]

Pedido

Nombre(s) Apellido(s)

Dirección

C. P. Localidad, provincia

Teléfono Fax

E-mail Suscripción a partir del N°

REGALO

¡En cada número 2 DVDs!

Realizo el pago con: □ tarjeta de crédito nO Válida hasta Fecha y firma obligatorios:

□ cheque a la dirección de la editorial Software-WydawnictwoDeseo recibir la factura antes de realizar el pago □

¡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.

Page 7: LiNUX+ DVD 2

En caso de problemas con los DVDs, escribir a: [email protected]

Los DVDs están disponibles únicamente en la versión de Linux+ DVD

Page 8: LiNUX+ DVD 2

disco Aaktualnościdescripción de DVDs

Noticias

6 Linux+ 2/2004

Skype 0.90¿Tu también tienes la impresión de que tus recibos teléfonicos son muy altos? Si es así, entonces por qué no utilizar ... Internet. Skype es un programa que funciona de la misma forma que ICQ, pero dedicado a las conversaciones de voz. ¿A lo mejor ya es el momento de comenzar a conversar a través de Internet? Esto no cuesta nada. En el disco encontraréis la versión más nueva del programa presentado, en paquetes RPM, así como en un paquete estático ejecutable.http://www.skype.org/

nVidia 1.0-6106La última versión de los controladores de las tarjetas gráficas apoyados en los chipsets de la empresa nVidia. El soporte de las tarjetas con los chips GeForce 6800, ayuda a la distribución con el núcleo de una pila menor (entre otros, Fedora Core 2) y con la ayuda añadida para ACPI, son sólo algunas de las novedades. Con toda seguridad vale la pena instalarlos en nuestro sistema, si poseemos la tarjeta con el chipset de la empresa nVidia.http://www.nvidia.com/

Opera 7.52Al navegador de Internet Opera se le conoce como el más rápido navegador del mundo. La razón de esta afirmación puede ser tema de una larga discusión, pero hay que reconocer que Opera es actualmente uno de los mejores navegadores de web. Gracias a sus atractivas soluciones, el gratuito acceso a la versión completa desde la página del fabricante (con los anuncios) y a las versiones para diferentes sistemas operativos (Opera es accesible, entre otras, para las plataformas Windows, Linux, Solaris, QNX, OS/2, MacOS, FreeBSD i386, BeOS), este navegador ha obtenido reconocimiento de gran parte de los usuarios en todo el mundo. Si te parece bien utilizar Mozzila y los navegadores derivados de él, te enfada Konqueror y no puedes decidir qué escoger, entonces escoge Opera. Te garantizamos que quedarás contento.http://www.opera.com/

DocumentaciónEl conjunto de documentos HOWTO: una ayuda inestimable para cada usuario, no sólo principiante, de Linux. Merece la pena conocerlos.http://www.tldp.org/

Linux+ Live DVD

Linux+ Live DVD es una distribución de Linux iniciada del DVD. No exige

su instalación en el disco duro y puede funcionar independientemente del siste-ma operativo ya instalado. Para iniciar Linux+ Live, es suficiente en la BIOS del ordenador dar la unidad de DVD como la herramienta básica de arranque, in-troducir el disco de nuestra distribución en la unidad y volver a iniciar el orde-nador. Después de breves instantes, ante nuestros ojos aparecerá el panel de bienvenida. El sistema automáticamente detectará nuestro equipo y configurará el entorno gráfico. Durante el inicio hay que escoger todavía el lenguaje obligatorio en el sistema. Linux+ Live contiene entre otros:

• el núcleo de Linux 2.6.6 con muchos parches que aumentan su funcionali-dad;

• el entorno gráfico KDE 3.2.1;• el software Blender, SuperKaramba

y TuxKarts.

Linux+ Live tiene como objetivo la pre-sentación de los programas descritos en el número.

Por ejemplo, para hacer uso de los be-neficios del programa Pic_View, descrito en este número por Marek Sawerwain,

es necesario iniciar el sistema con la utilización del framebuffer. Para hacer esto, después de aparecer el panel de bienvenida, escribimos fb1024 y pulsa-mos [Enter]. El sistema se inicia en el modo textual. Nos registramos como usuario aurox sin contraseña (cuando nos pregunten por la contraseña, pul-samos [Enter]. Para iniciar Pic_View, nos vamos al directorio adecuado (cd /home/aurox/Pic_View) e iniciamos nuestro visualizador: ./picview logo.png. Debe-ría aparecer una imagen que, al mismo tiempo, es el logotipo de nuestras pági-nas web. Desgraciadamente, en algunos ordenadores el framebuffer no funciona correctamente...

Linux+ Live DVD es una estupenda ocasión para presentar a Linux en su entorno. Teniendo contigo el disco de la distribución de Linux, puedes hacer uso de ella en cualquier lugar donde tengas acceso a un ordenador. ¡Que te diviertas!

Linux+ Live

Para arrancar Linux+ Live DVD,iniciamos el ordenador del DVD B,que acompaña a la revista, escri-bimos aurox y pulsamos [Enter ] .Para arrancar Linux+ Live conel soporte del framebuffer, escri-bimos fb1024 y pulsamos [Enter ] .

Page 9: LiNUX+ DVD 2

7www.lpmagazine.org

disco A descripción de DVDs

MPlayer 1.0pre4 + codecsMPlayer es una de las mejores – no sólo de Linux - “máquinas combinadas” multimedia. Permite ver películas, escuchar música, grabar discos DVD a diferentes formatos populares de las películas y mucho más. En el disco encontraréis también un conjunto de diferentes códigos de compresión, gracias a los cuales podréis ver cualquier película sin ningún problema. Además, hemos incluido un conjunto de las más diferentes “máscaras”, que os permitirán cambiar el aspecto de Mplayer.http://www.mplayerhq.hu/

Linux 2.6.7La última estable versión del núcleo del sistema. Mejor soporte para los chipsets nForce, multimedia y, además, la correción de muchos errores es un impulso suficiente para actualizar nuestro núcleo del sistema. Especialmente para vosotros hemos incluido también parches para el núcleo presentado, aumentando así su funcionalidad.http://www.kernel.org/

DVBLos drivers para tarjetas que permiten captar para Linux la televisión digital.http://www.linuxtv.org/

Flash Player 7El último plug-in de Linux para Flash, destinado al navegador de Internet Mozilla (y a los navegadores parecidos: Firefox y Galeon). Konqueror, el navegador predefinido en el entorno KDE, también puede usar este plug-in.http://www.macromedia.com/

Suplementos para KDE y GNOMESuperKaramba es un programa para KDE, que permite aprovechar los así llamados temas: scripts escritos en Python que desarrollan las funcionalidades de nuestro escritorio, p.e. visualizan el estado del tiempo en un lugar determinado del mundo o las últimas noticias de las páginas web que hayamos elegido. Por otro lado, GDesklets es SuperKaramba para el entorno GNOME. En nuestro disco presentamos una amplia colección de temas, tanto para SuperKaramba, como para GDesklets, facilitados por sus autores, entre otras posibilidades, en las páginas: http://ww.kde-look.org/ http://www.gnome-look.org/.http://netdragon.sourceforge.net/http://gdesklets.gnomedesktop.org/

Linux From Scratch

Linux From Scratch (LFS) es un proyecto para crear la documentación completa

de la construcción del sistema Linux des-de el principio, en orden, compilando sus elementos fundamentales, tales como glibc, binutils, gcc o el núcleo. LFS Book, porque así se llama el producto abanderado de este proyecto, describe detalladamente todas las fases de este proceso, dando ejemplos, aclarando los pormenores de las opciones de la configuración y prediciendo los erro-res que más frecuentemente aparecerán. LFS es también un conjunto de fuentes de compilación, probadas por los creadores del proyecto y revisadas por un mutuo acuerdo. LFS es, sobre todo, una comuni-dad concentrada alrededor de las listas y grupos de discusiones y, además, de los canales IRC, donde se puede encontrar ayuda en cuestiones tanto básicas como también de un nivel más avanzado.

LFS Book es accesible en tres versiones: stable, testing y unstable, completamen-te igual a las distribuciones de Linux. Igualmente existen varios proyectos de traducción, entre otros al francés, español y alemán, además de al ruso y al chino.

El documento Beyond LFS trata del mantenimiento y del desarrollo futuro de LFS; entre otros, del servidor de los X y de los entornos gráficos más importantes (KDE o GNOME).

Pero, ¿con qué objetivo se puede pa-sar por un proceso penoso de desarrollo del sistema, si alguien ya lo ha hecho en vez de nosotros? Por eso, precisamente se distribuye Linux como una distri-bución; para ahorrar trastornos a los usuarios. Los autores de LFS no com-parten esta opinión. La construcción del sistema por sí misma es ante todo una buena oportunidad para aprender: no hay mejor modo para enterarse de cómo colaboran los componentes particulares del sistema, de verificarlo por sí mis-mo, pero vigilado por un maestro con experiencia. LFS Book es un maestro así y lo es también el sistema entero de ayuda que ofrece este proyecto. Por fin, el usuario principiante no está solo.

En nuestro disco encontraréis, sobre todo diferentes versiones de LFS Book y LFS Packages – del conjunto de las fuentes necesarias para el desaro-llo del sistema. Además, tenéis tam-bién nuevas versiones de los núcleos (en la versión 2.4.x, así como 2.6.x), del compilador GCC y de las librerías glibc (en la versión con CVS), además de parches extras creados para el proyecto LFS. Si quieres saber exactamente qué sucede con tu Linux familiar, LFS es para ti.

Creado con LFS

Page 10: LiNUX+ DVD 2

descripción de DVDs

8

disco A

Linux+ 2/2004

Debian GNU/Linux 3.0r2 – Woody

Debian GNU/Linux es una de las más conocidas y más respetadas distribuciones de Linux. Se originó en el

año 1994 como un proyecto creado por voluntarios de todo el mundo, unidos por un contrato social de Debian: no está detrás de ellos ninguna empresa. Debian es un símbolo de calidad, infalibilidad y seguridad. Sus developers ponen en primer lugar la calidad del software y la comodidad de su administración. Gracias a sus cualidades, Debian es la distribución más frecuentemente escogida como base para la creación de nuevas distribuciones especializadas, como por ejemplo la distribución que cuenta con un gran éxito, Knoppix.

En este número de Linux+ hemos incluido en el DVD Debian en la versión 3.0r2: esta es la única estable versión ofi-cial (de nombre de código Woody) con correcciones de seguridad. No contiene nuevos paquetes, pero está muy bien testeada y es perfecta como un sistema para servidores o también como base para un sistema de escritorio, que pode-mos actualizar con nuevos paquetes desde Internet (de la rama inestable) con ayuda de Apt. Debido a que el trabajo con la siguiente versión de nombre Sarge se retrasa y que queremos poner en vues-tras manos versiones de prueba, hemos considerado que vale la pena presentaros Debian, precisamente, en la forma de Woody corregido.

Para instalar Debian Woody, en BIOS configuramos la unidad DVD como la herramienta básica de arranque, y después arrancamos el ordenador desde el DVD. Al principio, escogemos el núcleo escribiendo su nombre después de boot: para escoger tenemos vanilla, compact, idepci, bf24 (recomendamos esta última opción, ya que se refiere al núcleo 2.4). Después, escogemos el len-guaje y pasamos al menú principal del instalador. Definimos el teclado como qwerty/es: Spain, y con ayuda del pro-grama cfdisk creamos la partición para Debian (sobre todo / y swap, pero tam-bién vale la pena designar una partición aparte para el directorio /home). Después de salir de cddisk, activamos la partición

Así puede verse vuestro Woody

swap y preparamos para montar las par-ticiones de Linux. El paso siguiente es la instalación del núcleo y de sus módulos, y la configuración de dichos módulos. Sobre todo debemos tomar en cuenta la selección de los drivers adecuados para la tarjeta de red.

Los módulos del núcleo utilizados con más frecuencia son: los drivers de las tarjetas de redes ( /kernel/drivers/net), los drivers de las tarjetas de sonido ( /kernel/drivers/sound), los drivers de las tarjetas de vídeo ( /kernel/drivers/media/video) y los de los puertos paralelos (LPT) ( /kernel/drivers/parport). Luego configuramos la red: damos el nombre de nuestro ordenador y seleccionamos la configuración automática de las inter-faces de red o, manualmente, escibimos la dirección IP del ordenador, la máscara de la subred, el gateway, nombre del dominio y la dirección IP del servidor DNS.

Ahora comenzará la instalación del sistema base: el proceso de instalación puede seguir en la cuarta consola.

La última etapa es la intalación y la configuración de LILO y la creación del disquette de arranque. Cuando lo haga-mos, sacamos el DVD de la unidad y reini-ciamos el ordenador.

Después de arrancar el ordenador,tenemos ya el sistema básico funcionando. El instalador nos pregunta si el reloj del ordenador está establecido en GMT. Debe-mos todavía indicar la región y la capital del país. Luego queda la creación de las cuentas y de las contraseñas del adminis-trador y de los usuarios.

En este momento podemos instalar los siguientes paquetes del disco: señalamos el DVD como la fuente de los paquetes, lo escaneamos y escogemos los paquetes que necesitamos. En el caso de algunos paquetes, tendremos que responder a las preguntas que se refieren a su configura-ción. Puede suceder que algunos paquetes no puedan instalarse o configurarse por primera vez. El instalador preguntará si volver a intentar: aceptamos, y probable-mente esta vez todo saldrá correctamente. Después de instalar todos los paquetes, nos registramos en el sistema.

Tenemos la esperanza de que nuestra edición DVD de Woody, aunque sea sólo un poco, os endulzará la espera de Sarge. Entre tanto, se puede actualizar la rama estable de una de las dos desarrolladas: testing (Sarge) o unstable (Sid).

http://www.debian.org/

Page 11: LiNUX+ DVD 2

descripción de DVDs

9www.lpmagazine.org

disco B

Gentoo Linux 2004.1 DVD

Gentoo Linux es una distribu-ción relativamente joven, pero muy dinámicamente creciente de Linux. La prin-

cipal cualidad de este sistema, que diferen-cia Gentoo Linux de todas otras distribu-ciones, es la forma de tratar de sus autores el asunto de la instalación del software. En el Gentoo tradicional no encontraremos aplicaciones precompiladas: tendremos que compilarlo todo solos. Antes de que pienses: “no, esto no es para mí”, te pedi-ría, querido Lector, que me escuches hasta el final. Los beneficios que obtenemos por la compilación manual de los paquetes y de su adecuación a nuestro equipo tienen decididamente más ventajas que desventajas. También hay que señalar que el proceso de compilación del software es en Gentoo totalmente automático. Las actuales distribuciones de Linux se basan en paquetes, que alguien ya compiló para ti en su ordenador, según sus gustos. ¿Te gustaría que tu sistema fuera construido de acuerdo a tus necesidades o a las necesidades de otro? ¿ Te gustaría que fun-cionara realmente rápido, aprovechando tu equipo al máximo? Y finalmente, ¿te gustaría despojarte de todo este relajo que se llama “búsqueda en Internet de los paquetes que cumplen la dependencia de un paquete del otro y de un tercero”? Si tu respuesta a dos de estas preguntas ha sido afirmativa, entonces Gentoo puede que resulte ser la distribución con la que te quedarás verdaderemente contento.

Antes de instalaciónLa instalación de Gentoo la comenzare-mos desde el inicio del ordenador con el

disco DVD B, adjunto a este número de Linux+. Aparecerá la pantalla de bienve-nida. Después de pulsar [F2] veremos la pantalla de selección de las opciones (hay que escribirlas sin comas, por ejemplo gentoo noacp nousb y acerptarlas pul-sando [Enter]). Después de haber realizado la selección adecuada, se inicia Gentoo Live, desde donde iniciaremos nuestra intalación. Lo primero que vale la pena hacer es el cambio de la contraseña de root durante la instalación para que podamos, en caso necesario, pasar a otras consolas virtuales. Damos el comando passwd y dos veces escribimos nuestra contraseña: no tiene ninguna importancia (la contraseña para el administrador del sistema la define-remos más tarde), pero es muy importante que la recordemos durante la instalación. Después, preparamos las particiones del disco duro. Nos concentramos en la siguiente división: la partición principal (/), la partición con los directorios princi-pales de los usuarios ( /home) y la partición swap. Para crear las particiones hacemos uso del programa cfdisk, conocido por los usuarios de Debian y Slackware: cfdisk /dev/hdX. En este caso hdX es el símbolo de nuestro disco duro. Aceptamos la con-vención de que nuestro disco es /dev/hda, y las particiones creadas se verán de la siguiente manera:

• /dev/hda1 – área de intercambio swap; el principio general dice que designa-mos para ella tanto lugar en el disco duro cuanta memoria RAM tengamos; en el caso del ordenador de casa no tiene ningún sentido que esta partición tenga más de 256 MB;

Figura 1. Gentoo 2004.1 durante el inicio

¡Atención! Instalación de Gentoo desde otra distribución de LinuxPodemos instalar Gentoo desde otra dis-tribución de Linux. Con este fin dejamos el paso para el arranque del ordenador desde el DVD. El resto del procedi-miento es idéntico, es decir, creamos una partición aparte y en ella el sistema de archivos, después descomprimimos stage1 en la nueva partición, copiamos portage-L+.tar.bz2 al directorio /usr ini-ciado como resultado de descomprimir stage1 y, luego, los archivos del directo-rio /distfiles/base presentes en el disco. Montamos el sistema de archivos /proc y ejecutamos chroot en la nueva parti-ción creada. Después, continuamos de acuerdo a las instrucciones del artículo. El método de la instalación desde otra distribución es tan cómodo que no nos exige interrumpir nuestro trabajo. Debe-mos, sin embargo, tomar en cuenta la carga del sistema, así que no recomen-damos este método a las personas que tengan un procesador lento y con poca memoria RAM.

Page 12: LiNUX+ DVD 2

10

descripción de DVDs

Linux+ 2/2004

• /dev/hda2 – la partición principal /; sería bueno atribuir para ella 3 GB (o más);

• /dev/hda3 – la partición /home; su dimen-sión depende únicamente de las necesi-dades y posibilidades del usuario.

Recordemos que a la partición /dev/hda1 hay que darle el tipo swap (Type -> 82), y a la particion /dev/hda2 señalarla como bootable (Bootable). Guardamos el sistema de las particiones escogiendo la opción Write y salimos del programa (Quit).

El siguiente paso será la creación de la partición de intercambio: mkswap /dev/hda1.

Después de crear la partición de inter-cambio llega la hora de crear los sistemas de archivos. Gentoo nos ofrece en este lugar, entre otros, Ext2, Ext3, ReiserFS, JFS y XFS.

Mirando los grupos de discusiones y leyendo los foros de Gentoo, se puede encontrar una opinión muy buena sobre XFS, así que nos centraremos precisa-mente en él:

mkfs.xfs /dev/hda2 ; mkfs.xfs /dev/hda3

Si en estas particiones anteriormente fue creado algún sistema de archivos, es necesario obligar al cambio con la opción -f. Incluimos ahora a la acción el área de intercambio swap.

swapon /dev/hda1

Debemos montar igualmente las particio-nes creadas / y /home:

mount /dev/hda2 /mnt/gentoo

mkdir /mnt/gentoo/home

mount /dev/hda3 /mnt/gentoo/home

Para poder comenzar el trabajo con la ins-talación adecuada del sistema, debemos descomprimir los archivos que nos son necesarios:

cd /mnt/gentoo

tar -xvjpf /mnt/cdrom/stages/S

stage1-x86-2004.1.tar.bz2

cp /mnt/cdrom/portage/portage-L+.S

tar.bz2 /mnt/gentoo/usr/

cd /mnt/gentoo/usr

tar - xvjpf portage-L+.tar.bz2

rm portage-L+.tar.bz2

El Gentoo preparado por la redacción de Linux+ no exige conexión a Inter-net. Para instalar los paquetes nece-sarios, debemos copiar el contenido del directorio /mnt/cdrom/distfiles/base/ (allí se encuentran los archivos necesarios para la instalación básica del sistema) al direc-torio /mnt/gentoo/usr/portage/distfiles/:

cp -prv /mnt/cdrom/distfiles/base/* S

/mnt/gentoo/usr/portage/distfiles/

cuando ya hemos copiado estos archivos, debemos montar el sistema /proc. Lo hace-mos con ayuda del comando:

cd /

mount -t proc none /mnt/gentoo/proc

Ha llegado la hora de comenzar la insta-lación adecuada del sistema. Utilizamos para ello el mecanismo chroot, que nos permite simular nuestro nuevo entorno:

chroot /mnt/gentoo/ /bin/bash

env-update

source /etc/profile

InstalaciónGentoo se diferencia de la mayoría de otras distribuciones de Linux en que todo el software se compila desde las fuentes; gracias a esto tenemos la posibilidad de una adecuada adaptación del software a nuestro equipo. El archivo make.conf es responsable de la opción de compilación, actualmente en el directorio /etc. Todos los programas compilados por nosotros harán uso de las configuraciones que incluimos precisamente en este archivo. Para ajustar el archivo make.conf a nuestras necesidades, debemos agregar flags para el compilador. Su lista básica se halla en el recuadro Confi-guración de make.conf.

Después de haber agregado flags a nuestro ordenador, podemos construir el fundamento necesario para seguir con el trabajo. Sirve a este fin el script bootstrap.sh,

Configuración de make.conf

Pentium III (Intel)CHOST="i686-pc-linux-gnu"CFLAGS="-march=pentium3 -Os

-pipe -fomit-frame-pointer"CXXFLAGS="-march=pentium3 -Os

-pipe -fomit-frame-pointer"

Celeron (Coppermine) aka Celeron2 (Intel)

CHOST="i686-pc-linux-gnu"CFLAGS="-march=pentium3 -Os

-pipe -fomit-frame-pointer"CXXFLAGS="-march=pentium3 -Os

-pipe -fomit-frame-pointer"

Pentium 4 (Intel)CHOST="i686-pc-linux-gnu"CFLAGS="-march=pentium4 -Os

-pipe -fomit-frame-pointer"CXXFLAGS="-march=pentium4 -Os

-pipe -fomit-frame-pointer"

Athlon XP (AMD)CHOST="i686-pc-linux-gnu"CFLAGS="-march=athlon-xp -Os

-pipe -fomit-frame-pointer"CXXFLAGS="-march=athlon-xp -Os

-pipe -fomit-frame-pointer"

¡Atención! Instalación desde los paquetes binariosPara hacer uso de los paquetes binarios (incluidos en nuestro DVD en el direc-torio /distfiles/binary), hay que ejecutar las siguientes operaciones: iniciar el ordenador con el DVD, crear la partición y el sistema de archivos para ella, des-comprimir de nuevo la partición creada stage3, copiar portage-L+.tar.bz2 al directorio /mnt/gentoo/usr, creado como resultado stage3 en la nueva partición, descomprimir portage-L+.tar.bz2, copiar el contenido presente en el disco del directorio /mnt/cdrom/distfiles/binary/* al directorio /mnt/gentoo/usr/portage/packages en la nueva partición (mkdir /mnt/gentoo/usr/portage/packages ;

cp -r /mnt/cdrom/distfiles/binary/*

/mnt/gentoo/usr/portage/packages), copiar el contenido presente en el disco del directorio /mnt/cdrom/distfiles/base/* al /mnt/gentoo/usr/portage/distfiles (cp /mnt/cdrom/distfiles/base/* /mnt/

gentoo/usr/portage/distfiles), ejecu-tar chroot en la nueva partición y instalar el núcleo (sh kernel.sh).

Más tarde, para instalar los paquetes binarios, damos el comando emerge -k

nombre _ paquete (por ejemplo, emerge -k kde). La lista del software está en el directorio /usr/portage/packages/All. Cuando hayamos instalado todos los paquetes binarios necesarios y configu-rado el programa de arranque, podemos reiniciar el sistema.

En caso de problemas con el kernel 2.6.5 precompilado, merece la pena instalar el kernel 2.4.26 desde las fuentes: emerge genkernel, emerge

gentoo-sources y genkernel --install --bootsplash all. El kernel será automá-ticamente compilado e instalado.

Page 13: LiNUX+ DVD 2

11

descripción de DVDsgentoo 2004.1

www.lpmagazine.org

presente en el directorio /usr/portage/scripts/. Este proceso es totalmente automático y, según la rapidez de nuestro equipo, puede durar de 30 minutos a varias horas. Inicia-mos el script:

sh /usr/portage/scripts/bootstrap.sh

Podemos ahora dar un largo paseo, ver alguna película, leer un libro o, lo que sería la mejor solución, dedicarle nuestra aten-ción a este número de la revista Linux+.

Después de terminar la construcción del fundamento de la siguiente intalación, damos el comando ln -sf /usr/share/

zoneinfo/Europe/Madrid /etc/localtime.Ya podemos construir el sistema básico.

Para ello, usamos el programa Emerge, que es una herramienta para la administración de paquetes en el sistema Gentoo Linux. Al principio, podemos ejecutar el comando emerge -pv system, que nos visualiza qué es lo que será instalado. Finalmente hace-

mos uso de emerge system para iniciar la instalación. Lo mejor es realizar esta opera-ción por la noche, cuando nos preparamos a dormir. Por la mañana nuestro sistema básico estará ya listo.

Instalación del núcleoTenemos dos núcleos del sistema para escoger:

• gentoo-dev-sources 2.6.7-r8 – el núcleo más nuevo de la serie 2.6.x en el momento de escribir este artículo, enriquecido con muchos parches que aumentan su uso;

• gentoo-sources 2.4.26-r3 – núcleo de la serie 2.4.x, enriquecido con muchas facilidades de los núcleos de la serie 2.6.x; ésta es precisamente la versión de la que nos encargaremos en la siguiente parte del artículo.

Instalemos las fuentes del núcleo que hemos escogido. En nuestro caso será gentoo-sour-ces 2.4.26-r3: emerge gentoo-sources.

Si no nos sentimos con fuerza para compilar el núcleo del sistema manual-mente, los creadores de Gentoo también han pensado en nosotros. Para compilar el núcleo, podemos también utilizar el script genkernel, que construye el núcleo en nues-tro lugar. Si lo queremos construir solos, entonces el procedimiento es el siguiente: cd /usr/src/linux/, make menuconfig, make dep, make bzImage, make modules, make modules _ install. Nos concentraremos, sin embargo, en la instalación del núcleo con ayuda del script genkernel. Al prin-cipio, instalémoslo en el sistema: emerge genkernel.

Las más importantes opciones del script están presentadas en el recuadro Opciones escogidas del script genkernel. Por tanto:

genkernel --menuconfig --bootsplash S

--install all

Después de un corto instante se inicia el configurador del núcleo. Podemos cambiar algunas de las configuraciones propuestas por genkernel (vale la pena poner atención en el soporte del sis-tema de los archivos que está iniciado en el núcleo). Si no queremos cambiar nada, escogemos Exit, respondemos afirmativamente a la pregunta de si guardamos la configuración del núcleo y regresamos a la lectura de Linux+. La compilación del núcleo y de todos los

módulos va a tardar todavía un largo momento. Después de la compilación del núcleo merece la pena instalar el paquete hotplug, el cual durante el inicio carga los módulos que no fueron descubiertos por initrd: emerge hotplug.

Para que hotplug se inicie durante el arranque del sistema, escribimos: rc-

update add hotplug default.

Selección del logger del sistemaLa siguiente etapa de la instalación es la selección del visualizador de eventos del sistema: sysklogd, syslog-ng o metalog. Esco-gemos uno de ellos y lo agregamos a los scripts de inicio, por ejemplo:

emerge sysklogd

rc-update add sysklogd default

Ahora, debemos decidirnos por una de las versiones crond. Para seleccionar tenemos: dcron y fcron. Como ejemplo, podemos ejecutar:

emerge dcron

crontab /etc/crontab

rc-update add dcron default

Si poseemos módem, debemos instalar el paquete rp-pppoe: emerge rp-pppoe. Por lo general, rp -pppoe se compila con la ayuda de los X (que dura mucho). Pero si tenemos prisa y preferimos compilar los X más tarde, podemos dar el comando:

USE=”-X” emerge rp-pppoe

EmergeEmerge es el programa que es respon-sable por la instalación, actualización y eliminación de software. Ejemplos de su uso:

• emerge paquete – instala el paquete escogido;

• emerge -s paquete – busca un paquete dado;

• emerge -S frase – busca una frase dada en toda la base de los paquetes (esto puede durar mucho tiempo);

• emerge -pv paquete – el paquete no será instalado pero se visualiza-rán sus dependencias y su tamaño contado;

• emerge -C nombre del archivo – elimina un paquete escogido (Ojo: en este nivel no se revisan las dependencias);

• emerge -DU nombre del paquete – actualiza el paquete;

• emerge -DU world – actualiza todo el sistema.

Si queremos ver qué paquetes están disponibles para la instalación, vamos al directorio /usr/portage/. Se encuentran ahí todas las categorías de los paquetes (por ejemplo, net-p2p, o sea, programas de intercambio de archivos en Internet). En estas categorías se encuentran los directorios que señalan un determinado programa (por ejemplo, /usr/portage/net-p2p/mldonkey/).

Opciones escogidas del script genkernel

Sintax: genkernel [opción] comandoComando:

• all – construye todo el núcleo

Opciones:

• --bootsplash – instala el efectivo bootsplash de inicio;

• --install – instala el núcleo des-pués de su compilación;

• --no-install – no instala el núcleo después de su compilación;

• --max-kernel-size= – el máximo tamaño del núcleo (en kilobytes);

• --max-initrd-size= – el máximo tamaño del initrd (en kilobytes);

• --max-kernel-and-initrd-size= – las dos opciones anteriores en una.

Page 14: LiNUX+ DVD 2

12

descripción de DVDs

Linux+ 2/2004

Edición del archivo fstabEncarguémonos ahora del archivo fstab para preparar nuestras particiones para funcionar después del reinicio del sistema: nano -w /etc/fstab.

Los autores de Gentoo nos hicieron ya la configuracion básica, así que su ajuste a nuestras necesidades se limita a dar todas las unidades y sistemas de archivos presentes en las particiones. Para nuestra instalación el archivo fstab se verá más o menos como en el Listado 1.

Después de preparar el archivo fstab, es hora de establecer la contraseña del root en el sistema: passwd.

El sistema pide escribir la contraseña y su repetición para verificarlo. Como ya establecimos la contraseña de administración, creamos ahora al usua-rio:

useradd nombre del usuario -m -G S

users,wheel,audio -s /bin/bash

Ahora démosle la contraseña:

passwd nombre del usuario

después debemos nombrar el ordenador. Digamos que lo definimos simplemente como gentoo:

echo gentoo.local > /etc/hostname

La siguiente actividad será preparar el archivo /etc/hosts con el ejemplo del nombre gentoo. Damos el comando: nano -w /etc/hosts y agregamos las anotaciones correspondientes

127.0.0.1 localhost.localdomain localhost

192.168.1.112 gentoo.local gentoo

Configuración de la red y del programa de cargaSi tenemos la conexión a Internet, ejecuta-mos la configuración de la red:

nano -w /etc/conf.d/net

nano -w /etc/resolv.conf

rc-update add net.eth0 default

Nos queda solamente la instalación del programa de carga, que nos per-mitirá escoger el sistema a cargar durante el inicio del ordenador. Paraescoger tenemos los dos más populares: GRUB y LILO. Recomen-damos el primero, ya que tiene

mayores posibilidades, seguridad y mu-chas facilidades en relación al yaantiguo LILO:

emerge grub

Después de instalar GRUB, es hora de su activación: grub.

Debemos ahora establecer unas cuantas cosas. La primera de ellas será la declaración de nuestra partición con el núcleo del sistema. Hay que recor-dar que GRUB significa partición de una forma específica, numerándolas desde cero, por ejemplo, la partición hda3 en la configuración GRUB se llama (hd0,2), y la particion hdb5: (hd1,4). Debido a que, en nuestro caso, el núcleo se encuentra en la par-tición /, señalada como /dev/hda2, escri-bimos:

root (hd0,1)

Después de ejecutar la acción ante-rior, el sistema nos debería decir que ha encontrado un sistema de archi-vos igual al que habíamos supuesto en la partición dada. Si no recibi-mos este comunicado u obtene-mos error, significa que hemos introducido mal los datos. Recibimos la lista de las posibilidades de las anotaciones después de pulsar la tecla [Tab].

Listado 1. Ejemplo del archivo /etc/fstab

/dev/hda1 swap swap sw 0 0

/dev/hda2 / xfs noatime 0 0

/dev/hda3 /home xfs noatime 0 0

/dev/cdrom /mnt/cdrom iso9660 S

noauto,user,ro 0 0

proc /proc proc defaults 0 0

/dev/shm /dev/shm tmpfs defaults 0 0

Gentoo españolLa creación de la versión española de Gentoo no es difícil. Se limita a las siguientes acciones:

– cambio en el archivo /etc/make.conf (nano -w /etc/make.conf) – debemos agregar la variable LINGUAS="es";

– cambio en /etc/rc.conf (nano -w /etc/rc.conf) – KEYMAP="es", CONSOLEFONT=”lat9w-16”

– CONSOLETRANSLATION="8859-1_to_uni", CLOCK="local";

– cambio en /etc/env.d/00basic (nano -w /etc/env.d/00basic) – agrega-mos: LC_ALL="es_ES", LANG="es_ES".

Después de reiniciar el equipo, Gentoo debería tener los caracteres españoles en la consola del sistema, y así con la mayoría de los programas podremos entendernos en español.

Figura 2. Gentoo 2004.1 listo

Page 15: LiNUX+ DVD 2

13

descripción de DVDsgentoo 2004.1

www.lpmagazine.org

Si queremos que nuestro bootloader se instale en el MBR de nuestro disco (así lo hace en la mayoría de las distribuciones), escribimos:

setup (hd0)

quit

Ahora configuramos el archivo /boot/grub/grub.conf, que es responsable por la posición en el menú de selección del sistema después del inicio del ordenador. Un contenido de ejemplo se encuentra en el Listado 2.

Nos queda dar el comando: ln -s

/boot/grub/grub.conf /boot/grub/

menu.lst.Después de ejecutar esta opera-

ción, todavía tenemos que actualizar los módulos con el comando: modules-update, y después salir del entorno chroot y desmontar el sistema de archi-vos:

exit

cd /

umount /mnt/gentoo/proc

umount /mnt/gentoo/home

umount /mnt/gentoo

Nuestro Gentoo ha sido instalado. Reini-ciamos el ordenador: reboot.

Instalación de otro softwarePara instalar cualquier programa, debe-mos hacer uso del programa Emerge. Hallaréis su pequeña descripción en el recuadro Emerge.

Gentoo hace uso de los mecanismos de los puertos (ejemplificado en las soluciones conocidas de FreeBSD). ¿Qué son los puertos? Hablando de la forma más sencilla, es un árbol de directorios, dividido en categorías. Los nombres de los directorios son, al mismo tiempo, nombres de los programas. Y ¿cómo es en la realidad? Vamos al directorio /usr/portage/. Tenemos allí categorías, entre otras, app-office, games-action, net-p2p. Los mencionados directorios con-tienen subdirectorios. En el caso de los juegos games-action: chromium, glaxium, trackballs, tuxkart. Si quisiéramos ins-talar alguno de los juegos de acción, encontraremos su lista precisamente en el directorio games-action. Supongamos que queremos instalar chromium. Escri-bamos, pues, como usuario root: emerge chromium. Lo mismo hacemos durante la instalación de cualquier otro pro-grama. Si a emerge le agregamos el parámetro -pv (emerge -pv), aparecerán los paquetes dependientes, que serán instalados con chromium (emerge -pv

chromium).El sistema que obtendréis con este

número de Linux+, permite instalar Gentoo sin necesidad de tener acceso a Internet. Para hacer uso de los paquetes fuentes presentes en nuestro DVD, hay que agregar al archivo /etc/make.conf la variable DISTDIR=/mnt/dvd/distfiles/full, donde /mnt/dvd es el punto de montaje de nuestra unidad DVD.

Entorno gráfico de GentooEl entorno gráfico escogido lo instala-mos con ayuda del comando emerge. Para instalar KDE, damos el comando emerge kde, y para instalar GNOME: emerge gnome. Para obtener la lista de los paquetes que serán instalados aña-dimos -pv, por ejemplo, emerge -pv kde nos mostrará qué paquetes serán ins-talados durante la instalación KDE. Después de compilar el entorno gráfico, hay que ejecutar todavía el comando: env-update, etc-update, source /etc/

profile.Si nos decidimos a instalar KDE

y queremos, que se comunique con noso-tros en español, debemos primero ver

si en el archivo /etc/make.conf tenemos anotada la variable LINGUAS=”es”; si es así entonces damos el comando: emerge kde-i18n.

Después de instalar el entorno grá-fico, nos registramos como usuario root y damos el comando kdm (en KDE) o gdm (en GNOME).

Un asunto aparte son los flags USE. Después de dar el comando emerge -pv nombre _ paquete, a la derecha obtene-mos otros flags señalados en verde, con los que podemos compilar el paquete. Para iniciar, por ejemplo, el uso del DVD en el programa k3b, escribimos: USE="dvd" emerge k3b. Si queremos que todos los programas que poseen flag dvd se compilen automáticamente con esta opción, sin necesidad de introdu-cirlo cada vez en la línea de comandos, debemos agregar USE=”dvd” al archivo /etc/make.conf. Si queremos agregar más flags, entonces los separamos con espacios, por ejemplo: USE=”dvd java

alsa”.

Para terminarNos queda solamente desearte, querido Lector, muchos momentos de felicidad con Gentoo. En el disco se encuentra la documentación perfecta (en formatos PDF, HTML y TXT), que, paso a paso, y de una forma accesible, te presen-tará el tema, tomado a partir de esta descripción. Se puede hacer uso de ella durante la instalación pasando a la segunda consola textual ([Alt]+[F2]) y abriendo, por ejemplo, los documentos HTML con ayuda del navegador textual links.

En caso de encontrarnos con algún problema, la forma más rápida de resolverlo es acudiendo a los forosde discusión presentes en la página http://forums.gentoo.org/, en la secciónespañola.

Listado 2. Archivo de ejemplo /boot/grub/grub.conf

title=Gentoo

root (hd0,1)

kernel (hd0,1)/boot/kernel-2.4.26-S

gentoo-r3 root=/dev/ram0 S

init=/linuxrc real_root=/dev/hda2S

ramdisk=8192 vga=0x317 splash=verbose

initrd (hd0,1)/boot/initrd-2.4.26-S gentoo-r3

Figura 3. En Gentoo se puede hallar todo lo que hay en otras distribuciones de Linux

En Internet:• Página Web Gentoo Linux: http://www.gentoo.org/• Oficial foro de discusión Gentoo: http://forums.gentoo.org/• Información sobre software para

Gentoo: http://www.gentoo-portage.com/• Notificación de errores: http://www.brakemygentoo.net/

Page 16: LiNUX+ DVD 2

novedadesaktualnościactualidades

Noticias

14 Linux+ 2/2004

Slackware 10.0Ya apareció la nueva versión de la distribución Slackware Linux, muy popular entre los usuarios avanzados de Linux, pero no es sólo eso. Hemos hallado en ella muchas novedades, entre otros, el núcleo 2.4.26 (disponible también 2.6.7), el kit de compiladores GCC 3.3.4 (disponible también 3.4.0), el servidor del entorno gráfico X11R6.7.0 (X.Org), el navegador Mozilla 1.7 y los entornos gráficos GNOME 2.6.1 y KDE 3.2.3. La lista completa de las modificaciones está disponible en el sitio del proyecto. Las imágenes de los discos están para descargar a través de la red BitTorrent. http://www.slackware.org/

Halloween XI: Get the FUDEl portal Newsforge publicó recientemente un artículo muy interesante de Eric Raymond, donde el autor, basándose en la campaña Get the Facts iniciada hace poco por Microsoft en Gran Bretaña, se dedicó a estudiar los cambios en la retórica del gigante de Redmond, analizó su nueva estrategia frente a Open Source e intentó prever sus próximas actuaciones. Eric constata que para MS la coexistencia pacífica de sus productos y del Software Libre no es aceptable y, por consiguiente, es inevitable la confrontación. En cuanto a la retórica, el cambio consiste en renunciar a la táctica de llamar a Open Source "el cáncer que devora la propiedad intelectual": por el momento MS encomienda este tipo de actividades a sus subcontratistas, por ejemplo, SCO, y renuncia a las afirmaciones de la superioridad técnica de los productos de MS; ahora se habla más bien del coste de la migración hacia el Software Libre. Eric prevé que dentro de dos próximos años MS seguirá atacando al Open Source sin excusas de manera nunca vista hasta ahora. Su arma potencial son, entre otras, junk patents (patentes para las soluciones más sencillas y banales), así como el estrechamiento de la alianza con las organizaciones del tipo RIAA. MS puede también recurrir a los informes "patrocinados", por ejemplo, que Open Source es una facilidad para los terroristas. Todo esto ya se conoce, pero esta vez, MS puede atacar de verdad con fuerza. http://software.newsforge.com/software/04/06/22/1440213.shtml?tid=150&tid=82

SUSE en Bergen, Noruega

La implementación del sistema Linux en las regiones de Europa, Oriente

Próximo y África, sobre todo en el sec-tor público, acelera su ritmo: la empresa Novell informó que la administración de la segunda ciudad en Noruega, Bergen, migrará su infraestructura hacia las tec-nologías Linux de Novell y renunciará a las plataformas cerradas Unix y Microsoft Windows. Las autoridades de la ciudad de Bergen implementarán el sistema SUSE LINUX Enterprise Server 8 en dos fases; la operación impactará a 50.000 usuarios de la administración e instituciones edu-cativas de la ciudad.

La implementación incluye los siste-mas IBM y HP. En primer lugar, 20 servi-dores de las bases de datos Oracle con los sistemas HP-UX operativos actualmente encargados, entre otros, de las aplicacio-nes básicas relacionadas con los servicios sanitarios y sociales, serán reemplazados por los servidores HP Integrity Itanium 64 bits con el sistema SUSE LINUX Enterprise Server 8.

En la segunda fase de la implementa-ción tendrá lugar la migración y la conso-lidación de 100 servidores de aplicaciones presentes con la aplicación Microsoft Win-dows en las que está basada la red edu-cativa de Bergen. Éstos serán cambiados por 20 servidores estables IBM de cinta escalables con el sistema SUSE LINUX Enterprise Server 8. La solución IBM eServer BladeCenter asegurará el poder

de cálculo máximo por metro cuadrado; IBM proveerá también la red de memoria masiva. La red educativa de la ciudad de Bergen es utilizada por 32.000 estudiantes y 4.000 profesores.

La implementación tiene que estar acabada a finales del 2004 y generar econo-mías significantes. Gracias a esto se podrá asignar más recursos al desarrollo de los servicios públicos para los habitantes de Bergen.

http://www.visitbergen.com/

Bergen, Noruega

CELF anuncia la primera especificación y la implementación de referencia

La organización CE Linux Forum (CELF) fue fundada en junio de

2003 por las ocho empresas más grandes, fabricantes de la electrónica de consumo (Panasonic, Sony, Hitachi, NEC, Philips, Samsung, Sharp y Toshiba). En este momen-to más de 50 empresas son sus miembros. La misión de CELF es la promoción de la aplicación de Linux en los dispositivos electrónicos digitales.

29 de junio de 2004, después de más de un año de trabajo, CELF publicó los primeros resultados de su actividad: la especificación y la implementación de los dispositivos electrónicos basados en

Linux. Es el sumario de los estudios de varios grupos de proyectos integrantes de CELF y del acuerdo al que llegaron los miembros de la organización. Los asun-tos principales son: la cuestión del tiempo necesario para el arranque y cierre de los dispositivos, la problemática vinculada con el ahorro de energía (bajo consumo de potencia), las funciones audiovisuales (búfer de marco), capacidades de tiempo real, requisitos de memoria (sistemas de archivos comprimidos, como cramfs) y la seguridad.

http://www.celinuxforum.org/

Page 17: LiNUX+ DVD 2

[email protected]

15www.lpmagazine.org

sección llevada por Krzysztof Krawczyk

Superordenadores bajo LinuxCuando se completaba la lista de los quinientos ordenadores más rápidos del mundo, ninguno de los gigantes listados funcionaba bajo Linux. Sin embargo, hoy en día más de la mayoría trabaja con el sistema simbolizado por el pingüino. Eso es debido al hecho de que muchos de los ordenadores más rápidos son clusters en los que Linux funciona perfectamente. Por ejemplo, entre 287 superordenadores Intel, 243 son clusters y casi todos corren bajo Linux. Los especialistas prevén que en los próximos años Linux dominará completamente la lista de las quinientas mayores máquinas.http://www.top500.org/

Lagarto en NokiaNokia invirtió en el mercado de los navegadores web para los teléfonos móviles, pero en vez de producir su propia versión comercial de la aplicación, recurrió a financiar a Mozilla Foundation. La empresa no quiere dar a conocer qué cantidad de dinero transfirió a la fundación. El mercado de los llamados móviles inteligentes crece muy deprisa, y hasta ahora Microsoft era el mejor preparado para hacerle frente a este fenómeno. Sin embargo, el mercado de los sistemas operativos para los smartphones se vio amenazado muy peligrosamente por Symbian, una iniciativa común de, entre otros, Nokia, Sony Ericsson y Siemens. Ahora llegó la época de los navegadores: aún más nos alegra la elección de Mozilla, por la que apuesta el gigante celular.

Nuevo récord de rendimiento de los sistemas Linux no clusterLas empresas Oracle y Novell informaron sobre un nuevo récord del rendimiento de la base de datos Oracle10g en la prueba TPC-C. El entorno de test integraba la base de datos Oracle 10g, el sistema operativo Novell SUSE LINUX Enterprise Server 9 y el servidor NEC Express5800/1320Xd con 32 procesadores Intel Itanium 2 1,5 Ghz, dotados de 6 MB de memoria inmediata de tercer nivel. Esta configuración alcanzó un resultado impresionante: 683575 tpmC (transacciones por minuto) con la relación precio/rendimiento igual a 5,99 USD/tpmC. Vale la pena anotar que esta configuración del hardware superó a la plataforma Microsoft operante en los mismos equipos. Los resultados obtenidos por Oracle bajo Linux fueron: 609,467 tpmC y 6,78 USD/tpmC y fueron un 5% mejores en cuanto a la eficacia y un 12% en cuanto al precio por transacción en comparación con Microsoft SQL Server Enterprise Edition y Windows Server 2003 Datacenter Edition.

Escritorios tridimensionales

Durante el congreso anual de pro-gramación, JavaOne, la empresa

Sun Microsystems presentó su proyecto llamado Looking Glass que tiene como ob-jetivo la creación de un entorno gráfico tridimensional. El proyecto está basado en Linux y desarrollado sobre todo en Java. Sun anunció también que el proyecto será desarrollado bajo la licencia GPL. El autor del proyecto es Hideya Kawahara que afirma ser miembro entregado a la comu-nidad Linux.

Looking Glass ya en esta etapa es im-presionante, aunque por el momento no es de uso común; se puede contemplar en las capturas de pantalla y en las demos disponibles en el sitio del proyecto. Al mismo tiempo la idea del escritorio tridi-mensional desde los principios suscitaba muchas controversias. La pregunta es: para qué son estas ventanas de tan buen aspecto que devoran, lamentablemente, tantos recursos y que podemos girar en todas las direcciones, siempre teniendo en cuenta que esto de ningún modo aumenta la funcionalidad de nuestro es-critorio. ¿Para qué la tercera dimensión por el precio del retraso en el funcio-namiento de nuestros ordenadores? ¿Es que esto vale la pena? Estos reproches los conocemos ya de los debates intermina-bles entre los partidarios de los gestores de ventanas “light”, como por ejemplo, Fluxbox o Window Maker y los aficio-nados a los grandes entornos gráficos como GNOME o KDE. Con toda segu-ridad habrá quienes migrarán hacia los escritorios tridimensionales por pu-ro deseo de novedad y otros quienes, independientemente de todo, se queda-rán con sus gestores de ventanas tradi-cionales. Parece que éste será un buen motivo para empezar una nueva guerra santa.

El autor de la idea de Looking Glass, Hideya Kawahara, preguntado por sus motivaciones para estar involucrado en este proyecto, dice que es la hora de que el mundo Linux promueva nuevas solu-ciones en los escritorios en vez de copiar las funcionalidades de Windows que no han cambiado mucho desde las pri-meras versiones del sistema. Looking Glass debe ser, según confirma, el reto lanzado a los fabricantes de software de escritorio.

Un poco después de la presentación del escritorio tridimensional por Sun y de anunciar que será desarrollado en Open Source, apareció la primera ver-sión (con el número 0.3.0) de un proyecto muy parecido llamado Metisse que es parte del proyecto de investigación In Situ, desarrollado en colaboración con National de Recherche en Informatique et en Automatique y Laboratoire de Recherche en Informatique de l'Université Paris-Sud. El proyecto In Situ tiene como objetivo la creación de las bases para la cons-trucción de una nueva generación de entornos de trabajo interactivos. Metisse aprovecha la librería OpenGL y también, la versión modificada del gestor FVWM . El proyecto es accesible bajo la licencia GPL, y no hay mucha más información sobre el tema.

¿Viviremos entonces la revolución tri-dimensional en los escritorios o estos pro-yectos morirán, dado el escaso interés por parte de la comunidad? La respuesta no la conoceremos hasta dentro de algunos me-ses, cuando los desarrolladores facilitarán probablemente la primera versión “usual” de sus proyectos.

http://lg3d.dev.java.net/ http://insitu.lri.fr/~chapuis/metisse/ Looking Glass...

... y Metisse

Page 18: LiNUX+ DVD 2

el núcleo Linuxaktualnościactualidades

Noticias

16 Linux+ 2/2004

¡No lo hagas!Desde hace algún tiempo en Linux es accesible el mecanismo hotplug PCI que permite añadir a la máquina los dispositivos PCI sin la necesidad de cerrar el sistema. Merece la pena recordar que funciona tan sólo en una dirección: se pueden añadir dispositivos pero no se pueden extraer cuando el sistema sigue funcionando. Este comportamiento puede causar problemas. No se trata de un error de la capa PCI hotplug de Linux, ya que los mismos drivers deberían comprobar que no hay errores a la hora de comunicarse con el dispositivo. No todos los drivers lo hacen, al menos por el momento. Por este motivo lo mejor en este caso es tener cuidado.http://lwn.net/Articles/88810/

GFS en la licencia GPLRed Hat Global File System, junto con la infraestructura adicional de cúmulos de Red Hat fue editado a finales de junio bajo la licencia de GPL. GFS fue creado y vendido por la empresa Red Hat y es un sistema de archivos de cúmulos que permite una lectura y escritura eficaces a muchos servidores que pertenecen a la misma red de SAN. Esta forma de dar licencias para GFS es el principio de los esfuerzos para incluir este sistema en la línea principal del kernel. Antes de que esto suceda, se necesitan nuevos desarrolladores.http://kerneltrap.org/node/view/3348

UML en 2.6User Mode Linux fue incluido en la versión principal de Linux durante el desarrollo de la serie 2.5. Jeff Dike, el responsable de este proyecto, seguía insistiendo y esforzándose en que el UML del kernel fuera actual. El UML a partir de la versión estable dejó de compilarse correctamente, por lo tanto, no se permite su empleo. Andrew Morton, que se ocupa de la introducción de las novedades, aseguró que lo mejoraría, con tal de que Dike realizara los cambios que harían que User Mode Linux fuera compatible con el kernel actual de la serie 2.6. Podemos esperar que pronto el UML en 2.6 vuelva a funcionar correctamente.http://user-mode-linux.sourceforge.net/http://kerneltrap.org/node/view/3355

Perfección de ordenación de procesos

Uno de los mayores miedos de los developers del kernel de la serie 2.6

era el planificador (ing. scheduler). En un principio podemos destacar dos causas de su debilidad: la primera es la necesidad de actuar en la máquina de multiprocesadores de varias arquitecturas de estos procesado-res (sobre todo, NUMA); la segunda radica en tratar de forma poco adecuada las tareas interactivas. El primer problema deberían solucionarlo los dominios de ordenación, y el segundo hasta ahora se ha solventado mediante todo tipo de parches de interacti-vidad. Por el momento, no hemos oído que-jas sobre el planificador en las versiones de Linux posteriores a la serie 2.6 .

Gracias a varios parches, sobre todo en los procesos, la ordenación funciona muy bien. Sin embargo, el algoritmo es muy complicado. Una gran parte del código res-ponsable de la mejora de la interactividad es confusa y, mucho peor, incluye muchas constantes mágicas y cálculos extraños. Es-te problema fue ya señalado mucho antes por los developers. Decían en el grupo de noticias linux-kernel que, a pesar de una mejora del funcionamiento del sistema, no creen en la efectividad de la introducción de cambios heurísticos y detallados, y no algorítmicos. La respuesta a tales críticas, como una forma muy elegante de solucio-nar el problema de interactividad, puede llegar a ser el staircase scheduler, creado por Con Colivas, uno de los suministradores más importantes de los fragmentos del algoritmo de ordenación de los procesos relacionados con la interactividad.

Staircase scheduler (Planificador por escalones) es una solución cuyo atributo principal tiene que ser la sencillez. El mismo tamaño del parche - en la versión 2.6.7 se han eliminado 600 líneas y se han añadido tan sólo 250 - nos permite tener esa esperanza. Muchas de estas líneas que se han eliminado son los mencionados cálculos poco claros que incluyen unas constantes extrañas.

El código preparado por Con Kolivas no es nada revolucionario, todo es parecido a los estándares elaborados hace ya tiempo, incluye tan sólo una modificación, pero que es muy moderna. Al principio todo parece suceder como antes: los procesos relacio-nados con un procesador determinado se guardan en una tabla y su orden depende primero de las prioridades asignadas (en-tonces están en su turno las prioridades).

En la solución actualmente existente, los procesos que emplean su quantum de tiem-po del procesador son transferidos a otra tabla (turno) y es allí donde esperan hasta que se sirvan todos los demás procesos del turno de prioridades, y precisamente en ese momento se puede asignarles el quantum que sigue el tiempo del procesador. En la solución descrita aquí desaparece ese turno especial de procesos que han caducado: todos los procesos esperan su quantum de tiempo de la misma tabla. Después de emplear su quantum de tiempo, el proceso llega otra vez al mismo turno, aunque con una prioridad de grado inferior. Después de emplear el quantum de tiempo que sigue, su prioridad sigue bajando. En el momento en que la prioridad baja totalmente, el proceso vuelve a su turno, ya que es un proceso con una prioridad inferior a la anterior máxima, no obstante, obtiene dos quanta en vez de uno. En la iteración que torna, que aquí significa volver a bajar, hay tres quanta, etc. Este proceso se parece a la acción de bajar por la escalera, de ahí viene el nombre del mecanismo.

En cada una de las excursiones por las prioridades, el proceso emplea igual canti-dad de tiempo. No obstante, se han guarda-do prioridades relativas a los procesos: su disminución en las iteraciones que siguen se compensa con la prolongación del tiempo del procesador, recibida por el proceso. Los procesos que se quedan en estado de coma durante mucho tiempo, que está determina-do, luego despiertan y llegan a su prioridad máxima, es decir, a la inicial. Gracias a ello los procesos interactivos que duermen a menudo, se encuentran normalmente en la cumbre de la escalera y tienen una priori-dad bastante alta, y los que requieren mu-cho tiempo del procesador suelen viajar con paciencia por la escalera con prioridades bajas. La descripción expuesta emplea cier-ta propiedad de los procesos interactivos y extrae provecho de esta propiedad para sus propios fines, no obligando a hacer cál-culos mágicos de prioridades.

La nueva ordenación de procesos no va a ser incluida en la serie 2.6 de Linux, solamente podemos esperar que aparezca en la versión 2.7. La sencillez de la idea es cautivadora, ya que precisamente este tipo de soluciones alegran más a los verdaderos hackers.http://lwn.net/Articles/86957/http://ck.kolivas.org/patches/2.6/

Page 19: LiNUX+ DVD 2

[email protected]

17www.lpmagazine.org

sección llevada por Maja Królikowska

Buscamos erroresUna gran parte de los errores que se siguen encontrando y corrigiendo en Linux son errores de programación que son el resultado de un insuficiente esmero durante la creación del código. Al menos una parte de estos errores se pueden prevenir gracias al análisis estático del código. Una parte de este análisis se realiza por el mismo compilador, pero normalmente no es suficiente. Por lo tanto, merece la pena usar diferentes herramientas. Un ejemplo de tal analizador es Stanford Checker, del cual se dice que es una herramienta perfecta, pero no es un proyecto abierto. Una alternativa libre de esta aplicación fue creada por el mismo Linus Torvalds. El proyecto se llama Sparse y no se puede comparar en cuanto a las posibilidades con su equivalente comercial; sin embargo, últimamente ha recobrado la confianza y se usa para comprobar algunos de los tipos de errores de los kernels de la serie 2.6.http://lwn.net/Articles/86957/

Error del kernelStian Skjelstad encontró por casualidad un error bastante grave del kernel de Linux. Este error hace que se congele completamente el sistema. El error surgió a la hora de analizar la aplicación desde el espacio del usuario, y al principio fue reconocido como error del compilador. Sin embargo, se encontró la verdadera causa de la congelación del sistema. El error consistía en un soporte impropio de las excepciones de comas variables y pertenece a los errores típicos de programación que parecen inocentes, pero que no lo son.http://lwn.net/Articles/89002/

Depuración de módulos cargablesEl código del kernel de Linux es específico, pero a pesar de esto es una simple aplicación y se puede depurar de forma interactiva empleando la herramienta más popular, o sea, el gdb. Algunos developers realmente lo hacen, tratando /proc/kcore como un archivo con la memoria cargada del programa. Sin embargo, los kernels de la serie -mm imposibilitan una búsqueda más avanzada y remota de los errores. En caso de que se trate de los módulos cargables, esto es mucho más difícil, ya que el depurador no sabe reconocer bien la memoria ocupada por estos módulos. Resulta que la información necesaria no es accesible completamente, incluso se pierde. El respectivo parche de Jonathan Corbet permitirá el análisis interactivo de los módulos de Linux.http://lwn.net/Articles/89961/

Ext2 y ext3

Ext3 es uno de los sistemas más po-pulares de archivos de transacción

empleados en Linux. Surgió en base de ext2, es decir, de un sistema de archi-vos que desde hace mucho y durante mucho tiempo ha sido el sistema básico de archivos de Linux. Aunque ext3 es el complemento natural de ext2, sobre todo la transacción (ing. journalling), se desarrolla por separado. Esta situación es resultado de la decisión de Linus que no aceptó la destrucción de un elemento tan importante como era el sistema básico de archivos. El resultado de tal decisión son dos sistemas de archivos del kernel cuyo código se distingue tan sólo por unos detalles.

Alguien que no pertenecía al grupo de developers de ext3 tuvo la idea bas-tante obvia - si no se acuerda uno de la historia del sistema ext3 - de integrar estos sistemas de archivos. Analizó las diferencias y resultó que, además de las funciones completas, las diferencias son pequeñas y se pueden esconder en los macros del preprocesador que activan y desactivan la transacción del sistema de archivos.

Los argumentos a favor de integrar dos sistemas de archivos son simples: así sería más fácil, más simple y más elegante, el kernel sería más pequeño y el compilador no tendría por qué cansarse dos veces con casi el mismo código. Sin embargo, podemos mencionar un argu-mento en contra de tal comportamiento. El primero es obviamente histórico, ya que desde el principio se decidió que el sistema ext3 iba a ser independiente del ext2. El segundo argumento, igual de simple, es la aversión general hacia #ifdef

en el código del kernel. El tercero puede ser que con tal integración hay que ase-gurar la posibilidad de poseer sistemas de archivos tanto transaccionales como no transaccionales. Aún más, no tenemos la seguridad de que ext2 y ext3 se vayan cada cual por su camino y su integración se haga imposible. Aunque hoy en día ext2 y ext3 se parecen mucho, pueden desarrollarse en dos direcciones opues-tas, sobre todo si tenemos en cuenta las diferencias de su empleo. El argumento básico es que Linus simplemente no lo quiere.

Andrew Morton, uno de los especialis-tas de ext3, notó que aparentemente esta integración no era totalmente trivial, ya que ext3 se distinguía de ext2 por algu-nos mecanismos. Sin embargo, acertó en que se podía realizar tal ejercicio, pero principalmente para reducir el tamaño del kernel. Añadió que el trabajo que había que poner superaba bastante el beneficio.

Merece subrayar que estos sistemas tienen objetivos diferentes y, por lo tanto, es muy fácil imaginarnos que su optimi-zación tenga en el futuro un carácter di-ferente. Como el sistema ext3 es seguidor del ext2, la integración de ambos sistemas de archivos quitaría muchas posibilida-des al usuario de ext2.

Sin embargo, no creo que próxima-mente sea posible crear de ext2 y ext3 un sistema homogéneo de archivos. Costaría un trabajo que, además, no merecería el resultado conseguido y desperdiciaría futuras diferencias importantes entre estos sistemas.

http://lkml.org/lkml/2004/6/24/215

Lustre es un sistema disperso de archi-vos para usarse en cúmulos grandes.

Aunque todavía no está incluido en el ker-nel, ya se emplea en la producción masiva y su creación está apoyada por importantes empresas. Como el proyecto ha conseguido cierta etapa de madurez, ha sido propuesto para ser incluido en la rama principal del kernel. Sin embargo, ha surgido un pro-blema. Se han preparado centenares de parches en el kernel, gracias a los cuales Lustre podría funcionar únicamente como un módulo cargable y no requeriría más parches adicionales del mismo kernel; sin embargo, estos parches parecen controver-

Lustretidos, ya que suministran interfaces que no se usaban en ninguno de los demás fragmentos del código del kernel. Para mu-chos usuarios esto significaría la agregación de un nuevo e inútil API. A pesar de ello, como estas intefaces no van a aparecer en el kernel, ningún sistema más va a poder, o querer, aprovecharlo. Teniendo en cuenta el hecho de que para muchos usuarios la posesión de Lustre en Linux puede resultar importante, tarde o temprano llegará el día en que se incluya este sistema de archivos en el árbol oficial del kernel del sistema Linux.http://www.clusterfs.com/lustre.htmlhttp://lwn.net/Articles/87844/

Page 20: LiNUX+ DVD 2

debian aktualnościactualidades

Noticias

18 Linux+ 2/2004

Notas de la conferencia de DebianJuinchi Uekawa envió notas recogidas durante la Cuarta Conferencia de Debian. Incluyen información sobre las conferencias llevadas por Joey Hess sobre el nuevo instalador de Debian, por Scott James Remnant sobre las herramientas para construir las aplicaciones GNU, por Steve Langasek sobre las dependencias en Debian y por Ian Murdock sobre Linux de componentes.http://www.debian.org/events/2004/0526-debconfhttp://www.netfort.gr.jp/~dancer/diary/200405.html.en#2004-May-27-22:08:13http://www.netfort.gr.jp/~dancer/diary/200405.html.en#2004-May-27-23:05:51http://www.netfort.gr.jp/~dancer/diary/200405.html.en#2004-May-28-02:11:49http://www.netfort.gr.jp/~dancer/diary/200405.html.en#2004-May-29-02:40:55

Licencia adecuada para la documentaciónSigue abierta la cuestión de qué licencia deberían seleccionar los proyectos que crean aplicaciones libres para su documentación. Una de las ideas es emplear la misma licencia en lo que se refiere a las aplicaciones y a la documentación incluida.http://lists.debian.org/debian-legal/2004/06/msg00053.htmlhttp://lists.debian.org/debian-legal/2004/06/msg00054.html

Portal Debianplazza sigue creciendoLos usuarios europeos de Debian pusieron en marcha un nuevo portal destinado a esta distribución. Debianplazza es un amigable entorno que sobre todo cuida la accesibilidad para principiantes y usuarios individuales. El número creciente de personas registradas en los grupos de noticias indica que el portal tiene mucho éxito.http://www.debianplaza.net/

Java libre en más plataformasUno de los usuarios preguntó por qué los nuevos paquetes de la máquina virtual Java SableVM (1.1.5) no se pueden instalar en unstable. El responsable de los paquetes explicó que los paquetes con librerías empleadas por la máquina virtual Java se habían detenido esperando en la cola a los nuevos paquetes. Unos días más tarde la situación volvió a la normalidad y los nuevos paquetes de SableVM junto con las librerías ya son accesibles también en la distribución testing/Sarge.http://lists.debian.org/debian-java/2004/06/msg00004.htmlhttp://www.sablevm.org/

Puerto AMD64: ¿listo?

El grupo de desarrolladores encargados de transferir Debian a la plataforma

AMD64 anunció que el 97% de los paque-tes de Debian han sido correctamente com-pilados para esta arquitectura. Los demás paquetes que todavía no han sido construi-dos sufren problemas generales de cons-trucción pero no sólo en esta plataforma. El nuevo instalador de Debian fue transferido y está siendo construido automáticamente cada día, y las imágenes de CD son acce-sibles al público. Para que Debian AMD64 se convierta en la versión oficial de Debian, es necesario incluir pequeños parches para dpkg, asignarle espacio en los servidores oficiales de Debian (analógamente, en los servidores réplicas), así como configurar los servidores de construcción automática (buildd).

Como respuesta a este anuncio surge la pregunta: ¿cuál de las arquitecturas adi-cionales está ya preparada? La pregunta tiene sentido, ya que al principio un grupo de developers quiso crear la versión de dos arquitecturas (ing. Bi-arch) con la cual se po-dría ejecutar en un sistema de archivos (es decir, sin los chroots) tanto las aplicaciones de 32 bits como de 64 bits. Desgraciada-mente, la tarea resultó mucho más difícil de lo que se suponía. Por lo tanto, empezaron a crear la versión virgen de 64 bits, la cual pronto llegó a ser la única versión desarro-llada activamente. Hay que mencionar que incluso en esta versión virgen de 64 bits se pueden ejecutar las aplicaciones de 32 bits usando chroots, sólo si el kernel de Linux fue compilado con tal opción.

Me parece que esta versión tiene la desgracia de ser víctima de todo tipo de confusiones. No sólo se empezó a crearla co-mo bi-arch, y finalizó como virgen de 64 bits, sino que tampoco se han evitado muchos roces sobre el mismo nombre de la versión. Una gran parte de la culpa es de la empresa AMD, ya que al principio promulgaba esta arquitectura como x86-64 y este nombre lle-van las versiones realizadas por SuSE y Red Hat. En cambio, lo que parece muy intere-sante, Mandrake y Gentoo (y también muchas distribuciones no comerciales más) eligieron el nombre AMD64. La serie de caracteres x86-64 es usada por autotools (por ejemplo, en los scripts configure) y en el mismo kernel de Linux. Muchos importantes developers de Debian preferirían más bien emplear un tecnicismo más correcto, es decir, x86-64. Resulta que, por ejemplo, los paquetes de De-

bian tendrían que llevar en el nombre x86_64 (¡con guión bajo y no guión normal!).

Aunque parezca poco importante, el nombre de la versión llegó a ser tema de discusiones y conflictos. Por ejemplo, en un momento dado en dpkg se encontró una serie que identifica la aquitectura de esta versión de amd64 en x86_64. Esto se dió en un círculo limitado, sin la autorización u opinión de las personas interesadas en es-ta versión durante la conferencia de Debian que tuvo lugar hace poco en Brasil. Estos cambios fueron eliminados, sin embargo, los participantes no llegaron a un acuerdo en cuanto al nombre de la versión. Además, primero tuvo lugar una votación no oficial en la cual el 99% de los votantes aceptaron el nombre amd64. Luego, en el grupo de noticias debian-amd64 se pidió a los partici-pantes del proyecto que apoyaran de forma unánime el nombre amd64 o su alternativa (el 100% votó por amd64). Por fin el asunto llegó al Comité Técnico que también votó por el nombre amd64.

Actualmente casi todos los paquetes del archivo de Debian están compilados para AMD64, los parches necesarios han sido incluidos en dpkg, los servidores no oficiales de construcción han sido confi-gurados (y funcionan), por lo tanto, esta versión espera tan sólo la bendición oficial para conseguir espacio en los servidores de Debian. No es absolutamente seguro que la versión amd64 se publique con Sarge, pero teniendo en cuenta la determinación de la gente que trabaja en este proyecto, hay bastantes posibilidades de éxito.

http://lists.debian.org/debian-devel-announce/2004/06/msg00002.htmlhttp://lists.debian.org/debian-devel/2004/06/msg00635.htmlhttp://www.debianplanet.org/node.php?id=1115

El puerto de Debian con AMD64 ha tenido mala suerte desde el comienzo de su existencia...

Page 21: LiNUX+ DVD 2

[email protected]

19www.lpmagazine.org

sección llevada por Grzegorz Prokopski

Paquetes del nuevo Firefox 0.9El responsable de Firefox pensó qué hacer con su nueva edición. Por una parte quisiera dejar la nueva versión a los usuarios a analizar, por otra (como la edición de Sarge va aproximándose) quisiera quedarse con el paquete en unstable que tendría importantes errores. Anthony Towns sugirió situar el paquete en la sección experimental lo más pronto posible, y si no provoca problemas a los usuarios, trasladarlo a la versión unstable.http://lists.debian.org/debian-devel/2004/06/msg00557.htmlhttp://lists.debian.org/debian-devel/2004/06/msg00560.html

Grupo de Debian que cuida de FirebirdEl responsable anterior de esta base de datos, Grzegorz B. Prokopski, anunció que reunía gente para crear un grupo que cuidara de los paquetes de Firebird en Debian. Añadió que él mismo no podía ocuparse de estos paquetes, ya que ya no los empleaba, sin embargo, podía ayudar a las personas que quisieran ocuparse de ellos. En unos días, el grupo de noticias de este grupo de Debian se activó para preparar nuevos paquetes de Firebird 1.5 para Sarge.http://lists.debian.org/debian-devel/2004/06/msg00258.htmlhttp://firebird.debian.net/http://firebird.sf.net/

Manual para empaquetar las librerías en DebianJunichi Uekawa publicó el manual actualizado de empaquetar las librerías en Debian. Añadió el ejemplo de emplear los símbolos versionados (ing. versioned symbols) para las librerías compartidas (ing. shared library). Esta actualización es parcialmente el resultado de la conferencia de Steve Langasek en la última conferencia de Debian. Stephen Frost por sí mismo añadió unas actualizaciones más.http://lists.debian.org/debian-devel/2004/06/msg00069.htmlhttp://www.netfort.gr.jp/~dancer/column/libpkg-guide/libpkg-guide.htmlhttp://lists.debian.org/debian-devel/2004/06/msg00077.html

Skolelinux 1.0 ya editadoDespués de 3 años de un trabajo duro, Skolelinux 1.0 esperó su edición pública. Los trabajos sobre esta distribución empezaron como reacción al hecho de que las escuelas y las oficinas noruegas fueran independientes de aplicaciones cerradas. Skolelinux tiene como objetivo llegar a ser un sistema fácil de configurar en redes grandes y seguras de clientes lígeros (LTSP) para servir a usuarios normales.http://www.skolelinux.org/ftp://developer.skolelinux.no/skolelinux-cd/

El futuro de los X en Debian

El manager de las ediciones los X de la Tropa de Asalto X (X Strike Force) de

Debian preguntó en el grupo de noticias debian-devel sobre las opiniones de los de-velopers respecto al futuro de los X en De-bian. La pregunta era importante, ya que la situación relacionada con los proyectos de los archivos fuentes de los X (ing. upstreams;proyectos de los cuales proceden las fuen-tes convertidas por los desarrolladores de Debian en paquetes .deb) es poco clara. Como el proyecto XFree86 ha sustituido últimamente la licencia de una parte de aplicaciones editadas junto a ella por la incompatible DFSG, ésta no puede seguir siendo la fuente para nuevas versiones de los X. Surgieron dos proyectos alternati-vos: X.org y FreeDesktop.org. No está claro cuál de ellos debería seleccionar Debian. ¿A lo mejor Debian debería empezar por la creación de su propia versión de los X? Tal versión es en principio imprescindible, ya que los proyectos de fuentes no toman en cuenta algunos problemas con la licencia y también porque Debian soporta arquitec-turas, de las cuales el proyecto de las fuen-tes de los X no quiere ocuparse en absoluto. A propósito de estas confusiones se averi-guaron las opiniones sobre la futura forma de los paquetes con los X en Debian.

Como podíamos adivinar, varios deve-lopers tenían diversas opiniones sobre la selección del proyecto de fuentes. Algunos

querían X.org como lugar ideal para el pro-yecto de fuentes de los X, los demás que-rían la versión editada por FreeDesktop.org, como la que se desarrolla de forma más dinámica y que tiene más suplementos, con lo cual tiene mejores módulos. A estos argumentos se respondió pronto que la versión procedente de X.org incluye mejo-ras regaladas por Sun y, además, X.org está desarrollado por la rama denominada deb-rix, la cual tiene muchos módulos más. En tales circunstancias resulta que lo mejor se-ría que los esfuerzos de ambos proyectos se integrasen. También se discutó el tema de una posible sustitución de imake, empleada desde hace mucho para construir los X, por un sistema más moderno que maneje me-jor las aplicaciones modulares. Cuando la sustitución tenga lugar será probablemente el tándem autoconf y automake.

X.org empezó a editar su propia versión de los X al igual que FreeDesktop.org

Hacia la edición de Sarge

Después de las últimas correcciones de la edición del Contrato Público de

Debian, la edición de Sarge en fechas razo-nables no es real, ya que, según dice este documento, todo lo que forme parte main de Debian tendría que ser compatible con las Directivas Relacionadas con el Software Libre (DFSG). Es un problema, puesto que una gran parte de la documentación procedente de la Fundación Software Libre (FSF) es accesible en la licencia GNU de la Documentación Libre (GFDL) y tendría que pasar a ser non-free antes de la posible edición de Sarge. Hay muchos más casos de este tipo y la eliminación de todos duraría meses.

Por tanto, la única forma de lanzar Sarge, cuando esté técnicamente prepara-do, es volver a votar los resultados de las denominadas “mejoras de edición”. Para variar, se propusieron hasta 6 versiones diferentes que actualmente se votan. Os-

cilan entre “Retirar totalmente las mejoras de edición”, “Retener los cambios hasta la edición de Sarge” y “Confirmar el nuevo contenido del Contrato Público” (la última opción imposibilita la edición de Sarge en el próximo futuro).

Está claro que en el grupo debian-devel aparcó un montón de análisis y discusio-nes sobre las opciones a votar, sobre todo con la siguiente: “¿Cómo votar para editar Sarge lo más pronto posible?”. Pienso que podemos estar tranquilos en cuanto a los resultados de esta votación, recordando una protesta decisiva de los developers contra la idea de eliminar la sección non-free de Debian. Según dice la tradición, la nueva distribución estable Sarge se lanzará cuando esté preparada.

http://www.debian.org/social_contracthttp://lists.debian.org/debian-devel-announce/2004/06/msg00004.html

Page 22: LiNUX+ DVD 2

mandrakeaktualnościactualidades

Noticias

20 Linux+ 2/2004

[email protected] sección llevada por Daniel Koć

Extensión de PCLinuxOSAunque Texstar realiza la parte más importante del trabajo con PCLinuxOS, podemos ayudaren sus esfuerzos a construir la mejor distribución de Linux para la oficina. TheDarb publicó en Internet una pequeña guía sobre cómo enviar los paquetes de fuentes preparados por nosotros mismos (SRPM) a la sección especial contrib.http://texsrc.trident.kicks-ass.net/contrib/HOW-TO-CONTRIBUTE.txt

UmibuilderUmibuilder es la extensión de Mklivecd. Su objetivo es preparar las instalaciones de Linux para que arranquen desde el CD o desde las tarjetas de memoria, teniendo como base los paquetes de Mandrake Linux. Los esquemas de estas instalaciones están guardados en forma de archivos de texto. En base a ellos, Umibuilder descarga de Internet las versiones más nuevas de los respectivos paquetes y realiza de manera automática todos los siguientes pasos.http://www.nexedi.org/workspaces/project/umigumi/introduction_to_umib/view

Fechas de edicioneshasta la 10.1Ya son conocidas las exactas fechas de apariciones de las ediciones hasta Mandrake Linux 10.1. Si no hay demoras, primero tendremos tres versiones beta y la congelación de traducciones, luego dos versiones candidatas a ser editadas y la edición Community (el 20 de agosto) y la Official (el 15 de septiembre).http://www.pclinuxonline.com/article.php?sid=9029

El pequeño de la familiaMandrakesoft tiene un acuerdo con Edge-IT, en base al cual este segundo será incorporado en Mandrakesoft a través del intercambio de acciones. Edge-IT es una empresa muy joven, fundada hace un año, que realiza soporte para Linux, sobre todo en el mercado de empresas francesas. El grupo de seis personas tiene como clientes, tales como la organización OECD y con tal perfil de actividad conviene a los planes de desarrollo de Mandrakesoft. La transacción tiene que ser aceptada por la reunión general de accionistas.http://www.mandrakesoft.com/company/press/pr?n=/pr/corporate/2487

PCLinuxOS Preview 7

T exstar publicó una nueva edición, toda-vía en pruebas, de PCLinuxOS.

KDE 3.2.2 es el entorno gráfico predeter-minado. Una alternativa para las máquinas con un menor rendimiento es Fluxbox. GNOME 2.6 es accesible desde Synaptic, después de instalarlo en el disco duro.

La versión incluye el kernel estable 2.4. El kernel 2.6.5 es disponible en Synaptic después de instalar el sistema en el disco.

Hay que prestar gran atención en esta edición al instalador en el disco. Tom Kelly realizó un excelente trabajo añadiendo nue-vas posibilidades y eliminando errores para que la instalación de PCLOS en el disco fue-ra muy simple.

El soporte de las claves USB sigue encon-trándose en fase de pruebas y debería apare-cer en la siguiente versión. Había demasiados problemas que solucionar para que empezara a funcionar inmediatamente.

Nvidia 3D, Java y Flash deberían funcio-nar inmediatamente. ATI 3D todavía no está soportado a causa de la falta de los drivers ATI para XFree86 4.4.0. La proyección ordina-ria de ATI funciona normal.

Por motivos de editar la versión Pre-view 7, cambió también el aspecto de la página del proyecto: allí se encuentran,

Dentro de PCLinuxOS, Synaptic sirve para instalaciones gráficas de aplicaciones y para administrar paquetes

Desktop Linux Server

Mandrakesoft conforme con el ante-rior aviso, después de recuperar la

estabilidad financiera, volvió a luchar por su posición en el mercado. Este interesante producto está preparado en cooperación con la empresa Nexedi Rentalinux Desktop Linux Server – soluciones completas de hardware-software. Para emplear DLS es suficiente un navegador web que soporte Java en terminal o un ligero terminal de hardware (por ejemplo, el sugerido Open-Brick).

Como contraposición de Linux Terminal Server Project, el cual emplea las posibi-lidades de red del protocolo X Window, DLS usa también el protocolo VNC en la implementación TightVNC, gracias al cual lo pueden emplear las estaciones de trabajo con diferentes sistemas operativos. Esto permite simplificar al máximo la instala-ción de este servidor en cualquier red local (también inalámbrica), es decir, reducir la barrera de implementar Linux en una empresa. Un servidor separado soporta más de 10 usuarios. Se pueden también

Cliente lígero de hardware: OpenBrick es pequeño y barato, en conexión con DLS puede sustituir exitosamente a un PC

añadir servidores posteriores DLS y es posible integrarlos en cúmulos, con lo cual se simplifica la administración de la red. El coste mínimo del pago mensual, incluyen-do la instalación, son 500 euros al mes, sin embargo, puede variar dependiendo de la cantidad de terminales y servidores y del tiempo de alquiler.http://www.mandrakestore.com/mdkinc/index.php?LANG_=en&tab_x=tab_nexedihttp://www.openbrick.org/

entre otras cosas, las actuales capturas de pantalla.

Desgraciadamente, por el momento, PCLinuxOS existe sólo en la versión inglesa, ésto cambiará después de terminar las tareas sobre la versión completa de la distribución.

Ya está preparada para ser descargada la imagen de la versión Preview NV-7a, optimizada para las tarjetas de nVidia. Incluye la actualización de KDE 3.2.3, Mo-zilla 1.7, además de un conjunto de plug-ins y el subsistema de gráficos Xorg en vez del actual Xfree86; ¡además incluye actualiza-ciones de muchas aplicaciones más, por lo tanto, merece la pena analizar el sistema a esta subversión!

Page 23: LiNUX+ DVD 2

auroxaktualnościactualidades [email protected]

21www.lpmagazine.org

sección llevada por Jarosław Górny

NoticiasAurox en Computer HoyLa revista informática española Computer Hoy en el número 149 (21 de mayo de 2004) publicó los tests de evaluación de las distribuciones más populares de Linux. La redacción evaluó siete distribuciones adaptadas para las aplicaciones profesionales, domésticas, amistosas para los usuarios sin experiencia. Aurox obtuvo el segundo puesto de la clasificación general, adelantando a las distribuciones Mandrake y Fedora Core. Se evaluaron, entre otros, la facilidad y la intuitividad de la instalación, así como la configuración del sistema, la localización (soporte para los lenguajes) y la selección de las aplicaciones.

Udev en Aurox 10.0En el nuevo Aurox habrá muchas modificaciones. Aparte del paso al núcleo 2.6.x, la distribución incluirá también el sistema udev, equivalente de devfs operante en el espacio del usuario. Este programa coopera con hotplug y permite la creación/supresión dinámica de los equipos del directorio /dev con lo cual habrá en él solamente los ficheros de dispositivos presentes en un momento dado. Los paquetes de tests RPM se hallan en los servidores réplicas de Aurox; para cargarlos, por ejemplo, con ayuda de Yum.

Cambios en Core TeamA mediados de junio Robert Główczyński abandonó Aurox Core Team. Robert es el autor de Aurox. Durante varios meses era el principal desarrollador del proyecto. Robert, gracias por tu inmensa aportación de trabajo. Sin ti Aurox no sería lo que es hoy en día. Te deseamos buena suerte y que estés satisfecho con lo que haces ahora. Tras la ida de Robert, al proyecto se incorporaron dos programadores: Michał Szabelski y Karol Kozimor (responsable del proyecto Acpi4asus).

Opiniones sobre AuroxEl Círculo Científico de Estudiantes de Informática de la Escuela General de Comercio de Varsovia, Polonia publicó la reseña de Aurox 9.3. La mayoría de las observaciones serán también válida para Aurox 9.4, aunque, por supuesto, muchos programas fueron puestos al día y se suprimieron muchos errores y fallos. Esta disponible la traducción al inglés. Para las personas que conocen alemán una lectura interesante puede ser la reseña de Aurox 9.4 publicada por el foro alemán de usuarios de Aurox.http://skni.sgh.waw.pl/sections.php?op=viewarticle&artid=19http://www.auroxusers.de/portal/93_review.php

Hibernación en Aurox

Junto al próximo Aurox 10.0, basado en el nuevo núcleo 2.6.7 (disponible en el re-

positorio de los paquetes de test), aparecerá el soporte para la hibernación realizada por el mecanismo Swsusp2 que guarda los datos de la memoria en la partición de intercambio (swap).

Este mecanismo puede funcionar con éxito en todos los ordenadores adecuada-mente configurados y no requiere APM ni ACPI. Son necesarias cuatro particiones de intercambio de dimensión un poco más grande (alrededor del 30%) que la cantidad de la memoria operativa. Se so-portan también los ordenadores multipro-cesador y con mayor cantidad de memoria (hasta 4 GB).

Para poder utilizar la hibernación, hay que verificar si las particiones de in-tercambio son mayores que la memoria operativa (comando free), y añadir en el fichero /boot/grub/grub.conf la inscripción resume2=swap:/dev/hdXY en la sección kernel del núcleo utilizado, donde XY es el nombre de la partición de intercambio

(se puede visualizar a través del comando grep "swap" /etc/fstab). A continuación, un ejemplo de esta línea:

kernel /vmlinuz-2.6.7-10.0.aur.4 ro S

root=LABEL=/ vga=791 resume2=swap:S

/dev/hda1 rhgb

Después del rearranque, hibernamos el sistema con el comando echo > /proc/

swsusp/activate. El contenido de la me-moria es entonces guardado en el disco y el sistema se desconecta. Con su conexión la memoria se restaura a partir del disco y, trascurridos algunos segundos, tenemos el sistema en el estado antes de la hiberna-ción.

Los propietarios de los ordenadores portátiles indudablemente apreciarán esta función, sin embargo, puede ser también útil para los dispositivos fijos: con esta operación el sistema tarda menos que con el arranque completo.

http://swsusp.sf.net/

Aurox en LinuxTag 2004

Este año, otra vez se celebró en Karls-ruhe (Alemania) la feria y el congreso

dedicado a Linux, LinuxTag. En el marco del congreso tuvieron lugar sesiones de ponencia simultáneas. Las intervenciones eran variadas pero la mayoría iba dirigi-da a los gerentes, a las personas responsa-bles de las implementaciones y a la gente que toma decisiones sobre cómo gastar los fondos de la empresa. Esto confirma la creciente popularidad de Linux.

En el pabellón de la feria se exponían varias empresas, organizaciones y proyec-tos. Allí había más variedad: desde los con-sorcios de tipo Sun, SAP, incluso Microsoft, hasta los proyectos sin ánimo de lucro.

Igual que el año pasado, su stand tuvo Software-Wydawnictwo, y bajo su firma, también Aurox. La asistencia a LinuxTag era una buena oportunidad para encon-trarse con los usuarios, compartir opinio-nes y presentarse al círculo más amplio de aficionados a Linux. En comparación con el año pasado, más gente conocía la distribu-ción; muchos visitantes del stand fueron los usuarios contentos de Aurox de Alema-nia, Francia, Suiza, Austria y Polonia.

Durante la feria, Jarosław Górny de Aurox Core Team fue entrevistado por Lars Neubert el administrador del foro alemán de usuarios de Aurox.

http://www.linuxtag.org/http://www.auroxusers.de/

Jarosław Górny (Aurox) y Lars Neubert (Auroxusers.de)

Page 24: LiNUX+ DVD 2

aktualnościactualidades

Noticias

22 Linux+ 2/2004

gentoo

Paquete GentoolkitCada usuario de Gentoo conoce muy bien la herramienta emerge. No todos saben qué esto no es lo único que podemos utilizar con el objetivo de trabajar con el árbol Portage.La distribución nos ofrece el paquete Gentoolkit ( /usr/portage/app-portage/gentoolkit). Es el conjunto de scripts de administración.Particularmente bien desarrollado e interesante es el script qpkg. Permite, entre otras cosas, visualizar la lista de los paquetes intalados (qpkg) y sus versiones (qpkg [paquete] -v), sacar el valor de la sección content del paquete, es decir, la lista de todos los archivos que aparecieron en el sistema en el momento de la instalación (qpkg –list [paquete]), encontrar el paquete que contiene el archivo (qpkg -f [ruta/al/archivo]), verificar la suma de chequeo md5 del paquete (qpkg –md5-check [paquete]) y además visualizar todas las dependencias del paquete instalado (qpkg –query-deps [paquete]).El siguiente script interesante es equery. Con la opción uses (equery uses [paquete]) visualiza los flags USE, con los que fue compilado (frecuentemente es una información muy necesaria), y con depgraph – busca las dependencias en ebuild recurrentemente, cuyo efecto será el árbol de todos ellos. En preparción están las funciones de presentación cómoda de ChangeLog ebuild, al igual que la información visualizada glsa, hablando de posibles actualizaciones en lo que a la seguridad se refiere.Vale también la pena prestar atención al script genlop ( /usr/portage/app-portage/genlop/ ). Es un parser de log emerge ( /var/log/emerge.log). Con la opción -t permite visualizar el tiempo de la compilación del paquete, lo que frecuentemente quieren los usuarios, por ejemplo, después de la compilación OpenOffice.org o KDE.

Concurso del aspecto de la webGentoo Foundation decidió cambiar y unificar el aspecto de las diferentes páginas web creadas por la comunidad, dedicadas precisamente a la distribución, entre otras http://www.gentoo.org/, http://forums.gentoo.org/, http://packages.gentoo.org/. Por esta razón hicieron un concurso abierto para el nuevo diseño gráfico. Los proyectos se podían haber enviado hasta el 25 de julio, y entre ellos los desarrolladores deberían escoger los mejores cinco. Al ganador la comunidad lo elegirá por votación.http://www.gentoo.org/proj/en/infrastructure/redesign-guidelines.xml

Gentoo Linux 2004.2

Para el tercer trimestre de este año está planificada la publicación de la

próxima versión de Gentoo: 2004.2. Po-demos esperar la implementación de la nueva funcionalidad para Gentoolkit (por ejemplo ¡la integración del sistema GLSA con la herramienta emerge!), la detección del hardware SATA y, además, una mejor ayuda para la arquitectura SMP. Apar-te de esto, se está analizando el acceso a LiveCD a través de BitTorrent y una mejor integración con Catalyst (herra-mienta que permite la creación del propio LiveCD y de los archivos conocidos como stages). Como viene siendo habitual, apa-recerán los nuevos discos PackageCD, que contendrán los paquetes binarios GRP de las versiones más recientes de KDE, X.org, Mozilla y muchos más, además del LiveCD con un perfeccionado mecanismo de de-tección del hardware (esto es una buena noticia especialmente para los usuarios de los ordenadores portátiles).

Para los menos duchos, Gentoo GNU/Linux es una distribución iniciada por el mejicano Daniel Robbins en el año 1999. Drobbins (porque ese es el seudó-nimo con el cual se le puede encontrar a Daniel en Internet) fue usuario de Debian. La aventura con GNU/Linux le gustaba cada vez más, hasta que un día comenzó a crear su propia distribución llamada Enoch. Su idea fue bastante interesante: decidió juntar el núcleo de Linux con la bien conocida resolución de los usuarios BSD (se refiere a los llamados puertos). El árbol Portage en un cerrar y abrir de ojos encontró par-tidarios entre los usuarios de Linux, y al proyecto de Daniel se agregaban cada vez más nuevos desarrolladores. Al poco tiempo, Enoch, siguiendo el camino de la evolución, se transformó en Gentoo.

Hoy en día el proyecto cuenta con más de 300 developers oficiales, además de va-rias decenas de miles de usuarios en todo el mundo. Actualmente, se encuentra en el sexto lugar según la clasificación realizada por DistroWatch.org.

Tomando en cuenta al usuario, el pro-yecto ofrece un foro de discusión (http://forums.gentoo.org/ ), también en español, la pluralidad de las listas temáticas de dis-cusiones, el sistema para notificar errores – BugZilla (http://bugs.gentoo.org/ ), y para

los que os gusta el port 6667, el canal oficial #gentoo en la red irc.freenode.net.

Siguiendo los pasos de los grandes proyectos, semanalmente se publica Gentoo Weekly Newsletter: periódico que resume la actividad en el ámbito del pro-yecto. Se halla en él información sobre la seguridad (Gentoo Linux Security Announ-cements), cambios en el árbol Portage o la sección dedicada a la descripción de uno de los developers. La rica documentación provoca que la obtención de una eventual ayuda no cause el menor problema y no se limite (método muy conocido por todos) a escribir las palabras clave en el buscador de Internet.

Gracias a esto, sin lugar a dudas se le puede llamar a Gentoo una distribución estable y segura, dedicada sobre todo a las aplicaciones de oficina. El sistema por el asunto del proyecto Gentoo Hardened pasa el examen igual de bien en los servidores.

La pregunta más frecuente de los usuarios principiantes de Gentoo es: “¿qué versión es la más reciente?”. La respuesta a esta pregunta no es tan evidente. Al principio, el método de la numeración era sencillo: X.Y (por ejemplo, 1.4), bien conocido de otros proyectos Open Source. Gentoo tiene, sin embargo, una filosofía muy específica. Aquí los usuarios no reci-ben una distribución preparada, basada en un conjunto de paquetes binarios, sino que construyen el sistema desde el principio. Sobre la actualidad de la distribución tes-tifica la versión gcc, glibc, binutils y Portage. Por lo tanto, es difícil hablar de la versión de la distribución como tal. En relación a esta especificación se decidió introdu-cir un nuevo sistema de numeración de la versión. Desde principios de este año se realiza de la siguiente forma: AÑO.X, donde X es una cifra del intérvalo 0-3. La versión actual es 2004.1, lo que significa que Gentoo esta en la fase del segundo tri-mestre del año 2004 (la numeración de los trimestres comienza en 0: tal forma es bien conocida a todos los programadores).

Resumiendo, cada trimestre son acce-sibles los nuevos LiveCD, o sea, los discos que se inician automáticamente permitien-do la instalación, y los archivos stage com-primidos, con los cuales se puede iniciar la construcción de la distribución.http://www.gentoo.org/

Page 25: LiNUX+ DVD 2

[email protected]

23www.lpmagazine.org

sección llevada por Jarosław Świerad

NoticiasTips & TricksGentoo Weekly Newsletter comenzó la publicación en cada edición de interesantes consejos de los usuarios de esta distribución. He aquí algunos de ellos:• Si te has equivocado en el cambio de redirección > de >> y has destruido algún archivo importante, este consejo es para ti. Agrega la siguiente línea a ~/.bashrc: set -o noclobber. Este comando evita la sobreescritura del archivo a través del uso del signo de cambio de dirección >. Ahora, para sobreescribir dicho archivo realmente, usa el signo >| en vez del usado hasta ahora >. Ejemplo:

% programa >| archivo.txt

Para regresar rápidamente al directo-rio anterior, usa cd -. Ejemplo:

$ pwd /home/messer $ cd /tmp $ cd - $ pwd /home/messer

Frecuentemente existe la necesidad de cambiar el nombre del archivo de letras mayúsculas a minúsculas. Este comando (bucle) resuelve el problema:for n in *; do mv $n `echo $n | tr '[:upper:]' '[:lower:]'`; done.• Adición de la variable de sis-tema TMOUT provoca una salida automática del usuario al pasar el número de segundos indicado. El comando : % export TMOUT=3600 saca al usuario después de 3.600 segundos sin usar el teclado.• Si acabas de instalar el nuevo administrador de ventanas y lo quieres testear sin desconectar el servidor de los X que ya funciona, es suficiente que ejecutes el comando: % startx -- :1. Esto provoca la apertura de la segunda sesión X y la nueva lectura del archivo ~/.xinitrc.

Splash para PowerPCMuchas distribuciones ofrecen la posibilidad de visualizar los gráficos durante el inicio del sistema(los llamados bootsplash). Los usuarios de Gentoo en las máquinas de arquitectura Power PC no tenían hasta hace poco este placer. No hace mucho esto ha cambiado con la ayuda de Michał Januszewski, un desarrollador polaco. Gracias a su trabajo, bootsplash es ahora independiente de vesa-framebuffer y pueden alegrarse los dueños de procesadores PPC.

¡Hazte developer!

A causa del rápido desarollo de la distribución, constantemente se

necesitan nuevas personas que estén interesadas en trabajar con el conjun-to de developers. Si sabes como crear un archivo ebuild, conoces muy bien el inglés o puedes hacer algo que pue-da interesar a la comunidad Gentoo, escribe un mensaje a: [email protected]. Si tus habilidades pueden ser utiliza-das, es suficiente resolver un corto Quiz (preparado especialmente para los candi-datos a developer).

Actualmente se hace hincapié en el desarrollo del núcleo. También son necesa-rios voluntarios que ayuden en el cuidado a los abandonados ebuild, cuyo número desgraciadamente aumenta sin parar. Ha-ce un par de semanas, Stuart Herbert creó un nuevo usuario BugZilli ([email protected]), al cual se añaden todas las tareas de los ebuild a los nuevos proyec-tos. Algunos de ellos ya contienen archivos preparados ebuild, que exigen pruebas (correciones relativamente pequeñas). Esta es una excelente ocasión para demostrar las habilidades poseídas y aliviar a los develo-pers del trabajo de testear y de corregir los archivos que ya se encuentran en el árbol Portage. Los trabajos de los desarrollado-res se pueden ver en el canal #gentoo-dev (moderado) en la red irc.freenode.net. Este es,

en mi opinión, el mejor lugar (después de la lista de discusión [email protected]) para familiarisarse con el ambiente que domina entre los developers. Una excelente ocasión es también la revista mensual (cada primer sábado del mes) “Día del Gusano”, es decir, Gentoo BugDay. Es entonces, cuando el canal #gentoo-bugs tiene vida. Allí se reúnen todos los interesados con las soluciones ya existentes o con la notificación de los nuevos errores hallados en la distribución. Como informan las estadísticas, durante todo el mes no hay ni siquiera un día, que se cie-rren tantos “gusanos” como precisamente durante el BugDay. Agrego además que el ambiente que domina en el canal es muy informal. ¡No se puede discutir el hecho de que para cada usuario estable de Gentoo la posibilidad de resolver un problema es una ocasión para una excelente diversión!

Developers de Gentoo

Wasabi – herramienta de control de logotipos

La herramienta Wasabi es una curiosi-dad que apareció últimamente en In-

ternet. Es un programa que controla los logs del sistema, proyectados teniendo en cuenta los servidores que trabajan controlados por Gentoo. Puede controlar varios archivos a la vez con logs, revisando si no apare-cen en ellos una serie de caracteres que concuerden con las expresiones regulares dadas anteriormente. El e-mail que informa sobre tal hecho es enviado inmediatamente después de encontrar adaptación o de vez en cuando como resumen de la actuación del programa. Actualmente, Wasabi tiene el número 0.2. Los cambios más importantes en relación a la versión anterior es el sopor-te de muchos archivos al mismo tiempo, una gran mejora del rendimiento y un so-porte mejorado de las señales.

Wasabi es un típico ejemplo del soft-ware de carácter Gentoo: apareció por la

necesidad del momento y fue al principio desarrollado por una sola persona (deve-loper) porque no se encontró nadie más que pudiera desempeñar la función de guardián de los servidores de producción Gentoo. Con el paso del tiempo adquirió un gran reconocimiento de los usuarios y hasta hoy es desarrollado ya comple-tamente de manera oficial por un mayor grupo de programadores. Se podrían mul-tiplicar los ejemplos de otras herramientas Gentoo que surgieron de forma parecida, por ejemplo, Portage. Como dice el mismo Daniel Robbins: “Decidí crear Portage, por-que apt-get, que se usaba en Debian, tenía un defecto (llamado por algunos cualidad) – me obligaba a realizar algunas activida-des, que desde mi punto de vista deberían ser totalmente al contrario.”.http://article.gmane.org/gmane.linux.gentoo.announce/373

Page 26: LiNUX+ DVD 2

gnome aktualnościactualidades

Noticias

24 Linux+ 2/2004

Nuevo GaimJunto con una versión nueva del multimensajero Gaim, con el número 0.78, los autores reconocieron que no pudieron cumplir el plazo de dos semanas en el ciclo de su edición. A pesar de esto, mereció la pena esperar, porque en una nueva edición de Gaim se subsanaron todos los errores detectados, relativos a formateo del texto en la ventana de conversación, se ha agregado la compatibilidad con GTK en la versión 2.0, se ha actualizado el soporte del protocolo MSN, se ha introducido el soporte del protocolo SILC y se han corregido muchos otros errores detectados. En lo que se refiere a la comodidad del usuario, una modificación significante consiste en el rediseño de la ventana de ajustes, que llegó a ser más intuitiva y permite configurar rápidamente el mensajero.http://gaim.sourceforge.net/

¿Vamos a jugar a cartas?David Bellot ha facilitado gratis en Internet una baraja de cartas entera construida en el formato SVG. Se creó cartas destinadas especialmente para usar con GNOME y con sus juegos, lo que tiene que ver con su total compatibilidad con la librería librsvg, dedicada a la visualización de gráficos vectoriales. En relación con este acontecimiento, vale la pena mencionar que el grupo de programadores que trabaja sobre librsvg hace todo lo posible para que la librería cumpla las exigencias de especificación SVG, instituida por W3C. Durante el análisis de ficheros SVG, los autores descubrieron que Adobe Illustrator generaba de modo incorrecto los ficheros en este formato, usando métodos no estándar para cubrir los objetos. Debido al hecho de que la mayoría de los iconos fue creada con Adobe Illustrator, Caleb Moore introdujo en la librería el soporte de extensiones no estándar popularizados por Adobe.http://david.bellot.free.fr/

Embellecemos GNOMELos autores de KDE-Look.org, una página para los interesados en embellecer el entorno KDE, de donde se puede descargar fondos y temas de escritorio, iconos y muchos otros suplementos, comunicaron que se abrió una página gemela dedicada al entorno GNOME. El propósito de GNOME-look.org, que así se llama la nueva página, es facilitar a otros usuarios de GNOME los suplementos para este entorno y estrechar las relaciones entre KDE y GNOME.http://www.gnome-look.org/

Inkscape, ¿adónde vas?

Podemos admitir que Linux no dispone de una colección amplia de programas

que faciliten la preparación de publicación desde el principio hasta el fin, ni para em-plear en Internet, ni tampoco en los usos profesionales, p.e. en las imprentas. GIMP, un programa destinado a la elaboración de gráficos vectoriales, hasta hoy en día no dispone de un soporte de modelo de colo-res CMYK. Sodipodi no siempre funciona de manera estable y sus funcionalidades están limitadas. Scribus, un programa aparente-mente óptimo destinado a la composición de publicaciones, sigue teniendo varios defectos y no logra realizar tareas profe-sionales. Todos estos programas se han desarrollado de modo dinámico y sus au-tores se han esforzado mucho para perfec-cionarlos, pero los gráficos y los operadores DTP tienen unas exigencias muy elevadas, mientras que las personas que construyen Software Libre tienen la voluntad, el tiem-po y las posibilidades limitadas.

Los autores de Inkscape, que antes par-ticiparon en la elaboración de Sodipodi, in-tentan satisfacer las exigencias de gráficos. Han decidido buscar su propio camino, puesto que tienen unos objetivos un poco distintos de los objetivos de los autores de Sodipodi. Una de las versiones de este pro-grama les ha servido como código fuente; la empezaron a desarrollar conforme con sus propias ideas y métodos. Muy pronto se ha reconvertido Inkscape en C++ con el empleo de GtkMM (en vez de C y GTK). Los autores, igual de rápido han trazado los objetivos a los que intentan aspirar realizando su obra. El programa por su definición ha de ser un editor de ficheros SVG (Scalable Vector Format) excelente: de un formato de gráficos vectoriales abierto y estandarizado.

W3C, una organización dedicada a la creación y promoción de estándares de la red, ha preparado el formato SVG. Poco a poco gana estima no sólo de los fanáticos de soluciones abiertas, sino también de em-presas grandes. Permite construir gráficos vectoriales que cubren necesidades de la red, pero también se pueden emplear de otra manera. El formato escalable ha sido adaptado como un formato principal de iconos en las soluciones Open Source.

Inkscape desde el principio ha sido desarrollado de modo muy dinámico:

en algunos campos ya adelantó de modo significante a su padre, Sodipodi. La so-ciedad de programadores y de gráficos externos ha tenido un papel importante en su éxito: envían sus ideas, correcciones e incluso bloques enteros del programa con funciones nuevas. A los autores les sorprende mucho cuando por la mañana se despiertan y encuentran en su buzón unas soluciones hechas, inventadas por los usuarios del programa que decidieron ayudar en el desarrollo de Inkscape. De este modo, el programa se ha enriquecido, entre otros, con: un soporte de operaciones muy bueno Boolean (unir, acortar, el resto y la parte común de dos figuras). Muy pron-to se ha rediseñado la interfaz: después de la introducción de unas modificaciones en la estructura del programa, ha llegado a ser muy cómoda y fácil de manejar. Además, ocupa menos lugar en la pantalla, lo que favorece la ergonomía del trabajo.

Inkscape se desarrolla en una dirección buena y a sus autores no les falta entusias-mo, que es muy importante en la sociedad Open Source. Pese al hecho de que el pro-grama se ha construido en tiempo libre y, por decirlo así, como un hobby, sus auto-res tratan el asunto con toda seriedad.

Gracias a los planes a largo plazo de los autores, ya podemos enterarnos qué cam-bios y qué funciones nuevas se preveen en el futuro y cómo se desarrollará esta aplicación.

En un tiempo más cercano, podemos esperar que se agregue el soporte de clo-nes, o sea, la reproducción del objeto de modo que la copia esté unida al padre. Por eso, cualquier cambio del padre influye en la copia, y viceversa. Esta funcionali-dad es muy importante cuando se crean elementos repetibles: cuando deseamos modificar un detalle pequeño, no tenemos

Inkscape

Page 27: LiNUX+ DVD 2

[email protected]

25www.lpmagazine.org

sección llevada por Mateusz Papiernik

NoticiasGIMP-rovisaciónSalió a la luz la primera versión de GIMP, un programa de tratamiento de gráficos vectoriales, de una nueva línea de desarrollo. GIMP en la versión 2.1 introduce algunas modificaciones, por eso, es necesario instalarlo en diferente sitio que la versión 2.0. Los cambios más importantes comprenden la migración del sistema de menú al GtkUIManager, el uso de nuevo diálogo de selección de ficheros y la compatibilidad perfeccionada de la interfaz del programa con instrucciones HIG (Human Interface Guidelines). Nuevas funcionalidades introducidas en esta versión de GIMP incluyen el uso de atajos de teclado independientemente de la ventana activa. http://www.gimp.org/

GTweakUILa siguiente versión del conjunto de herramientas que facilitan la configuración de elementos del entorno GNOME, de modo predefinido ocultos para un usuario común y corriente. En esta versión del programa es posible configurar Menú de ajustes de sesión y de Nautilus. Los autores buscan personas que quieran ayudar a desarrollar el programa; también traductores, programadores y diseñadores gráficos. Cada uno que se sienta capaz, puede ayudar matriculándose en la lista de discusión del proyecto. En la versión siguiente el conjunto se enriquecerá con una configuración de colores GTK y con la administración de paneles.http://gtweakui.sourceforge.net/

GlomGlom es un programa provisto de una interfaz de usuario cómoda y sencilla, con el que se elaboran las definiciones de tablas y de relaciones entre ellas. Asimismo, permite buscar datos en estas tablas. Nueva versión con el número 0.8 subsana varios errores detectados en versiones anteriores. No obstante, depende de muchas librerías no estándar (muy a menudo en las versiones de desarrolladores y no estables). La mala compatibilidad con estándares HIG genera muchos problemas, por eso, Glom difiere de otros programas de GNOME en cuanto a la interfaz del usuario. A pesar de estos defectos, el programa es digno de atención de todas las personas que se dedican al diseño de bases de datos de relación, ya que puede facilitar y acelerar el trabajo sobre la estructura de datos. http://glom.sourceforge.net/

GNOME en colores industriales: ¿qué te parece?

Desde hace mucho tiempo (en prin-cipio, desde el lanzamiento de la

versión 2.0), de modo predefinido se ha suministrado el mismo estilo gráfico que no goza de estima entre todos los usuarios. Por un lado es sencillo y legible, pero por otro, pesado y poco atractivo visualmente. A pesar de sus cuatro versiones, GNOME no ha cambiado desde aquel momento y satisface sólo a unos grupos de usuarios, desanimando desde un principio a los demás. Este problema se puede resolver instalando motivos gráficos adicionales desde las fuentes externas, pero no todos quieren o saben hacerlo.

La empresa Ximian, lanzando la nueva versión de su producto principal, Ximian Desktop 2, decidió elaborar su propio moti-vo gráfico llamado Industrial. Su fuerza y su belleza tiene que ver con un matiz colorista claro y limpio y botones de control perfec-cionados. El escritorio soportado con este motivo es limpio y agradable de mirar y el colorismo claro hace que la interfaz no pa-rece brusca. Naturalmente, hay personas a las que Industrial no les gusta mucho o no les gusta nada de nada. No obstante, en opinión de la mayoría, es un motivo gráfico bien logrado, digno de atención de los que quieran que su escritorio tenga un aspecto sencillo, pero a la vez refinado.

Respecto a la accesibilidad de este motivo: casi todas las distribuciones se suministran con GNOME cargado en las

fuentes y no con la versión modificada por Ximian, denominada Ximian Desktop. Por eso, Jeff Waugh, después de consultarlo con Ximian y Novell, que no objetaron, propuso en la lista de desarrolladores GNOME, que se empleara el motivo Industrial como mo-tivo predeterminado en las próximas ver-siones de este entorno. Lo aprobaron todos, menos algunas personas. No obstante, no faltó una discusión constructiva durante la cual surgió el problema de selección de iconos: ¿usar los que se encuentran en el conjunto Industrial, o dejar los ya existen-tes? O ¿crear iconos nuevos? La discusión sobre la selección de motivos gráficos para nuevo GNOME sigue desarrollándose en la lista de los desarrolladores del entorno. Si quieres ayudar a elegir nuevo aspecto, ¡únete y propon tu solución!

http://mail.gnome.org/archives/desktop-devel-list/2004-June/msg00033.html

Industrial

que eliminar todos los objetos, modificar y volver a reproducir: basta con cambiar el original y el cambio se reflejará en todas las copias.

Otro elemento interesante planifica-do por los autores es la introducción del soporte de ECMAScript (denominado también JavaScript), que permitirá realizar scripts de documentos, y también crear animaciones.

Otra iniciativa interesante, no relacio-nada con el programa en sí mismo, es Open ClipArt Library: una librería de imágenes listas para emplear en nuestros propios proyectos, alcanzable gratis en Internet (http://www.openclipart.org/ ).

El grupo de creadores de Inkscape tampoco ha olvidado a los usuarios prin-cipiantes. Piensan facilitar un instalador cómodo, basado en el sistema Autopackage,

que permite elaborar sistemas de instala-ción cómodos e independientes de la dis-tribución. No cada diseñador gráfico debe saber informática, por eso, la comodidad en el manejo es muy importante: tanto del programa mismo, como de su instalación. ¿Quién necesita un programa que no se puede instalar de modo fácil?

Observando el desarrollo de Inkscape, podemos llegar a la conclusión que den-tro de poco algunos diseñadores gráficos podrán emplear los beneficios que ofrece Linux. Pero, para que sea así, hay que de-sarrollar también otros programas, tales como GIMP, Scribus o CUPS: el sistema de impresión, imprescindible en el proceso de creación. ¡Sólo tenemos que animar a los autores de los programas a que trabajen más!http://www.inkscape.org/

Page 28: LiNUX+ DVD 2

kde aktualnościactualidades

Noticias

26 Linux+ 2/2004

Nuevo KrusaderLa nueva versión del conocido por todos administrador de archivos, creado como réplica de Midnight Commander, lleva bastantes cambios. Algunos de ellos son los nuevos iconos, la posibilidad de no analizar los archivos antes de mostrar su contenido, la configuración del color del panel y la adición de muchas nuevas traducciones. El nuevo número de la versión es el 1.40beta2: os invito a analizarlo.http://krusader.sourceforge.net/

Ordenamos la basura de htmlHasta el momento era difícil encontrar una herramienta que sirva para ordenar automáticamente el código HTML para KDE, sin embargo – como sucede con las aplicaciones para este entorno – tal herramienta surgió hace poco. Se llama KHTMLScrub y su objetivo principal, que se le da bastante bien, es eliminar marcadores HTML que sobran. Después de reducir el documento, tenemos la función de previsualización del trabajo efectuado y de guardar sus resultados.http://www.leonscape.pwp.blueyonder.co.uk/linux/khtmlscrub/index.html

Operamos sobre imágenesLo que pasa es que nuestro enemigo cruel – el tiempo – no permite editar manualmente los archivos que necesitamos modificar. Así es la situación con los archivos gráficos, no todos tienen tiempo para conocer aplicaciones avanzadas de gráficos, por tanto, surgió un suplemento muy útil de Konqueror, denominado KImgSm. Mediante el service menu, es decir, el menú de acción, tenemos la posibilidad de manipular los gráficos para comprimirlos, escalarlos, convertirlos o para girar la imagen. Todo se limita a un par de clicks con el ratón. El tiempo destinado a esta tarea es mucho más corto y el resultado casi igual.http://kde-apps.org/content/show.php?content=11505

Ilusión óptica en KDELos desarrolladores de KDE seguramente no se dejarán atraer para implementar estereogramas en la interfaz estándar del entorno, sin embargo, si queremos crear imágenes separadas, filtradas con los modelos adecuados (por ejemplo, los usados para analizar los ojos), es decir, los estereogramas, tendremos que interesarnos por la aplicación denominada Kblinsel, creada justamente para los usuarios de KDE.http://kde-apps.org/content/show.php?content=13138

SID: un sencillo mensajero

Pasaron muchos meses hasta que llegué – por pura casualidad – a un

multimensajero, que tendría grandes posibilidades de ajuste a mis necesidades y el soporte normal para el protocolo Jabber.

Hasta el momento usaba la aplicación Kopete, sin embargo, cuando últimamente consulté la página www.kde-apps.org, vi el nombre: Simple Instant Messenger. Pen-sé: "¡es algo nuevo y a lo mejor incluye Jabber!". Abrí la página con los detalles y resultó que no era una aplicación nueva y que realmente incluye Jabber como plug-in (junto a otras 20 más y el código fuente de la aplicación).

Inmediatamente descargué el archivo de más de 3,5 MB y empecé la compila-ción. Mientras tanto vi en la página prin-cipal del proyecto el listado de funciones de la aplicación, ya que me interesaba el marco de su implementación. Sobre todo, me interesaba el soporte de la trans-ferencia de archivos en Jabber; hasta el momento es el tercer cliente de Jabber que soporta este mecanismo (ade-más de Gaim, escrito con el uso de la librería GTK+ 2 y de Psi, o sea, el cliente de Jabber más importante para Linux/Windows).

Después de ejecutar SID, creé mi perfil y pasé a la ventana de configuración, don-de me esperaban numerosas opciones para cada uno de los plug-ins. Por ejemplo, los plug-ins más importantes que cumplen las funciones básicas son:

• Icons : administración de iconos para diferentes protocolos y de emoticonos, compatibles con los temas del mensajero Miranda (se pueden des-cargar esquemas de iconos, fondos y conjuntos de emoticonos desde la página http://miranda-icq.sourceforge.net/ Sin embargo, no pude obligar al conjun-to de emoticonos descargados de aquel sitio a que funcionaran con SIM);

• OSD: aviso en la pantalla sobre la accesibilidad de los usuarios y sobre nuevos mensajes;

• GPG: posibilidad de activar la encripta-ción de conversaciones;

• Forward: reenvío de mensajes;• Weather: una detallada previsión

de tiempo por medio del servicio Weather.com.

SIM soporta los siguientes protocolos de comunicación: Yahoo!, ICQ/AIM, MSN, LiveJournal y, desde luego, Jabber.

¿Qué opino de la ergonomía de la apli-cación? Sinceramente, no he encontrado todavía un mensajero mejor preparado. Cada detalle está bien pensado, de forma que el mismo usuario pueda conversar de manera muy cómoda. En la configuración podemos fijar de forma estándar nuestros propios mensajes de accesibilidad o cada vez un mensaje diferente (mediante el botón de cambio del estatus de la venta-na principal). También podemos ajustar la ventana de conversación a nuestras necesidades, de la misma manera que en Kopete, mediante el lenguaje XML (hay varias plantillas disponibles, por ejemplo, XChat). A cada usuario podemos asignar una foto, mientras que el resumen de la información sobre la persona seleccio-nada aparece al indicar con el ratón el lugar del listado. El soporte mencionado de la transferencia de archivos funciona bastante bien (en todos los protocolos). Además, tenemos la posibilidad de en-viar mensajes SMS desde el nivel de la aplicación (desgraciadamente, esta fun-ción no está acabada todavía, ya que no pude enviar ni un mensaje desde el nivel de la aplicación). El soporte de los perfiles permite registrarse en muchas cuentas. En el plug-in para Jabber tenemos la posibilidad de activar/emplear transfe-rencias.

He enumerado tan sólo una parte de las posibilidades de SIM. Os recomiendo mucho descargar y probar este excelente mensajero, mirando con cierto recelo al-gunas funciones que no han sido todavía acabadas por los desarrolladores.http://kde-apps.org/content/show.php?content=10080

Sencillo mensajero instantáneo

Page 29: LiNUX+ DVD 2

[email protected]

27www.lpmagazine.org

sección llevada por Paweł Biliński

Para los aficionados de BasicEl autor de esta aplicación ya desde el principio quiere subrayar que su obra no es un clono del bien conocido por todos Visual Basic. La aplicación se llama Gambas y es un entorno de developers para programadores que crean en el lenguaje Basic. A través de este programa podemos crear la interfaz gráfica de una aplicación, conectarnos a las bases SQL, ajustar las aplicaciones KDE mediante los mecanismos DCOP, crear aplicaciones de red y traducir intefaz de la aplicación a muchos idiomas. Es cosa muy útil para las personas que, después de la migración a Linux, quieren crear cosas en Basic.http://gambas.sourceforge.net/http://kde-apps.org/content/show.php?content=10158

Editamos iconosPerico es una nueva aplicación para KDE que sirve para editar gráficos con el método de pixelar, o sea, para manejar imágenes pequeñas tales como iconos. Permite escalar imágenes, girar, cortar y pegar, pintar con diferentes pinceles y poner filtros.http://software.jodda.de/perico.htmlhttp://kde-apps.org/content/show.php?content=10601

WinPopup para KDEPara las personas que quieran recibir mensajes, enviados en la red local por los usuarios de la aplicación WinPopup, procedente de Windows, hay una pequeña aplicación con el nombre adecuado a su tarea principal: KPopup. La aplicación se comunica con los demás ordenadores vía el protocolo SMB (Samba), pues el autor ha previsto scripts que ayudan en la adecuada configuración de este servicio.http://www.henschelsoft.de/http://www.samba.orghttp://kde-apps.org/content/show.php?content=13408

Buscando extraterrestresEl conocido por todos proyecto SETI, que tiene como objetivo integrar el poder de cálculo de los procesadores de millones de ordenadores de todo el mundo a fin de encontrar civilizaciones extraterrestres, por fin tiene un par de clientes para Linux. Uno de ellos fue escrito, principalmente, para los usuarios de KDE: se llama KSetiSpy y sirve para monitorizar y analizar los datos convertidos por herramientas suministradas por el proyecto SETI@Home. La última versión llegó a ser “transparente” desde el punto de vista de la red y puede ser controlada por los comandos del sistema DCOP, así como cambiar su aspecto mediante preparados esquemas de iconos.http://ksetispy.sf.net/http://kde-apps.org/content/show.php?content=10303

KDE y planes para el futuro

Como a menudo ocurre a la hora de desarrollar varios tipos de proyectos,

después de editar la versión estable, los developers manejan el código de la versión desarrollada. La misma situación tiene lugar desde hace unos años en el caso de nuestro excelente entorno. La edición de la versión 3.2 llevó muchos cambios – a veces revolu-cionarios – que seguramente sintieron todos los usuarios. Hace poco fue publicada la pri-mera versión alpha 3.3. No se puede leer mu-cho al respecto en las páginas web dedicadas al tema de Open Source, pero vale la pena ver las novedades que traerá la siguiente ver-sión de KDE. A continuación presentamos el listado abreviado de algunos cambios.

Las funciones implementadas son las siguientes:

• KNotes : posibilidad de intercambio de avisos de la red;

• KMail : edición de correos en formato HTML;

• Kontact : integración con KPilot y posi-bilidad de conectarse a los servidores eGroupware;

• KWeather : diferenciación de la noche del día;

• QuantaPlus : soporte para el depurador PHP e integración con las nuevas aplica-ciones: KImageMapEditor y KlinkStatus;

• Ark : reescrita integración con Konqueror;• Kompare : soporte para demostrar

líneas concretas con las diferencias en los archivos;

• Kopete: implementación del envío de archivos y grupos de chats en el plug-in del protocolo Jabber, así como el soporte para la encriptación SSL en el plug-in de IRC;

• KolourPaint: una nueva aplicación pequeña, creada para editar rápido simples archivos gráficos;

• Klatin: nueva aplicación para estudiar latín.

Las funciones disponibles durante la im-plementación son las siguientes:

• KMail : implementación del creador del filtro anti-spam y anti-virus;

• Kontact: integración con el cliente Ko-lab;

• KDevelop: integración con QtDesigner;• QuantaPlus: integración con el sistema

de administración de la versión CVS;

• Kopete: administración de mayor can-tidad de servidores del plug-in IRC, aparte del soporte para visualizar los archivos LaTeX;

• KDM: adición del soporte de los temas gráficos.

Las funciones planeadas son las siguientes:

• KNode: ofrece a la aplicación el aspecto del cliente de correo KMail, un mejor soporte para añadir los anexos a los mensajes y una mejora de la visualiza-ción de los mensajes en HTML;

• KNotes: el soporte para los avisos de “sólo-lectura” y la posibilidad de añadir alarmas a los avisos;

• QuantaPlus: el soporte para grupos de desarrolladores en los proyectos;

• KAudioCreator: posibilidad de enviar los datos CDDB al servidor;

• KGhostView: posibilidad de marcar y buscar el texto;

• Klatin: añadir diccionario latín;• KMenu: menú de KDE reconstruido

y orientado hacia las tareas.

Como podemos ver, muchas cosas nuevas fueron implementadas en el desarrollado actualmente KDE 3.3. Fijémonos que se pueden descargar las fuentes más nuevas de KDE desde los servidores CVS, para ver los progresos realizados desde la edición de la última versión estable. Sinceramente recomiendo probar las últimas versiones de KDE y enviar un máximo número posible de informes sobre errores de este entorno: cuanto más haya, más rápido re-cibiremos la versión estable.http://developer.kde.org/development-versions/kde-3.3-features.htmlhttp://bugs.kde.org/http://developer.kde.org/build/compile_cvs.html

Kopete

Page 30: LiNUX+ DVD 2

linuxfreshaktualnościactualidades

Noticias

28 Linux+ 2/2004

MozLinker 0.2.2MozLinker es un interesante complemento a Mozilla que funciona también en Firefox. Permite localizar en el menú enlaces descargados del archivo remoto RDF. Se pueden localizar de dos maneras: o bien en forma de pestañas en el menú, o bien como botones en una barra aparte. Los enlaces pueden actualizarse manualmente, automáticamente o cada cierto periodo de tiempo. La versión actual soporta únicamente RSS 1.0. En comparación con la versión anterior se han introducido una serie de mejoras; entre otras, no deberían de aparecer ya los enlaces y directoriosdoblados, se ha mejorado el botón de recarga y muchas funciones más.http://freshmeat.net/projects/mozlinker/

Wasabi 0.2.1Wasabi es una herramienta que sirve para monitorizar los archivos del registro del sistema. Esta aplicación busca logs, comparándolos con las expresiones regulares dadas y, en caso de descubrir líneas que coincidan, avisar al usuario. El aviso se envía por correo electrónico y se puede enviar después del evento, así como después de un resumen temporal. El destinatario puede ser uno o más usuarios. Esta versión, entre otros, mejora las cabeceras que faltan del código SMTP y añade la posibilidad de esconder la PID.http://freshmeat.net/projects/wasabi/

Mozilla Thunderbird 0.7Thunderbird es un excelente cliente de correo electrónico que surgió de una total reconstrucción del módulo de correo de Mozilla. Es una aplicación que funciona por separado, no sólo en la plataforma Linux, sino también en otras. En la edición más reciente el paquete de instalación fue reducido, se ha mejorado el rendimiento, se han añadido nuevos administradores de temas y suplementos, así como las herramientas para analizar errores del funcionamiento de aplicación, se ha introducido el marcado en colores de los fragmentos citados de enunciados y se ha permitido crear muchas identidades para una cuenta de correo.http://freshmeat.net/projects/thunderbird/

Kandid 0.3.6

Nos hemos acostumbrado a que crea-mos gráficos trazándolos nosotros

mismos o generándolos a base de los parámetros dados. Sin embargo, ¿pueden los mismos gráficos evaluarse desde los más simples hasta los más complicados, aceptando los rasgos que creemos buenos? Resulta que sí. Justamente esta forma de tratar los gráficos nos asegura la aplicación Kandid.

En esta aplicación tenemos a nuestra disposición un cierto número de dibujos. Los mejores de ellos coinciden y, en con-secuencia, surge una nueva generación. Al igual que en la naturaleza, los peores dibujos deberían perderse en el precipicio del olvido y los mejores deberían sobre-vivir. El usuario es quien decide cuáles son los mejores. Él mismo puede decidir que la siguiente generación no se cree con el uso de toda una población, sino tan sólo con el uso de dos padres. Los resultados se pueden guardar en el disco en forma de un archivo gráfico o pueden imprimirse. Podemos también compartir el cromosoma (conjunto de parámetros) del mejor dibujo con otros usuarios de la aplicación.

Kandid fue escrito en Java, por lo tanto, si queremos usarlo tenemos que instalar Java en el sistema. Además, si queremos emplear la completa funcionalidad de la aplicación, deberíamos instalar las apli-caciones Fractal Flames (http://flam3.com/) y POV-Ray (http://www.povray.org/ ).

La instalación de la aplicación no causa ningún problema. Se limita a descargar el archivo de la página principal del proyecto y desempaquetarlo. Luego, es suficiente entrar en el directorio creado y ejecutar el script ./kandid.

Después de ejecutar la aplicación, nos saluda el creador, en el cual selecciona-mos los tipos de poblaciones y colores, y el tamaño de la población. El tamaño de la población es el de la matriz de los dibu-jos que queramos ver en la pantalla. Una población mayor nos asegura más varie-dades, es más fácil encontrar el dibujo que nos interese. Después de terminar el creador, empezamos el verdadero traba-jo. Vamos a ver los dibujos generados, de los cuales la mayoría se parecerán entre sí. Arriba se encuentran los botones de los que por el momento nos interesan tan sólo + y –. El menos está en rojo, lo cual significa que el dibujo será sustituido por

uno nuevo en la siguiente generación. Cuando uno de los dibujos nos guste, pulsaremos en el menos para que cambie el color en blanco. Luego, podemos vol-ver a generar los demás dibujos pulsando el botón que está en el panel izquierdo, el tercero desde arriba (generate random next generation). Repetimos toda la operación unas cuantas veces hasta que tengamos los dibujos que nos gusten. Desde luego, si algún dibujo deja de gustarnos, po-demos eliminarlo volviendo a marcar el menos. Cuando ya tengamos el conjunto de dibujos que nos gusten, será la hora de pasar a la siguiente etapa, es decir, la evo-lución. Si marcamos el menos en verde, podemos marcar uno de los dibujos como el mejor. Sus "genes" serán tratados como dominantes. Ahora pulsamos el botón que se encuentra en el panel izquierdo, el primero de arriba (generate next genera-tion with sexual reproduction). Los dibujos que surjan van haciéndose cada vez más interesantes, sin embargo, entre ellos siguen encontrándose unos que no valen nada. Volvemos a cambiar el marcado de los que menos nos gustan y, luego, indicamos el mejor dibujo y repetimos toda la operación. Podemos guardar las mejores poblaciones empleando el icono del disquete y los mejores dibujos po-demos exportarlos al archivo: para ello sirve el botón E (export picture) situado encima del dibujo. Sólo nos queda expe-rimentar y buscar el dibujo más bonito.

En la nueva versión se han corregido unos errores de los módulos PostScript y de la impresión. Actualmente los di-bujos para imprimir se exportan con la resolución 300 DPI (antes se usaba sólo la 72 DPI).

http://freshmeat.net/projects/kandid/

Quizás voy a fijar esta figura como tema

Page 31: LiNUX+ DVD 2

[email protected]

29www.lpmagazine.org

sección llevada por Piotr Machej

NoticiasMod_bt 0.0.9Mod_bt es tracker de BitTorrent, que funciona como módulo del servidor Apache. Se puede configurar libremente cambiando el archivo httpd.conf del servidor Apache. El objetivo del autor de la aplicación es integrar BitTorrent con Apache para que cualquier creador de páginas web que comparta grandes archivos pueda ceder la carga de la conexión a los clientes. La versión actual subsana algunos errores. Se ha añadido también la documentación.http://freshmeat.net/projects/modbt/

LiteSpeed Web Server 1.5Hoy en día las páginas web pueden sufrir ataques de todo tipo. Con esta idea, surgió LiteSpeed Web Server, que puede funcionar tanto como un servidor separado de las páginas web como un vigilante que guarda el acceso a un servidor de páginas. Además de las funciones estándar, tales como el soporte de HTTP/1.1, SSL, CGI, PHP, JSP o la compresión GZIP, ofrece también el soporte de los archivos .htaccess, el entorno chroot, protegido contra los ataques de tipo DoS, así como los mecanismos de restauración de información. La aplicación se instala de los archivos binarios ya preparados (no se han publicado los códigos fuente), y en la versión Standard su empleo es gratuito tanto para el uso privado como para el comercial. En la versión más reciente se han introducido muchas mejoras, entre otras, el panel de administración.http://freshmeat.net/projects/lsws/

Ringtone Tools 2.20Junto a la popularización de los teléfonos móviles y la continua extensión de sus funciones, surgió la necesidad de crear por separado timbres y logs. Una de las herramientas de este tipo es Ringtone Tools. Es un convertidor de formatos que permite convertir melodías guardadas del formato MIDI o RTTL en el formato reconocido por diferentes teléfonos móviles. En caso de crear logs, se pueden emplear archivos en el formato BMP, GIF o TXT. Actualmente la aplicación soporta algunos modelos de tales teléfonos como: Ericsson, Kyocera, Motorola, Samsung, Nokia o Siemens. En la nueva versión se ha añadido el soporte del formato GIF.http://freshmeat.net/projects/ringtonetools/

Xawdecode 1.9.2

Ver películas con Linux es algo normal. Si nuestro ordenador está dotado de

la tarjeta TV, no hay obstáculo para ver también la televisión. Una de las aplicacio-nes que nos lo permite es Xawdecode. Puede servirnos no sólo para ver televisión sino que también puede sustituir la grabadora de vídeo. Los archivos se pueden guardar empleando los códigos ffmpeg, xvid o DivX 5.05. Gracias a la cooperación con AleVT, podemos también leer el teletexto.

Podemos realizar la instalación de la aplicación de las fuentes o de los paquetes preparados para diferentes distribuciones (tenemos disponibles tanto los paquetes RPM como los DEB).

Después de ejecutar la aplicación por primera vez (con el comando xawdecode), merece la pena empezar por buscar las cadenas disponibles. Suerte que Xawdecodeposee script que lo hace por nosotros. Primero tenemos que fijar los adecuados parámetros. Para ello abrimos el menú pulsando el botón derecho del ratón en la ventana de la aplicación. En la sección Channel Options cambiamos la opción TV Norm en PAL. Luego, la opción Video Source fijamos en Television y la opción Frequency table fijamos en pal-europe-west. Gracias a estos valores deberíamos poder encon-trar los canales emitidos en España, tanto usando la antena exterior como el cable. Podemos ya pulsar el botón Open Channel Editor que nos da acceso a la edición del listado de canales. Aquí pulsamos el botón Scan TV, lo cual hará ejecutar el script de búsqueda en la ventana separada. Tenemos que contestar unas preguntas. La primera volvemos a contestar con PAL (seleciona-mos el valor 0), la segunda pal-europe-west (valor 7). Ahora, durante unos minutos la aplicación, está buscando canales. Des-pués de terminar la búsqueda, tenemos la posibilidad de añadir los canales manual-mente. Cuando estemos contentos con los resultados de la búsqueda, contestaremos la pregunta introduciendo el valor 0. En la siguiente etapa podemos ordenar los cana-les en el orden que nos parezca oportuno. Damos los siguientes números de cana-les que van a encontrarse en la posición primera, segunda y en las siguientes. La última pregunta se refiere a la adición de la fuente exterior: normalmente contestamos n. En la ventana Channel Editor podemos, después, ajustar los nombres de los canales a nuestras necesidades. Podemos conmutar

entre los canales con las teclas del cursor (arriba/abajo). Para mostrar la imagen en la pantalla completa sirve la tecla [F], y con la tecla [T] podemos forzar la posición de la ventana con la imagen de televisión por encima de todas las aplicaciones.

Una funcionalidad muy interesante es el empleo de Xawdecode como grabadora de vídeo. Podemos no sólo grabar el pro-grama visto actualmente, sino también fijar la hora y el día de la grabación. Las opciones de grabación son accesibles des-pués de pulsar las teclas [Alt]+[R]. Aquí configuramos el encodificador que vamos a emplear, así como los demás parámetros de grabación. El ajuste del tamaño de la imagen, el valor de bitrate o la calidad dependen del espacio que tengamos en el disco duro y de la calidad que espe-remos. Al final fijamos la ruta en la cual vamos a grabar la película. Si pensamos programar la grabación con antelación, debemos tener instalados en el sistema los demonios At y Cron. Al pulsar el bo-tón Shedule a record, iniciamos el script con el cual podemos administrar las fechas de las grabaciones programadas. En caso de una simple programación de la hora de grabaciones, tenemos menos opciones disponibles que en el modo avanzado (Shedule a record in expert mode). En el segundo caso podemos programar no sólo grabaciones separadas, sino también cíclicas (por ejemplo, nuestra serie prefe-rida). Además, tenemos mucha influencia en tales parámetros como el encodifica-dor y la resolución.

En la nueva versión de la aplicación se ha actualizado sobre todo la nueva interfaz de usuario. Además, se ha añadido el so-porte para el encodificador ffmpeg huffyuv. El script xawdecode_scan.sh funciona ya en los kernels de la serie 2.6.

http://freshmeat.net/projects/xawdecode/

Qué bien tener Discovery Channel...

Page 32: LiNUX+ DVD 2

linuxfreshaktualnościactualidades

Noticias

30 Linux+ 2/2004

ELinks 0.9.2rc1Pese a que existen navegadores muy extendidos de páginas web que trabajan en el entorno gráfico, muchos usuarios siguen prefiriendo rápidos y cómodos navegadores de texto. Entre ellos el más importante parece ELinks, que es la extendida versión del navegador Links. Da soporte de marcos, tablas y permite descargar archivos en segundo plano. Tiene también otras funciones importantes, como el soporte de la autorización de HTTP y de las cookies. La versión actual es el primer Release Candidate de la versión estable 0.9.2. Incluye mejoras de los errores más pesados, que se detectaron en la versión anterior, número 0.9.1.http://freshmeat.net/projects/elinks/

IrcLeech 0.2No todos saben que IRC (Internet Relay Chat) puede servir no sólo para hablar. Para muchas personas es fuente de archivos que normalmente no se pueden encontrar en otras partes. Los aficionados a manga y anime pueden descargar de aquí las obras que no se han publicado en España, traducidas por los aficionados para los aficionados. También se puede acceder a canales desde los cuales se pueden descargar películas, música o aplicaciones interesantes. La descarga de los datos desde IRC puede parecer para algunos bastante difícil. Para ellos se creó la aplicación IrcLeech. Su objetivo es facilitar la descarga de los archivos de los servidores XDCC localizados en IRC a las personas que no quieran profundizar la sintaxis de la línea de comandos. La aplicación fue escrita en el lenguaje C#, con lo cual para funcionar correctamente requiere Mono y GTK#. Para la versión más reciente de la aplicación se recomienda la versión Mono 1.0 Beta3.http://freshmeat.net/projects/ircleech/

Rssh 2.2.1A veces existe la posibilidad de compartir archivos sólo con algunas personas, teniendo en cuenta la seguridad. La creación del servidor FTP no siempre es una buena solución. Por otra parte, si el archivo tiene que enviarse por SCP, al mismo tiempo la persona consigue acceso a la shell vía SSH. En este caso es muy útil la aplicación Rssh. Es una shell restringida (ing. restricted shell), gracias a la cual el administrador puede limitar acceso a los usuarios seleccionados a SCP y SFTP. En la última versión se han introducido mejoras relacionadas con la seguridad, así como se ha añadido el soporte de CVS, rdist y rsync.http://freshmeat.net/projects/rssh/

Hping 3.0-alpha-2

Hping es una herramienta que debería conocer cada administrador de la

red o sistema. Incluso los usuarios de or-denadores individuales, si quieren prote-ger su sistema por medio del cortafuegos (ing. firewall), pueden sacar provecho del empleo de la aplicación Hping. En pocas palabras, la aplicación sirve para generar diferentes paquetes ICMP, UDP o TCP y mostrar la respuesta conseguida del ordenador remoto. Es muy importante que el usuario pueda fijar prácticamente todos los parámetros de este paquete, gracias a lo cual la herramienta sirve para analizar cortafuegos, sistemas de detección de intrusos o para analizar el rendimiento de la red. Se pueden emplear para escanear los puertos, reconocer el sistema operativo instalado en el orde-nador remoto e incluso para enviar archi-vos. Para los principiantes es una buena herramienta para conocer en la práctica el protocolo TCP/IP (gracias a ella podemos observar, por ejemplo, el valor del campo ID de la cabecera IP).

En comparación con la rama 2.0 de la aplicación, las versiones 3.0 han sido enri-quecidas con, por ejemplo, el motor APD (Ars Packet Description) que permite tra-ducir las descripciones de los paquetes, guardados en forma de texto, en paquetes preparados para enviar; también al revés (creación de la representación textual de los paquetes reales). Además, se ha facili-tado el empleo del lenguaje de scripts Tcl. Permite crear de una manera más fácil las aplicaciones destinadas al análisis y al aumento de la seguridad de las redes TCP/IP. Además, Hping sigue teniendo la funcionalidad completa, conocida de la serie 2.0, por lo tanto, podemos emplearlo libremente en la línea de co-mandos.

La instalación de la aplicación consis-te en desempaquetar las fuentes y reali-zar una serie de comandos: ./configure, make, make install (el último como usua-rio root). Después de instalar podemos llamar a cualquiera de los comandos: hping, hping2 o hping3 (todos localizados en el directorio /usr/sbin/ indican el archi-vo hping3).

Cuando ejecutemos el comando hping sin parámetros, entraremos en el modo interactivo. En este modo podemos dar comandos, fijar las variables, así como teclear todas las series de comandos en

Tcl. Asimismo, podemos localizar tales comandos en un archivo separado (por ejemplo, script.htcl) y luego dar el coman-do hping exec script.htcl listado de argumentos, donde el_listado_de_argu-mentos son los argumentos opcionales transferidos al script. Podemos obtener más información sobre la sintaxis de los comandos en la página principal del pro-yecto y en la documentación.

Puede resultar muy interesante el análisis de los scripts de ejemplo, situa-dos en el subdirectorio lib/ del directorio que incluye fuentes. Por ejemplo, si que-remos analizar los paquetes que pasan por la interfaz seleccionada, podemos emplear el script apd.htcl. Hay que abrirlo y sustituir el valor eth0 de la línea set xx [hping recv -hexdata eth0 0 100] por el nombre de la interfaz que nos interese. Luego, podemos ejecutar el script con el comando hping exec apd.htcl (en el di-rectorio donde se encuentra este archivo), y en la pantalla veremos la representación textual de los paquetes enviados por la interfaz. Es una buena forma de conocer la representación empleada por APD. Es muy clara y, por lo tanto, muy útil en el uso. Si, a la hora de escribir el script, no usamos todas las posibili-dades de los campos, Hping tratará de aceptar valores razonables para ellos (por ejemplo, por sí mismo contará la suma de control).

En la nueva versión se han añadido dos parámetros nuevos de la llamada de la aplicación. El primero de ellos (--flood) permite enviar paquetes lo más rápido posible. El segundo (--beep) produce un so-nido a la hora de recibir cada paquete. Ade-más, se ha actualizado la documentación y se han corregido unos errores relaciona-dos con el archivo Makefile.http://freshmeat.net/projects/hping/

Así son los pings normales en la representación de texto

Page 33: LiNUX+ DVD 2

[email protected]

31www.lpmagazine.org

sección llevada por Piotr Machej

NoticiasAcrobat Reader 5.0.9Aunque la mayoría de las distribuciones de Linux incluye aplicaciones para leer archivos en el formato PDF, tales como Xpdf, muchos usuarios están acostumbrados a la aplicación Acrobat Reader, conocida de Windows. Suerte que exista también la versión para Linux. Permite de forma muy cómoda leer e imprimir los documentos en el formato PDF. Desgraciadamente, las versiones para Linux no se desarrollan tan activamente como las de Windows, así pues, mientras en el sistema Windows podemos gozar de la versión 6.0.1, para Linux tenemos apenas la 5.0.9. No podemos soñar con una funcionalidad completa que tuvimos en Windows. En la versión más reciente se han mejorado algunos errores relacionados con la seguridad.http://freshmeat.net/projects/acrobatreader/

Krusader 1.40-beta2Muchos usuarios prefieren emplear todo tipo de administradores de archivos para operaciones con archivos, por ejemplo, una herramienta popular llamada Midnight Commander. También en el entorno gráfico existen aplicaciones accesibles de este tipo, por lo tanto, no es necesario ejecutar MC en el emulador de terminal. Una de estas aplicaciones es Krusader, destinada para el entorno KDE. Además de las operaciones estándar en los archivos, ofrece un extendido soporte de archivos, el soporte para los sistemas de archivos montados, el soporte de FTP, un avanzado módulo de búsqueda, la posibilidad de sincronizar los directorios, etc. La nueva versión de desarrollo incluye mejoras y la actualización de traducciones.http://freshmeat.net/projects/krusader/

Advanced Strategic Command 1.15.0Advanced Strategic Command (ASC) es un juego que seguramente despertará recuerdos de los que hace mucho jugaron a los juegos de la serie Battle Isle. El juego es desarrollado activamente: además de leer sus propios mapas, es capaz de leer los creados para Battle Isle, lo cual hace que la cantidad de batallas a realizar sea bastante grande. Podemos descargar el conjunto de mapas de la página principal del proyecto. En la versión reciente se ha añadido el sistema de inventos. Aparte de eso, se ha actualizado la campaña y se ha perfeccionado el sistema del juego, con lo cual actualmente funciona más rápido. Se han corregido bastantes errores.http://freshmeat.net/projects/asc/

Samhain 1.8.9

Independientemente del nivel de segur-dad del servidor, siempre existe la posi-

bilidad de que alguien lo ataque. Cuando fallen todos los cortafuegos, protecciones y contraseñas, lo más importante será la posibilidad de ver si nuestro sistema ha sido penetrado. En este caso muy útiles son los sistemas de detección de ataques (IDS – Intrusion Detection System). Una de las aplicaciones que cumple tal papel es Samhain. Permite controlar la integridad de los datos y detectar ataques no sólo en los ordenadores individuales, sino tam-bién en las redes enteras. Esto es posible gracias al hecho de que el mismo Samhain sabe funcionar en la arquitectura cliente/servidor, donde los clientes se ocupan de monitorizar los respectivos sistemas y el servidor central recopila todos los logs. Samhain puede también ejecutarse por separado: en este caso puede funcionar también como demonio. La funcionalidad de esta aplicación se basa en comparar el estado actual del sistema de archivos con el estado guardado en la base. Está claro, la base debería generarse en el sistema en el que confiamos (por ejemplo, recién ins-talado). Samhain puede también controlar los archivos ejecutables con los bits fija-dos SUID/SGID, buscar rootkits e incluso esconder su propia presencia.

Teniendo en cuenta el carácter de Samhain, después de descargar las fuentes vale la pena comprobar si alguien las ha modificado. Después de desempaquetar el archivo descargado (tar xzvf samhain-current.tar.gz), deberíamos conseguir dos archivos: samhain-1.8.9.tar.gz y sam-hain-1.8.9.tar.gz.asc. Deberían estar firma-dos con la clave 0F571F6C (Rainer Wich-mann). Podemos descargarla con el comando gpg --keyserver blackhole.pca.dfn.de

--recv-keys 0F571F6C. Luego, compro-bamos la corrección de los archivos: gpg --verify samhain-N.N.N.tar.gz.asc

samhain-1.8.8.tar.gz. Cuando consigamos la confirmación de la firma correcta, pode-mos desempaquetar el archivo respectivo (tar xzvf samhain-1.8.9.tar.gz). La com-pilación, en el caso de la versión separada, es normal: ./configure, make, su, make install. Además, podemos dar el coman-do make install-boot para configurar los scripts iniciales. En caso de que queramos compilar Samhain como cliente y servidor, tenemos que usar la documentación, ya que además de las opciones adicionales en

el comando ./configure, hay que conocer el tema de la autorización del cliente. En vez de instalar la aplicación con los comandos make y make install, podemos crear un paquete adecuado para nuestro sistema. Para ello es suficiente (debemos tener la autorización del superusuario) dar el respectivo comando: make rpm o make deb. Después de terminar la compilación, nos van a avisar dónde se encuentra el paquete, que podemos ya instalar nor-malmente.

El archivo principal de configuración de Samhain es /etc/samhainrc. En él deter-minamos la forma en la cual deberían ser tratados los respectivos archivos (por ejemplo, el tamaño de los archivos del re-gistro del sistema puede ser cada vez ma-yor y esto no debería causar alarma). El archivo incluye extendidos comentarios que facilitan mucho su ajuste a nuestro sistema. Además, allí fijamos los métodos de avisar (por ejemplo, a los destinatarios del correo electrónico), así como todas las demás opciones. Cuando ajustemos este archivo a nuestras necesidades, de-beríamos iniciar la base. Para ello sirve el comando samhain -t init -p info. Lue-go, cuando queramos actualizar la base, por ejemplo, después de unos cambios más grandes del sistema, ejecutamos el comando samhain -t update. Nos queda tan sólo ejecutar de vez en cuando la apli-cación para comparar el estado actual del sistema de archivos con la información incluida en la base. Lo realizamos con el comando samhain -t check.

En la nueva versión se ha corregido el error que causaba problemas si se había determinado a más de un destinatario del correo. Se ha corregido también el error re-lacionado con el escape de la memoria, así como unos errores más.http://freshmeat.net/projects/samhain/

A los que quieran configurar Samhain en la arquitectura cliente/servidor les espera una instrucción detallada

Page 34: LiNUX+ DVD 2

linuxfreshaktualnościactualidades

Noticias

32 Linux+ 2/2004

Hdup 1.6.32Cada persona que alguna vez haya sufrido avería del disco duro que incluía datos importantes (por ejemplo, la tesina que actualmente estabamos escribiendo), seguramente se da cuenta de la necesidad de preparar copias de seguridad de los datos. La aplicación Hdup justamente permite la realización de la copia de seguridad del sistema de archivos. Permite no sólo comprimir el archivo sino también codificarlo y enviar al ordenador remoto. La recuperación del sistema es también posible desde el archivo localizado en el ordenador remoto. En la última versión estable se han añadido muchos conmutadores, entre otros, los que permiten ignorar los errores devueltos por Tar a la hora de recuperar el archivo, o bien ignorar los errores del archivo de configuración. Puede resultar muy útil el conmutador -d que permite ejecutar la aplicación sin tocar el sistema de archivos.http://freshmeat.net/projects/hdup/

Skype 0.90.0.6Skype es una aplicación para conversaciones en voz alta que goza de una creciente popularidad. Sus ventajas más importantes son la buena calidad del sonido y la posibilidad de conectar sin problemas (en la mayoría de los casos) a los ordenadores que se encuentran detrás del cortafuegos o del enrutador. Hasta hace poco los usuarios de Linux no podían acceder a esta aplicación, pero últimamente la situación ha cambiado. En comparación con la versión para el sistema Windows, la versión para el sistema con un pingüino en el escudo tiene menos funciones (por ejemplo, no tiene conferencia o conexión a la red de teléfonos); sin embargo, es suficiente para mantener conversaciones entre los usuarios de esta aplicación. Ya que es versión beta, hay que tener en cuenta que la aplicación puede que no funcione correctamente con algunas configuraciones. No se ha publicado el código fuente (y no se publicará), pero los autores han preparado muchas versiones de instalación para diferentes configuraciones, también con las libererías añadidas estáticamente. En la última versión se han añadido más paquetes RPM con las dependencias mejor solucionadas. Se ha facilitado la posibilidad de configurar el puerto de entrada. Además, se han introducido bastantes mejoras de errores.http://freshmeat.net/projects/skype/

TorrentFlux 1.3

Actualmente uno de los protocolos más populares, empleados para descargar

archivos de las redes P2P es BitTorrent. Gra-cias a él, podemos reducir la carga del ser-vidor que facilita los datos. Es así porque los usuarios que descargan el archivo lo facilitan simultáneamente a los demás. Tor-rentFlux es una solución muy interesante, que permite administrar la descarga de los archivos por medio de BitTorrent. Permite crear a muchos usuarios, de los cuales cada uno puede marcar los archivos a descargar. La interfaz tiene un aspecto muy agrada-ble, es cómoda en el uso y, además, está dotada de temas, gracias a lo cual todos los usuarios pueden ajustar el aspecto a su gusto. Además, presenta al corriente el uso actual de las reservas del disco duro y el progreso de la descarga de los archi-vos. Todo el código está escrito en PHP y es tan sólo una superposición en el cliente original de BitTorrent.

TorrentFlux para funcionar necesita el cliente original de BitTorrent, por tanto, hay que descargarlo de la página http://bitconjurer.org/BitTorrent/index.html e insta-lar. Es necesario también instalar y eje-cutar la base de datos MySQL. Después de desempaquetar el archivo TorrentFlux, hay que crear una nueva base de datos, denominada torrentflux. Hace falta crear desde el principio al usuario que tenga acceso a esta base (las instrucciones detalladas se encuentran en la documen-tación de MySQL). Luego, hay que usar el archivo torrentflux.sql para crear las estructuras de las tablas y de los valores predeterminados. El contenido del sub-directorio html/, que se encuentra en el directorio donde hemos desempaquetado el archivo; hay que trasladarlo al direc-torio disponible para el servidor Apache (por ejemplo, /var/www/html/torrentflux/). Luego, modificaremos el archivo config.php, localizado en este directo-rio. La variable que incluye $cfg["path"] debería indicar el directorio en el cual se guardarán los archivos descargados. Hay que crearlo y fijar los permisos en 777. Las variables $cfg["db_host"], $cfg["db_na-me"], $cfg["db_user"] y $cfg["db_pass"] determinan la localización de la base de datos y al usuario que tenga acceso a la base con la contraseña indicada. La última variable cuyo valor tenemos que cambiar es $cfg["btphpbin"]. Como su valor fijamos el nombre del directorio en

el cual se encuentran los scripts del cliente de BitTorrent. Además, trasladamos a este directorio el archivo btphpdownload.py y le damos los permisos de ejecución a todos los usuarios. La última actividad es ejecu-tar el navegador y abrir la dirección web, en la cual hemos puesto nuestra página (por ejemplo, http://localhost/torrentflux/). Al abrirla por primera vez se nos pedirá dos veces el nombre de usuario y la con-traseña. Son datos que van a identificar al primer usuario (y a la vez al superu-suario) de la aplicación TorrentFlux. Des-púes de registrarnos, vemos una interfaz cómoda. A nosotros nos interesan sobre todo dos campos: Select a Torrent for upload y URL for the Torrent File. En el primero de ellos podemos localizar la ruta hacia el ar-chivo torrent, que se encuentra en nuestro disco duro, y pulsamos el botón Upload. En el segundo localizamos la ruta hacia el ar-chivo torrent, que se encuentra en la página remota web, y pulsamos en Get File. Cada una de estas actividades debería terminar con la aparición del archivo descargado en el listado de la parte inferior de la ventana. Para empezar a descargar, hay que pulsar el botón señalado con la flechita verde.

En la nueva versión se han introducido unos cambios muy importantes. Cuando se detenga la descarga de los archivos sin haber empleado TorrentFlux, este archivo se señalará como incompleto. Los archivos de los usuarios se guardarán en los subdirec-torios con el nombre igual al del usuario. Los archivos descargados se ordenan según la fecha. En caso de aparecer proble-mas con el tracker, se muestra la respectiva información. Para soportar la descarga de archivos ya no se emplea Screen. En la pá-gina principal se ha añadido el campo de búsqueda del servicio Suprnova.org. Ade-más, se han introducido unos cambios del soporte de RSS.http://freshmeat.net/projects/torrentflux/

Gracias a los temas podemos ajustar el aspecto de la interfaz a nuestro gusto

Page 35: LiNUX+ DVD 2

[email protected]

33www.lpmagazine.org

sección llevada por Piotr Machej

NoticiasNamexif 1.0Namexif es una pequeña aplicación, útil para los usuarios de cámaras digitales. Permite cambiar automáticamente los nombres de archivos de tal manera que reflejen la fecha de sacar la foto (hasta en segundos). Para ello emplea los datos EXIF incluidos en los archivos con fotos. Si unas fotos se han sacado a la misma hora, cambiará tan sólo el nombre de la primera de ellas.http://freshmeat.net/projects/namexif/

Anti_off line_browser.php 0.2A pesar de las peticiones de los creadores de las páginas web, algunos usuarios no saben abstenerse de emplear todo tipo de descargadores (ing. downloaders) y de descargar varios archivos a la vez. En este caso muy útil para reducir la carga de la conexión puede ser el script Anti_offline_browser escrito en PHP. Trata de reconocer al navegador y analiza la cantidad de peticiones en un segundo. La versión más reciente incluye mejoras del soporte de sesiones y elimina algunos errores. Además, se ha introducido la comparación del nombre del navegador que intenta conectarse con la lista negra.http://freshmeat.net/projects/antiofflinebrowser/

For each File 1.6.9For each File es un script de shell muy interesante y para muchos usuarios muy útil. Permite ejecutar un determinado conjunto de comandos para los archivos indicados por el usuario. Gracias a él se pueden cambiar, por ejemplo, los nombres de muchos archivos según un esquema fijado o ejecutar en ellos cualquier otra operación. Los usuarios que conocen mejor las aplicaciones de shell seguramente preferirán sus propias soluciones, sin embargo, para la mayoría de los usuarios esta herramienta puede resultar muy útil. En el paquete tenemos unos scripts preparados, los que, entre otras cosas, permiten crear directorios de archivos MP3 a base de los valores de los campos ID3 o cambiar los nombres de los archivos en minúsculas. En la nueva versión se ha añadido la opción (--mask), la cual permite filtrar los nombres de los archivos de modo recursivo. Además, la documentación de la aplicación ha sido convertida en el formato HTML para integrar el formateo en las traducciones de diferentes idiomas.http://freshmeat.net/projects/ff/

PHPlist 2.8.8

El correo electrónico suele estar lleno de spam, sin embargo, sigue sien-

do una de las formas más populares de comunicarse en Internet. Por medio del correo podemos no sólo comunicarnos con un conocido de la otra parte del mundo (¡e incluso de la habitación al lado! ;P), sino también recibir la información que nos in-terese, por ejemplo, sobre la nueva versión de una aplicación, sobre un nuevo juego o reunión de ciclistas que tendrá lugar en nuestra ciudad. El sistema cuyo objetivo es facilitar el envío de tales correos es PHPlist. Según dice el mismo nombre, el sistema de soporte de listados de información fue escrito en PHP. Permite enviar correos directamente desde la página web. Los usuarios pueden registrarse en muchos de los listados ofrecidos, sin embargo, el siste-ma se ocupará de que no reciban copias del mismo correo enviado a ciertos listados. El sistema maneja perfectamente la corres-pondencia en serie, permitiendo introducir en los correos campos especiales que luego serán sustituídos por valores adecuados (por ejemplo, por el nombre y apellidos del destinatario).

Después de desempaquetar el archivo, nosotros mismos tenemos que realizar una serie de actividades. Vamos a empezar por trasladar el subdirectorio public_html/lists/ del directorio de archivos al directorio disponible en nuestro servidor web (por ejemplo, con el comando cp -R lists/

/var/www/html/, dado en el subdirectorio phplist-2.8.8/public_html/ ). Luego, tenemos que corregir el contenido del archivo de configuración (en nuestro ejemplo será el archivo /var/www/html/lists/config/config.php). En él debemos fijar las variables $database_host, $database_name, $database_user y $database_password como valores que facilitan la conexión con la base de datos MySQL. Además, si instalamos archivos en un directorio diferente que el subdirec-torio lists/, que se encuentra en el directorio principal del servidor web, deberíamos corregir el valor de la variable $pageroot. Te-nemos que recordar que ésta incluye la ruta relacional, contada del directorio principal del servidor web (por ejemplo, /var/www/html/ ). Nos queda crear la base de datos en la cual se guardarán todos los valores. Lo hacemos con el comando mysqladmin crea-te phplistdb (si en el archivo config.php no hemos indicado un nombre diferente de la base de datos). Debemos encargarnos

de que el usuario indicado en el archivo de configuración tenga acceso a esta base. Ahora ya podemos registrarnos en el panel administrativo, abriendo en el navegador la página http://localhost/lists/admin/ (la di-rección puede ser diferente, en caso de que hayamos instalado la página en el servidor remoto o en un directorio diferente). Con la primera ejecución vamos a recibir un men-saje de error que dice que la base no ha sido iniciada. Al pulsar el enlace indicado, en la base de datos se introducirá la información adecuada. Si seleccionamos el enlace phplist setup nos trasladamos a la página principal del panel administrativo. Al introducir el nombre predeterminado del usuario (ad-min) y la contraseña (phplist), nos encontra-remos por fin en el panel administrativo. En este lugar vemos un listado de acciones que deberíamos realizar antes de empezar el verdadero trabajo. Lo más importante es cambiar la contraseña del administrador. Luego, fijamos la configuración general, el listado de atributos exigidos a los usuarios al registrarse en el grupo, el listado de grupos de noticias y, por fin, la creación de páginas para registrarse en estos grupos. En esta etapa la interfaz es ya bastante intuitiva y está bien descrita, por tanto, los usuarios no deberían tener problemas.

Dependiendo de la configuración de PHP, a la hora de instalar la página, puede que exista la posibilidad de introducir al-gunos cambios pequeños en el código o en la configuración. Por ejemplo, en mi caso, parte de los archivos no fue convertida por PHP, sino que quedó pegada a la página como texto. La solución es o convertir más de diez archivos y sustituir en ellos el mar-cador de apertura <? por el completo <?php o fijar en el archivo /etc/php.ini la opción short_open_tag = On.

Esta versión lleva sólo unas pequeñas mejoras, que tienen como objetivo aumen-tar la estabilidad del código.http://freshmeat.net/projects/phplist/

Hemos configurado ya la mitad

Page 36: LiNUX+ DVD 2

juegosaktualnościactualidades

Noticias

34 Linux+ 2/2004

Wormux 0.4Si alguna vez jugaste a Worms, seguramente sabrás que es un juego muy cautivador. Cuando los “gusanos” conquistaban el mundo, nosotros, los usuarios de Linux, mirábamos este fenómeno con cierta envidia. Así que a muchos de vosotros os alegrará el hecho de que salieran una tras otra dos nuevas versiones (0.3 y 0.4) del juego Wormux, el clon fiel (y lo que es más importante, libre) de Worms, basado en la librería ClanLib. El proyecto avanza, por lo visto, con mucha dinámica, y en la versión 0.4 el juego dispone ya de 11 mapas, 10 pieles y 10 tipos de armas con los que destruir a los enemigos. ¡Nada más que jugar! http://www.haypocalc.com/wormux/en/index.php

Nuevos controladores ATI...Acaba de salir la versión de los controladores ATI fglrx 3.9.0 con el soporte de aceleración 3D para las tarjetas de la serie Radeon. Entre las modificaciones podemos destacar el mejor soporte de las nuevas versiones del núcleo en las distribuciones Red Hat, Fedora y SuSE, así como la detección correcta de las tarjetas matrices basadas en el chipset VIA KT400. Los paquetes RPM (respectivamente en las versiones para XFree86 4.1.0, XFree86 4.2.0, XFree86 4.3.0) pueden ser descargadas desde la página web de la empresa.http://www.ati.com/support/driver.html

... y nVidia también Recientemente la empresa nVidia publicó también nuevas versiones de los controladores Linux para sus tarjetas gráficas. Tienen el número 1.0-6106 y son disponibles tanto para la plataforma de 32 bits como para los procesadores de 64 bits AMD (AMD64). Las modificaciones más importantes son: el soporte de las tarjetas basadas en el chipset GeForce 6800, el servicio ACPI y la adición de la herramienta de configuración llamada nvidia-settings.http://www.nvidia.com/object/linux_display_ia32_1.0-6106.htmlhttp://www.nvidia.com/object/linux_display_amd64_1.0-6106.html

Tyrant 0.11Tyrant es un juego escrito en Java cuya instalación no es necesaria: basta un navegador de Internet con el plug-in de Java y conexión a Internet. Se puede también bajar y jugar off-line. Es un juego RPG al estilo Rogue, en el que encarnamos a un héroe solitario que atraviesa un mundo de magia y aventuras. Su ventaja adicional es la licencia: GNU GPL.http://www.mikera.net/tyrant/

TuxKart

T uxKart es un juego de carreras de kartsen el que compite el pingüino Tux

y sus adversarios, entre otros, el camaleón SUSE. El juego es muy parecido a Mario Kart o Crash Team Racing. Hace poco apa-reció su nueva versión con el número 0.4 y, aunque está lejos de la perfección, se nota un gran potencial del desarrollo.

La instalación de TuxKart no ocasiona problemas: si instalamos el juego desde las fuentes, basta con ejecutar la tríada de co-mandos: ./configure, make, make install. Sin embargo, hay que tener en cuenta las interacciones: TuxKart utiliza OpenGL (o alternativamente Mesa 3D) y la librería PLib. La mayoría de los problemas que sur-gen durante la compilación de este juego tienen que ver con OpenGL/Mesa 3D, si, en-tonces, tenemos instaladas adecuadamente estas librerías, no corremos ningún riesgo. Si, en cambio, no nos gusta compilar, podemos utilizar los paquetes listos para nuestra distribución.

El juego nos da la bienvenida con un menú de configuración bastante modes-to; podemos elegir una de las seis pistas accesibles y la cantidad de vueltas. Empe-zamos el juego. El objetivo de la carrera es, por supuesto, alcanzar la meta más rápido que los demás competidores, pero en TuxKart hay muchas maneras más de conseguirlo. Podemos aprovechar varios tipos de “ayuda”, como, por ejemplo, el imán (para engancharse al coche del otro jugador) o el cohete (para disparar contra

los adversarios). Debemos también agarrar o esquivar (en función del color) los peces y tener cuidado con los obstáculos puestos en el camino.

El mayor defecto de TuxKart es el nú-mero limitado de pistas, por lo que el juego puede aburrir rápido. Tampoco podemos cambiar el nivel de dificultad del juego, aunque los adversarios presentan un nivel bastante alto y no es tan fácil vencerlos. El juego no ofrece un editor de las pistas, pero sus autores en la página del proyecto des-criben de qué manera, con un poquito de esfuerzo, crear las pistas. Seguramente de-ben pensar en el futuro sobre algún editor sencillo con lo que TuxKart podría captar a los aficionados y ganar en atractividad. Además, falta la posibilidad de jugar en la red y es la característica que puede decidir sobre el éxito del proyecto.

La parte gráfica y sonora no impre-sionan pero están bien, y el cuidado de los autores por algunos detalles hace pensar que en el futuro será mejor. La nota general de TuxKart, teniendo en cuenta el estado de su desarrollo, es in-dudablemente positiva y el juego mismo digno de recomendación. Esperamos solamente que los autores no pierdan su entusiasmo y que el proyecto avan-ce, sobre todo, dado el hecho de que no sobran los juegos de código abierto y TuxKart fue publicado bajo licencia GPL.http://tuxkart.sourceforge.net/

TuxKart

Page 37: LiNUX+ DVD 2

[email protected]

35www.lpmagazine.org

sección llevada por Witold Kieraś

NoticiasUn bug irreal En todas las partes del popular juego FPS Unreal y en los juegos basados en su motor (Postal 2, Deus Ex y Rune) se ha detectado un error muy grave que permite la toma de control sobre el ordenador del jugador. El problema aparece en el modo del juego en red: el ordenador está expuesto al error de la saturación del búfer iniciado por el agresor. El hacker tiene entonces acceso a la máquina y puede arrancar sobre ella varias aplicaciones. El problema se elimina con el parche 3236 para UT2004, para descargar de la página del proyecto.http://www.unrealtournament.com/ut2004/downloads.php

Cedega en vez de WineXLa empresa TransGaming, conocida por la creación de WineX, la herramienta que facilita la descarga de los juegos Windows para Linux, publicó una nueva versión de este programa bajo el nuevo nombre Cedega. La característica más importante de la edición 4.0 es el soporte para DirectX 9.0, que permite la ejecución bajo Linux de los siguientes juegos: Battlefield Vietnam, Hitman: Contracts y Star Wars Galaxies. Lo que es interesante es que será posible también ejecutar el juego todavía no disponible Blizzard - Worlds of WarCraft.http://www.transgaming.com/

Linux Live Game ProjectFue iniciado un nuevo proyecto Linux Live Game. que es una variación de Knoppix para los jugadores. En el disco hay también los mayores éxitos de Linux como TuxRacer, Cube, Egoboo, FreeCiv, Pingus, Chromium, Foobillard, Frozen Bubble, Power Manga. La distribución por el momento está preparada independientemente por Fabio Fabbri que espera ser reforzado por la comunidad de los jugadores Linux.http://tuxgamers.altervista.org/llgp.php?tg_lang=en

¡Doom 3 ya en agosto!El juego más ansiado, Doom 3, según las informaciones oficiales, se estrenó el día 3 de agosto de este año. Según nuestras informaciones, la versión para Linux tendrá retraso en comparación con la versión para Windows, pero el fabricante no confirma esos rumores. Hasta el 3 de agosto tenemos que arreglárnoslas con las capturas de pantalla y el anuncio disponibles en la página oficial del juego.http://www.doom3.com/

Hyperspace Delivery Boy Demo

La empresa LinuxGamePublishing publicó recientemente un nuevo

juego Linux. Esta vez es un juego de destreza y lógica llamado Hyperspace Delivery Boy. Hemos estudiado su ver-sión demo.

En el juego encarnamos el persona-je de Guy Carrington, nuevo mensajero espacial de la empresa Hyperspace De-livery Service. Nuestra misión consiste en la entrega de los envíos a los des-tinatarios como y donde sea. Este trabajo no es nada fácil porque en el camino debemos pasar mil obstáculos: robots enloquecidos o un entorno peli-groso.

A diferencia de otros juegos moder-nos, los requerimientos de hardware y de sistema para el juego no son muy grandes (basta un Pentium común con una tarjeta gráfica estándar). Esto resulta del hecho de que estamos en un mundo bidimensional (visto desde arriba).

La instalación de la versión demo del juego no es complicada. Descar-gamos el fichero hdb_demo-1.0.run de la página http://demos.linuxgamepublishing.com/, le atribuimos los derechos de ejecución chmod a+x hdb_demo-1.0.run y ejecutamos (./hdb_demo-1.0.run). Si no disponemos aún en el sistema de las herramientas LGP Update(para cargar las correcciones y exten-siones para los juegos) y LGPUninstall (para eliminar los juegos,correcciones y extensiones instaladas),tendremos que instalarlos: los instala-dores sencillos automatizarán entera-mente esta acción. Una vez acepta-da la licencia del juego, su instalador arrancará automáticamente. Toda la

instalación se completa muy rápida y hábilmente.

Una vez ejecutado el juego, podemos empezar un nuevo juego, cargar uno guardado antes (durante el juego entra-mos en el llamado vortexian) o modifi-car los parámetros del juego (opciones bastante reducidas: volumen de los efectos sonoros y de la música y la asig-nación de las teclas de acción). Podemos también definir el tipo de juego: exclusi-vamente lógico o lógico con elementos destreza.

Al principio debemos recoger todas las cartas esparcidas por el mensaje-ro distraído Manny y meterlos en el clasificador del correo. Para alcanzar algunos sobres, habrá que mover los paquetes o cajas que bloquean el paso. En la siguiente parte del juego ten-dremos que cumplir tareas parecidas y acertar varias adivinanzas.

Manejamos el repartidor de cor-respondencia con el ratón o tecla-do. Además, la combinación de las teclas [Alt]+[Enter] sirve para cambiar entre el modo de pantalla completa y ventanas.

El juego no nos entusiasmará ni con su parte gráfica ni sonora, no obs-tante, es muy cautivador; podemos ver que nuestra propia imaginación es más importante que diferentes tipos de efectos especiales cada vez másperfectos. El juego es recomendado para todos los que quieren divertirse con un juego de ordenador sencillo.

http://www.linuxgamepublishing.com/info.php?id=17

Pantalla de título del juego

Guy Carrington en acción

Page 38: LiNUX+ DVD 2

trucos y truquillosaktualności

36 Linux+ 2/2004

actualidades

ALSA: parece que hay música pero no se oye el sonidoLa salida del sonido puede estar desactivada (ing. Mute) y es algo diferente que modificar el volumen a cero. Ejecutamos alsamixer (del paquete alsa-utils) y lo activamos (con la tecla [m]) para cada uno de los canales desactivados. ALSA controla las tarjetas de forma predeterminada con los canales desactivados para evitar crujidos procedentes de los altavoces a la hora de cargar módulos.

ALSA: la configuración de volumen desaparece después de reiniciar el ordenadorTenemos que añadir alsactl restore a los scripts de inicio y a los de cierre del sistema alsactl store. Gracias a esto, todas las configuraciones de las tarjetas se guardarán en el archivo /etc/asound.state al cerrar el sistema y se volverán a establecer según quedaron guardadas a la hora de iniciar el sistema. El comando alsactl es parte del paquete alsa-utils.

OpenOffice.org destruye fuentes en las impresiones (por ejemplo, pone en negrita)Este es un error muy antiguo y muy conocido. Ocurre cuando OpenOffice.org crea un archivo cache que incluye información general sobre las fuentes disponibles. Desgraciadamente, OpenOffice.org a veces lo hace de forma errónea. Tenemos que abrir el subdirectorio user/psprint/ de nuestro directorio principal que contiene la configuración de OOo. Tenemos que eliminar el archivo pspcache y ejecutar chmod a-w $PWD, para que no vuelva a crearse.

Comprobamos la memoria RAMVamos a emplear memtest86 (http://www.memtest86.com/ ). Lo mejor es integrarlo con el bootloader como un núcleo normal e iniciar el sistema. También podemos grabarlo en un disquete con el comando cat memtest86 >/dev/fd0 y, luego, iniciar el ordenador a partir de este disquete. Memtest86 detecta de forma muy eficaz los deterioros de la memoria, así como todo tipo de anomalías causadas por overclocking o por el recalentamiento.

Imprimimos con PostScript

Casi todos los usuarios de ordena-dores tienen que imprimir algo, al

menos de vez en cuando. Y mientras que normalmente es suficiente con pulsar en el icono Imprimir..., a veces hay que hacer algo más con la impresión. Por ejemplo, hay que cambiar las relaciones entre la página teórica para imprimir, propuesta por una aplicación en concreto, y la hoja física de papel. En tal caso el paquete PSutils es muy útil (actualmente en la versión p17). Opera con datos en formato PostScript (*.ps), con lo cual se puede emplear prácticamente con cualquier aplicación de Linux. Es ca-paz de imprimir a la vez que convierte el documento de postcript, esto tiene lugar en el comando de impresión (por ejemplo, en OpenOffice.org) o en imprimir al archivo convirtiendo en un fichero el resultado de lo que sería la hoja imprimida.

Empaquetamos páginas de impresión en una página físicaA la hora de imprimir documentos de prueba, destinados para corregir o simple-mente muy extendidos, muchas veces em-pleamos impresión reducida, poniendo en una página de la hoja dos páginas de docu-mento, reducidas dos veces. Esto significa que gastamos dos veces menos tiempo en imprimir, dos veces menos papel y tinta... y, bueno, las letras también son dos veces más pequeñas en la impresión.

Para convertir un documento de ejem-plo orig.ps en impresión empaquetada, es suficiente dar sólo un comando: psnup -2 orig.ps > 2en1.ps

Vemos que la reducción se da con una solo opción. Aquí yo he usado -2, pero po-día haber dado -4, o incluso -8. Podemos dar hasta valores asimétricos, la aplica-ción psnup va a aceptarlos: por ejemplo, la opción-3, pero lo mejor será imprimir escalando por potencias de dos, es decir, 2, 4, 8, 16...

Merece la pena conocer el manual psnup, ya que este simple comando tiene muchas opciones que permiten ajustarlo a nuestras exigencias, por ejemplo, podemos activar la impresión de las líneas que separan las res-pectivas minipáginas mediante la opción -d, así como fijar un adecuado margen de la página física si la impresora corta un frag-mento de la impresión en todas las páginas.

PSnup permite dar el tamaño de papel en el cual queremos imprimir. Esto puede ser útil cuando, después de la siguiente confe-

rencia, obtengas un conjunto de diapositivas de tamaño Letter y quieras imprimirlas en A4.

Componemos librosCuando imprimimos "2 en 1", podemos tratar de componer las páginas en forma de un libro (ing. Booklet). Esto consiste, en pocas palabras, en cambiar el orden de la aparición de las páginas del documento en hojas de tal forma que, después de componer todas las hojas juntas y después de doblarlas en dos, se pueda leer este pliegue de papel como un libro, dando la vuelta a la hoja. Esto es muy fácil de hacer mediante el comando psbook. El mismo psbook sólo va a mezclar el orden de las páginas, por lo tanto, para conseguir un libro luego hay que convertir este docu-mento a través de psnup:

psbook orig.ps | psnup -2 -d > booklet.ps

Seleccionamos páginas pares/imparesEl libro imprimido por el duo psbook/psnup está destinado a imprimir en modo duplex (es decir, las dos caras). Esto significa que si lo voy a enviar a la impresora, debería volver a meter todas las páginas en la im-presora. Ya que no todas impresoras son capaces de hacerlo de forma mecánica, sería muy difícil para el usuario si tuviera que ha-cerlo manualmente. Sin embargo, podemos dividir el documento en dos: uno que con-tenga sólo las páginas impares y el otro que contenga tan sólo las pares. Simplemente, primero se imprimirían las caras izquierdas de las hojas y, luego las mismas hojas, meti-das otra vez en la impresora, se imprimirían por las caras derechas. Podemos hacerlo con el comando psselect:

psselect -o booklet.ps > impares.ps

psselect -e booklet.ps > pares.ps

Script de la shell después de ser transformado por a2ps

Page 39: LiNUX+ DVD 2

37

sección llevada por Grzegorz Niewęgłowski

www.lpmagazine.org

[email protected]

¿Cómo desfragmentar el disco duro?No es necesario. Los sistemas de archivos de la familia de Linux fueron proyectados para mantener una fragmentación muy baja (normalmente de unos por ciento), incluso después de un par de años de uso continuo. De manera que Linux no tiene ninguna extendida aplicación para desfragmentar.

Linux inmediatamente ocupa 90% de la memora RAMEs normal. Linux tiene búfers muy ávidos del sistema, sin embargo, no tenemos por qué preocuparnos, ya que los reduce cuando una aplicación necesite más memoria. La memoria libre es memoria inútil, por lo tanto, si no hay aplicación que la nesesite, se puede emplear esta memoria para mantener en búfer (para acelerar) las operaciones de disco duro. Gracias a esto la memoria RAM está en uso y el sistema funciona más eficazmente.

Iconos en escritorios que no sean KDE/GNOMELa mayoría de los autónomos administradores de ventanas, tales como IceWM o WindowMaker, no ofrecen escritorios con iconos. Tenemos que emplear una aplicación aparte para recibirlos, p.ej. ROX-Filer (http://rox.sourceforge.net/ ). Lo ejecutamos, por ejemplo, de la siguiente forma: rox -p MiEscritorio.

Comprobamos la velocidad del discoVamos a usar /sbin/hdparm -tT /dev/hda para reducir el rendimiento del disco. El resultado descrito como "buffer-cache reads" es la velocidad de transferencia de los datos entre la memoria y los búfers del disco y depende, sobre todo, del rendimiento general del sistema (de la memoria operativa, ante todo). Gracias a hdparm podemos activar el DMA y las transferencias de 32 bits, si aún no están activadas: /sbin/hdparm -d1c1 /dev/hda.

La hora del sistema se retrasa una/dos horas por sí mismaSeguramente en la BIOS hemos configurado la hora local, mientras que Linux espera allí la hora universal UTC (o sea, sin tener en cuenta el huso horario). Tenemos que abrir /etc/sysconfig/clock y sustituir el valor de la línea "UTC=" ("true" por "false" o al revés). La solución alternativa puede ser la configuración de la BIOS con el tiempo UTC.

La opción -o selecciona las paginas im-pares (ing. odd), y la opción -e las páginas pares (ing. even).

Invertimos el orden de las páginasDespués de dividir el texto en páginas impares/pares, no coincide el orden de las páginas, ya que la impresora, a la hora de sortear el papel imprimido, no pone las nue-vas páginas en la parte superior de las hojas ya imprimidas, puesto que las empuja por debajo de esta parte (así funciona mi impre-sora). Normalmente esto es una ventaja, ya que no hay que sortear las hojas después de imprimirlas para conseguir el orden correc-to. Sin embargo, en este caso concreto esto ha resultado un defecto: ahora el orden de las hojas después de haberlas imprimido en dos caras separadas, es totalmente opuesto a lo que debería ser. Lo más fácil sería coger este pliegue de hojas y barajar su orden, pero si se trata de unas docenas de hojas es un tra-bajo bastante largo y podemos confundirnos muy fácilmente (es suficiente que dos hojas se peguen para que el libro no quede perfec-tamente ordenado). Una solución mejor sería invertir el orden de páginas en el archivo pares.ps. Aquí, otra vez nos ayuda psselect:

psselect -r pares.ps >pares invertidas.ps

Está claro que ahora sabemos ya mucho más y la próxima vez vamos a invertir el orden ya en el momento de generar el archivo pares.ps:

psselect -e -r booklet.ps > pares.ps

Ahora ya podemos terminar correctamen-te la impresión de este libro.

Extraemos páginas concretas del documentoA veces tenemos la posibilidad de imprimir, por ejemplo, solamente unas páginas del contenido. A veces tienen lugar situaciones contrarias: hay que imprimir todo, evitando tan sólo un prefacio poco importante, agra-decimientos u otras cosas que son normal-mente ignoradas por los lectores. Podemos volver a emplear psselect:

• para sacar de todo el documento sola-mente la página número 5:

psselect -p5 orig.ps > página5.ps

• para sacar las diez primeras páginas y la página 18:

psselect -p-10,18 > páginas1-

10,18.ps

Si en vez del número de la página damos tan sólo el carácter '_', en su lugar psse-lect introducirá una página vacía. Y si cualquier número de la página va pre-cedido por este carácter '_', entonces psselect sustituirá este número por el número contado a partir del final del documento:

• sacar las cinco primeras y las últimas diez páginas:

psselect -p1-5, _ 10-

• lo mismo que antes, pero separa los marcos con una página vacía:

psselect -p1-5, _ , _ 10-

Extendemos estas grandes aplicacionesComo ejemplo general nos va a servir OpenOffice.org. Para añadir la posibili-dad de imprimir en modo económico "2 en 1", es suficiente ejecutar la aplicación spadmin, definir la nueva impresora y, como comando de impresión, utilizar: psnup -2 | lpr. Ponemos a esta im-presora un nombre fácil de recordar y a partir de este momento ya podemos imprimir documentos reducidos, sim-plemente usando la impresora virtual. De forma parecida podemos integrar her-ramientas PSutils con la mayoría de las aplicaciones.

¿Qué vamos a hacer con el archivo *.ps después de convertirlo?Podemos imprimir el archivo *.ps con el comando lpr, podemos también emplear una superposición ofrecida por tu sistema favorito de administración de impreso-ras o emplear GhostScript que convertirá un archivo postscript en código binario interpretado por un modelode impresora concreto. Si eres pro-pietario de una cara y exclusiva im-presora de postscript, puedes simple-mente dar el comando cat plik.ps

>/dev/lp0.

Incluimos PSUtils en la configuración de la impresora OpenOffice.org

Page 40: LiNUX+ DVD 2

entrevista

38 Linux+ 2/2004

Entrevista con Eric S. Raymond, presidente de Open Source Initiative

Witold Kieraś (Linux+): Últimamente has publicado un artículo sobre los problemas que pueden sufrir los usuarios al instalar Linux en sus PC de casa. Has indicado un ejemplo de CUPS, pero esto tiene que ver también con otras aplicaciones. En relación con eso, ¿sigues creyendo en Linux como un sistema de escritorio?

Eric S. Raymond: Sí, pero creo que para que Linux tenga éxito en los escri-torios, hay que trabajar mucho y cambiar la actitud de los developers, más de lo que esperábamos. No es muy difícil diseñar una buena interfaz del usuario con ayuda de herramientas moder-nas; en cambio, es difícil formar unaactitud psíquica adecuada para tratar el diseño destinado para los usuarios corrientes.

WK: ¿Crees que algún día Sun Microsys-tems liberará Java, es decir, lo facilitará con licencia GPL?

ESR: En mi opinión, esto sigue siendo posible, y sobre todo es aún más probable en relación con el desarrollo de los últimos acontecimientos.

WK: Si no pasara así, ¿crees que Java será capaz de competir con las plataformas abiertas y con lenguajes de programación como C# (Mono) o Python?

ESR: Creo que en este caso los usua-rios perderán su interés en Java y empe-zarán a utilizar las soluciones tipo Open Source.

WK: Últimamente se ha dicho que Sun puede liberar Solaris. ¿Crees que es posible? En general, ¿necesitamos otro sistema abierto más que Unix? ¿Queda sitio libre en la sociedad para un Solaris libre?

ESR: Bueno, desde luego, es posible. De todas formas, no creo que necesite-mos otro Unix tipo Open Source, aunque probablemente podamos aprender algo de él: ante todo, del escalamiento de más de 32 procesadores.

WK: Richard Stallman opina que todos los tipos de software deberían estar libres (con código abierto). En cambio, Linus Torvalds cree que ni es necesario, ni posible. ¿Cuál es tu opinión respecto a este tema? ¿Deben estar libres todas las clases de informaciones (inclusive libros y música)?

ESR: No creo que todo tipo de información deba estar "libre", si esto significa que el autor no tiene derecho a controlar el modo de reproducción y de distribucción de su obra. Nor-malmente, comparto gratis lo que yo

Eric S. Raymond

Eric S. RaymondEric Steven Raymond, cono-

cido también como ESR, junto con Richard Stallman y Linus

Torvalds, es uno de los partici-pantes con más renombre del

movimiento Open Source en el mundo. Es coautor de proyectos de programación, entre otros de

Fetchmail o Sed, y autor de libros tan conocidos como: The Cathe-

dral and the Bazaar o The Art of Unix Programming.

Eric investiga también historia y cultura de hackering (The

Jargon File, A Brief History of Hackerdom). Actualmente des-empeña la función del director

de Open Source Initiative y hasta cierto punto, a causa de su pro-fesión, se ha ocupado de SCO.

Además, Eric es anarquista, afi-cionado a la literatura de ciencia ficción y propietario de un perro

negro Tae Kwon Do.

Page 41: LiNUX+ DVD 2

39

entrevistaentrevista con Eric S. Raymond

www.lpmagazine.org

mismo he creado, pero no creo que toda persona deba hacerlo. En mi opinión, el software supone un tipo especial de información. Requiere reparaciones fre-cuentes, traslados a otras plataformas y agregar componentes después de la venta. Asimismo, está estrechamente relacionado con otros dispositivos o servicios y, por eso, es posible contro-lar la cantidad de sus copias. De ahí que haya modelos efectivos para el negocio de software libre, que se basan en la venta de servicios, lo que, por su parte, significa que no necesitamos el sistema de propiedad.

Los libros, la música o las películas no tienen los rasgos característicos que per-mitan ganar dinero después de su venta propios de software. Por eso, sería difícil preservar una situación denominada por RMS libertad.

WK: Sueles decir sobre ti mismo que eres anarquista. ¿Estás en contra de todo tipo de patentes y de derechos de autor?

ESR: Sí, soy anarquista. Es decir, creo, que podríamos vivir mejor en una socie-dad que respetara el derecho y el orden, pero sin gobierno. Creo que está bien que existan tribunales, policía, e inclu-sive el derecho de propiedad intelectual,

si estas instituciones no se monopoli-zaran. Puedo imaginarme un sistema de patentes y de derechos del autor que sea a la vez justo y ejecutable, sin participación del gobierno, y que de nin-gún modo se parezca a lo que tenemoshoy.

WK: ¿Crees que el mundo Open Source forma parte de un movimiento de liberación?

ESR: No diría que nuestra sociedad sea una parte del movimiento de libera-ción y que seamos unos aliados naturales de los libertadores. Además, en mi opi-nión, lo que hacemos es expresamente pro libertad y pro mercado libre.

WK: ¿Eres un partidiario conocido del derecho de llevar armas. ¿Cómo pasa su tiempo libre un hacker armado?

ESR: En gran parte, del mismo modo que otros hackers, sólo que a vecesvoy al campo de tiro a entrenar. Ya he mencionado antes que el software abierto existe para que seamos libres. Las armas de fuego sirven para guardar esta libertad.

WK: Parece que la libertad es tu objetivo más importante. Pero hay mucha gente que no comparte tus opiniones respecto a las armas. Dicen que las armas en las manos de propie-tarios privados ocasiona un aumento de la criminalidad o las matanzas en las escuelas, como se comentaba hace tiempo. ¿Crees que a esta gente no les interesa la libertad de la persona?

ESR: No, ellos simplemente están totalmente equivocados respecto a los efectos de disponer de armas. Por ejemplo, en Noruega hay cuatro veces más armas en manos privadas por habi-tante que en los Estados Unidos. Si el hecho de poseer un arma ocasionara las masacres, las calles de Oslo deberían estar bañadas en sangre. En realidad, los acontecimientos en los Estados Unidos y en otros países muestran que el dere-cho de llevar armas provoca la caída de la criminalidad. La situación que ocasiona las matanzas es una situación en que los criminales y los locos tienen armas y los ciudadanos honrados no. Y eso es lo peor que puede suceder, si nos prohibenllevar armas. Es un mito que las armasprovoquen un aumento de la crimina-lidad y es una propaganda difundidapor las personas que quieren queestemos indefensos y dependamos del gobierno, incapaces de resistir contra los abusos del poder. Toda persona que te quiera desarmar, no es tu amigo.

WK: Se te conoce también como un aficio-nado a la literatura de ciencia ficción. ¿Qué tipo de libros lees exactamente? ¿Cuál es tu autor preferido? Advino que entre ellos se encon-trarán escritores como Robert Heinlein, Paul Anderson o Neil Stephenson.

ESR: Has mencionado justamente a tres de mis autores preferidos: no obstante, mi favorito es Heinlein, que en realidad creó la literatura fantás-tica moderna y, en mi opinión, sigue siendo el escritor más admirable de este género. En general, tengo inclinación por la literatura fantástica fuerte y por lo que actualmente se denomina space opera (ópera cósmica). Quiero subrayar la palabra actualmente, porque cuando empecé a leer SF, con este nombre se denominaba a otra cosa mucho más primitiva.

WK: Todos esperamos que se pruebe el robo del código de Unix, que ya hace tiempo prometió presentar la empresa SCO. ¿Crees que un día lo harán?

ESR: No presentarán nada, porque no tienen nada. Tengo el código fuente de Sistema V; lo he comparado con el código de Linux con ayuda de herramientas que he escrito especialmente con este fin, y sé exactamente donde convergen estos códi-gos.

WK: ¿Crees que Microsoft está implicado en este asunto?

ESR: No hay ninguna duda de que Microsoft patrocinó este ataque. Acuér-date del documento Halloween X.

WK: Pero, ¿por qué SCO ha desencade-nado esta “guerra contra Linux”, si no tiene ninguna prueba? Es casi como un suicidio.

ESR: No han tenido otra alternativa. Han perdido las esperanzas y las dis-putas en el tribunal es todo lo que les queda.

WK: Para terminar, una pregunta: ¿por qué exactamente has llegado a ser un hacker? En aquellos tiempos no había “Hacker HOWTO”...

ESR: En los años 70 andaba vagando por lugares donde había hackers y simple-mente así pasó.

WK: Gracias por la entrevista.

Me llamo Raymond, Eric Raymond

En Internet:• Sitio web de Eric S. Raymond: http://www.catb.org/~esr/• Open Source Initiative: http://www.opensource.org/

Page 42: LiNUX+ DVD 2

entrevista

40 Linux+ 2/2004

Entrevista con Ton Roosendaal, fundador de Blender Foundation

Witold Kieraś: ¿A qué te dedicas principal-mente como developer y como presidente de la Fundación?

Ton Roosendaal: Si tengo un poco de tiempo libre, lo dedico a programar, pero por desgracia me ocupo ante todo de la organización, soporte, correo, administración, RR.PP., la tienda virtual y ¡doy entrevistas! :) Me encanta el reto que supone la organización de un pro-yecto Open Source, pero es un empleo a jornada completa.

Como desarrollador, normalmente examino los fragmentos de Blender que considero antiguos, mal soportados, y que requieran actualización. Asimismo, cuido que haya mejor acceso a estos fragmen-tos para los desarrolladores del proyecto blender.org.

WK: ¿Cuántos autores y personas hay involucradas en el desarrollo de Blender? ¿Conoces a la mayoría de ellos? ¿Os encontráis a menudo?

TR: Actualmente, hay 40 personas que tienen acceso a CVS con derechos de realizar inscripciones, es decir, son mucha gente. Desde luego, conozco a todas estas personas, pero más bien virtualmente: por correo electrónico, páginas web e IRC. La gran parte de nuestras actividades se desarrolla en las listas de discusión de developers y en encuentros semanales de IRC, a los que asiste mucha gente.

WK: ¿Qué te inspira en el trabajo sobre Blender?

TR: ¡Casi no tengo tiempo para pensar sobre esto! En la mayoría de los

casos es puro placer y algo muy construc-tivo a la vez, ante todo cuando ves que una sociedad tan grande empieza a cola-borar en un trabajo que tú iniciaste. Me motiva también la posibilidad de realizar y de aprender cosas nuevas. El reto más grande y lo que más motiva son princi-palmente las actividades relacionadas con Open Source.

WK: ¿Crees que Blender ya puede com-petir con 3ds max o con otros programas de gráficos 3D con un código cerrado?

TR: Es una pregunta muy difícil... Blender, en muchos aspectos, es un programa excepcional que emplea unas soluciones originales que les gustan mucho a algunos usuarios, pero pueden desanimar a otra gente. Si Blender fuera un producto comercial, a lo mejor sería más fácil hacer prominente su carácter

Ton Roosendaal

En el DVDEn el DVD están los paquetes

fuente y binarios de Blender.

DVDDespués de arrancar la distribu-ción Linux+ Live DVD podemos

usar Blender.

Page 43: LiNUX+ DVD 2

41

entrevistaentrevista con Ton Roosendaal

www.lpmagazine.org

distinto, pero es un producto gratuito; ahora también con el código abierto; por eso mucha gente cree equivocadamente que se debería adaptar a las necesidades de cada uno.

Por lo general, creemos que Blender debe tener un nivel comparable al que ofrecen otras herramientas de gráficos 3D. De todas formas, los programas como: Maya, 3ds o XSI son mucho más completos y, por eso, no son exactamente los productos con los que deseemos com-petir.

Las empresas, como Alias, se enfo-can claramente en los estudios cinema-tográficos. Aunque este mercado sea muy atractivo (desde el punto de vista

comercial), sólo un pequeño grupo de artistas trabaja en esta industria. En la actualidad, la tendencia principal en el mercado es la creación de gráficos 3D para cubrir necesidades propias. Estaría muy orgulloso de ayudar a ganarse la vida a artistas individuales y a empresas pequeñas.

WK: ¿Existen trabajos (p.e. películas pre-miadas), realizados en Blender?

TR: La mayoría de las carreras de animación y los fabricantes de juegos disponen de toda herramienta que les ape-tezca emplear. Ha habido un par de casos, en los que Bledner ha sido empleado para modelación y visualización preliminar de objetos.

Pero, en realidad, los grandes estu-dios firman contratos con tales fabrican-tes como Alias o Softimige. De acuerdo con estos contratos se les paga por pro-mover los productos que emplearon. En cambio, no ganan nada diciendo que utilizaron Blender. Además, no estoy autorizado para hablar en público sobre esto ...

Sé muy bien que sería una publicidad excelente de Blender, pero no es lo más importante para nosotros. Prefiero tra-bajar empezando desde el fondo: al prin-cipio hay que demostrar que podemos crear un proyecto dinámico Open Source y hay que mostrar que prefeccionamos el software para los artistas. Sufrimos a causa de un pasado bastante turbulento y necesitaremos un poco de tiempo antes de convencer al mundo de que hemos hecho algo de valor. No me molesta la idea de que tendremos que esperar un poquito...

WK: ¿Crees que algún día Linux y Blender pueden convertirse en la principal plataforma para la creación de gráficos en tres dimensio-nes?

TR: Linux ya lo es. :)WK: ¿Cuál es tu objetivo principal durante

la creación de Blender?TR: Para mí lo más importante

sigue siendo la estabilización del código y el cuidado de que más developers puedan colaborar dentro de nuestro proyecto. Blender fue creado como un programa con el código cerrado, por eso, sigue estando mal adaptado al trabajo efectivo en el modelo Open Source. Las librerías y los módulos deberían tener APIs claros, con unas funcio-nalidades y dependencias bien docu-mentadas. ¡Nos queda un trabajo inmenso!

Además, este año me gustaría iniciar unos proyectos pequeños de investiga-ción, destinados a realizar la modificación completa de Blender, la modificación que se conoce también bajo el nombre de Blen-der3. :)

WK: Gracias por la entrevista.

En Internet:• Sitio web de Blender Foundation: http://www.blender3d.org/• Sitio web de Blender: http://www.blender.org/

En 1988 Ton Roosendaal creó en Holan-da el estudio de animación NeoGeo, que prontó llegó a ser el centro más grande especializado en gráficos 3D de este país, al que se otorgaron varios premios. En la empresa, Ton fue encargado de la creación de gráficos y del desarrollo de software destinado a su creación. En 1995 se tomó la decisión de rees-cribir el software empleado hasta ahora en el estudio, construido para el uso inte-rior de la empresa. El resultado de los trabajos iniciados entonces por NeoGeo es lo que conocemos hoy bajo el nombre Blender.

En 1998 se fundó la empresa Not a Number (NaN) como una sucursal de NeoGeo, cuyo objetivo fue el desarro-llo de Blender. Los programadores de esta empresa se centraron en la crea-ción de una compacta herramienta gra-tis para varias plataformas, desti-nada a la elaboración de gráficos 3D. En 1999 se organizó la primera presen-tación pública de Blender que resultó ser un gran éxito de sus autores. En verano de 2000 se lanzó Blender 2.0, y hasta los finales de 2000, ya se registraron 250.000 usuarios de este programa.

Por desgracia, las aspiraciones de la empresa no se correspondieron a sus capacidades y a la realidad, y como resultado había que buscar un inversor nuevo e iniciar las actividades desde el principio, con un grupo nuevo y a menor escala. A finales de 2001, la empresa

publicó su primer producto comercial: Blender Publisher, dirigido a los consu-midores del sector de Internet. Desafor-tunadamente, el producto se vendía mal y el nuevo inversor decidió cerrar todos los proyectos de la empresa NaN, inclu-sive Blender.

Ton Roosendaal no pudo confor-marse con la decisión de dejar de desar-rollar el proyecto, que le había cos-tado tanto trabajo y que había ganado una buena reputación de la sociedad. Resultó imposible reactivar la empresa con un grupo de desarrolladores, por eso, en marzo de 2002 Ton decidió fundar Blender Foundation: una organi-zación de tipo non-profit, cuyo objetivo básico fue encontrar el modo para conti-nuar con el desarrollo de Blender como Open Source, con ayuda considerable de la sociedad. En octubre de 2002, con el lema „Free Blender” (Liberar Blen-der), Blender Foundation inició una campaña de colección de fondos para comprar los derechos del código fuente de Blender de la empresa NaN Holding que reclamó el pago en una sola vez de 100.000 €. En siete semanas se reunió el importe necesario. El 1 de diciembre de 2002 se firmó un contrato de venta, y ya el 13 de diciembre se publicó el código de Blender bajo la licencia GNU GPL. En actualidad, Blender sigue siendo desarrollado por un grupo de voluntarios de todo el mundo, bajo la dirección de su primer creador: Ton Roosendaal.

Feliz término de la historia

Page 44: LiNUX+ DVD 2

multimedia

42 Linux+ 2/2004

Linux en el estudio de grabaciónPaweł Wolniewicz

Los últimos años del desarrollo de Linux han sido un tiempo de madurez y de adaptación a las necesidades de diferentes

grupos de usuarios. Hasta hace poco el sistema con el signo del pingüino era asociado generalmente con servidores, y su aplicación como estación de trabajo parecía no valer la pena. Actualmente este estereotipo está siendo lentamente destruido, y el nuevo software permite la aplicación de Linux en muy diferentes lugares, por ejemplo, en el estudio de grabación.

El efecto de la falta de drivers profe-sionales para las tarjetas de sonidos y de bueno software audio era tal que hasta hace poco Linux fuera poco atractivo para los músicos. Sin embargo, actual-mente no hay razón para tener pena. Han aparecido los primeros estudios de grabación que usan Linux, y el desar-rollo del software libre del sonido es apoyado, entre otros, por la Comisión Europea.

En este artículo presentaré los métodos de ajustar Linux a las necesidades de un estudio de grabación. Describiré también cómo utilizar algunas populares aplica-ciones de música. Intentaremos, paso a paso, componer nuestra primera (sic!) gra-bación en Linux.

Los usuarios comerciales de las aplicaciones que sirven para la edición del sonido pueden sentirse incómodos

en un primer momento. Linux no posee programas de música muy desarrolla-dos y de muchas funciones. Durante la composición de la grabación haremos uso de, por lo menos, algunas más y menos especializadas aplicaciones. La virtud de tal solución es la posibili-dad de una seleccón libre del conjunto de software y la facilidad del envío entre ellos del material de sonido. El inconveniente es la necesidad de instalar una gran cantidad de aplica-ciones.

Elementos del estudio de grabación de LinuxAntes de que comencemos a configu-rar el sistema, mencionaré todavía los más importantes elementos del estudio de grabación basados en Linux. Sobre todo deberíamos recordar que lo más importante es siempre el hardware: el ordenador y la tarjeta de sonido, y también los micrófonos, el teclado MIDI, convertidores analógico-digitales, además del cableado adecuado. Incluso el mejor software no está en condicio-nes de hacer que una tarjetade sonidos suene bien. Para no pagar por el software, invirtamos en un buen hardware para el estudio.

Escojamos el hardware según el estilo de música creada por nosotros y el género de las tareas realizadas. Si tenemos la intención de grabar la pista

En el DVDEn el DVD se encuentra la

distribución multimedia de Linux ReHMuDi 2.0 (DVD B).

Page 45: LiNUX+ DVD 2

43

multimediaestudio de grabación en Linux

www.lpmagazine.org

vocal, la pista de guitarra y la pista de percusión, entonces necesitaremos un micrófono. Fragmentos instrumentales se pueden registrar con la ayuda del teclado MIDI, de los keyboards o de los sintetizadores. Si queremos guardar en CD la colección de discos de vinilo o los cassettes, entonces podemos conectar el gramófono directamente al ordenador.

Con el fin de hacer grabaciones deberíamos usar hardware de empresas de reconocida calidad. Buenas marcas de micrófonos son AKG, Beyerdynamic, Sennheiser y Shure. Comprando instru-mentos de teclas vale la pena escoger productos de las empresas Korg, Kurz-weil, Roland o Yamaha. Siempre está bien escuchar los consejos de las personas que poseen los modelos de los instru-mentos que nos interesan. Seguramente esto nos ayudará durante la realización de la compra.

Otra cuestión, igual de importante que la adecuada selección de los drivers, es la apropiada configuración del núcleo del sistema. Debe permitir al hardware y software reaccionar inmediatamente al comando recibido. El parámetro que describe esta característica es la laten-cia (ing. latency). En pocas palabras, es el tiempo que pasa entre el envío del comunicado (el pulsar de la tecla) y la aparición del sonido en los altavo-ces. Las bajas latencias son fundamen-tales, sobre todo, cuando utilizamos nuestro equipo informático durante las actuaciones en vivo (recuadro Instalación de los drivers ALSA y de parches de bajas latencias).

Hasta hace poco el soporte de bajas latencias era el talón de Aquiles de Linux. Actualmente existen parches adecuados para el núcleo, pero es imposible la ins-talación precompilada del núcleo. Vale la pena recordar que las latencias dependen no sólo del núcleo del sistema, sino que, en gran medida, son resultantes del poder de cálculo del procesador y de la rapidez de los componentes de la tarjeta de sonido.

El servidor de sonido y programasPreparando a Linux para utilizarlo en el estudio de grabación no deberíamos olvidar la instalación del servidor profe-sional de sonido. Este es el demonio que permite a las aplicaciones un intercambio del material de audio editado. Los servi-dores instalados de una forma estándar – aRts para KDE y ESD para GNOME – no son suficientes. Son destinados únicamente para las operaciones más sencillas: la reproducción del sonido, las presentaciones multimedia y el soporte de juegos. No sirven para usos más avan-zados, tales como mezclar la música en vivo o trabajar con los sintetizadores de programa.

La mejor elección es JACK (JACK Audio Manipulation Kit). Sin ningún pro-blema utiliza la frecuencia de prueba hasta los 96.000 Hz y el sonido de 24 bits. Además, lo usan cada vez más aplicacio-nes. Gracias al servidor JACK podemos enviar material de sonido editado entre varios programas especializados, sin preocuparnos de que podamos perder la calidad del material.

La selección adecuada de las apli-caciones que nos sirven para editar el

Los drivers ALSA forman parte de todas las distribuciones populares de Linux. Los sistemas basados en el núcleo 2.6.x por defecto utilizan los módulos ALSA. Las actuales versiones fuentes de los drivers se pueden descargar de la web http://www.alsa-project.org/.

La instalación manual de los parches de bajas latencias es una tarea muy difícil. El núcleo adecuadamente corregido con el parche está incluido en la distribución multimedia de Linux, así que la mayor parte de los usuarios utilizará la compilación indi-vidual del núcleo mejorado.

El parche del núcleo 2.4.x se puede des-cargar de la página: http://www.zip.com.au/~akpm/linux/schedlat.html. Antes de su instalación vale la pena familiarizarse con el documento Low-Latency 2.4.x with ALSA HOWTO, accesible en la web http://www.djcj.org/LAU/guide/Low_latency-Mini-HOWTO.php3.

Pasemos ahora a concretos. El núcleo lo parcheamos con la ayuda del comando:

cd /usr/src/linux

patch -p1 < /usr/src/2.4.20-low-S

latency.patch

El primero de ellos nos traslada al directo-rio, en el cual se encuentran las fuentes del

Los métodos de grabación del sonido que voy a describir exigen la utilización del micrófono y del teclado MIDI. Se puede utilizar cualquier otra fuente de sonido, mientras que los instru-mentos de teclas se pueden reemplazar con el secuenciador de programas MIDI.

Drivers y el núcleo del sistemaAdemás del hardware, son muy impor-tantes los drivers de las tarjetas de sonido y de las interfaces MIDI. Ellos deberían permitir el uso al máximo de las posibilidades de nuestro hardware. En el caso del estudio basado en Linux la solución es una: drivers ALSA (Advanced Linux Sound Architecture). En compara-ción con la antigua tecnología OSS/Free, soportan muchas más tarjetas y están perfeccionados. Esto se nota, sobre todo, en las antiguas y menos populares tarje-tas de sonido.

Instalación de los drivers ALSA y de parches de bajas latencias

núcleo parcheado. El programa patch sirve para agregar correcciones al núcleo. Corri-jamos la ruta de acceso de tal forma que apunte al archivo descomprimido del parche de bajas latencias.

Ahora podemos configurar el núcleo del sistema, por ejemplo, con el comando make menuconfig. En el menú Processor Type and Features señalamos la opción Low latency scheduling.

Todas las demás funciones y módulos los determinamos según las necesidades, y después compilamos el núcleo.

Para aumentar todavía más el rendi-miento del sistema, podemos usar el parche preemptible (ftp://ftp.kernel.org/pub/linux/kernel/people/rml/preempt-kernel/). Gra-cias a él los procesos prioritarios se sopor-tarán de inmediato, sin esperar su turno, lo que lleva a disminuir sustancialmente las latencias. La forma de instalación es igual al caso anterior.

Los mejores efectos nos los da la apli-cación de los dos tipos de parches: el de bajas latencias y el preemptible. Esto no siempre es necesario. En caso de utilizar Linux sólo para reproducir el sonido y para editar de una manera simple los archivos de sonido, es suficiente un núcleo estándar, suministrado con la distribución instalada.

Page 46: LiNUX+ DVD 2

44

multimedia

Linux+ 2/2004

sonido también juega un papel impor-tante. Depende mucho de las aplicacio-nes concretas, para las cuales queremos utilizar nuestro estudio. Para Linux son accesibles cientos de programas: sirven para guardar el sonido en el disco, mezclar las pistas de audio, sintetizar el sonido, dan soporte a los instrumentos MIDI, corrigen el sonido y se ocupan del montaje de efectos. Escojamos más bien las aplicaciones que pueden utilizar el servidor JACK. Aparte de aplicaciones autónomas que sirven para la edición del sonido, deberíamos instalar plug-ins, que podremos usar en cualquier editor de sonido. Los plug-ins son actualmente muy populares y usados comúnmente. Gracias a ellos, incluso la más sencilla aplicación puede convertirse en una potente herramienta.

El estándar de los plug-ins para Linux es LADSPA (Linux Audio Developer's Simple Plugin API – http://www.ladspa.org/ ). Actualmente son disponibles unos cuantos cientos de plug-ins en este formato. Además, vale la pena utilizar los plug-ins VST (Vir-tual Studio Technology) de la empresa Steinberg, conocidos por los usuarios del sistema Windows. Ya se pueden iniciar también en Linux, pero su instalación es aún complicada. Además, no todos los

plug-ins VST funcionan correctamente. No obstante, vale la pena interesarse por este formato: en Internet encontraremos cientos de plug-ins VST gratuitos, que frecuentemente sirven incluso para apli-ciones profesionales.

Para corregir el rendimiento del hardware y software utilizado, pode-

mos intentar iniciar la aplicación desde la cuenta del administrador. La ventaja de esta solución es un mejor aprovecha-miento de los recursos por los progra-mas, el defecto: el peligro de la falta de estabilidad del sistema y de problemas con la seguridad (en caso de que nuestro ordenador esté conectado a Internet). El culpable del débil rendimiento puede ser también la mala configuración del disco duro. En este caso debería ayudar el pro-grama hdparm. Nos permite manipular la configuración de los discos EIDE, lo que puede algunas veces llevar a colgar el sistema y a deteriorar el sistema de archi-vos. Antes miremos cómo Linux soporta los discos duros instalados en el sistema:

hdparm /dev/hda

Deberíamos ver, entre otras cosas:

multcount = 16 (on)

IO_support = 1 (32-bit)

unmaskirq = 1 (on)

using_dma = 1 (on)

El sistema configurado de esta forma permite la transferencia de 32 bits con la utilización de 16 sectores del disco a la vez.

No tenemos que conocer el significado de todos los parámetros del programa hdparm. La configuración recomendada se puede fácilmente obtener ejecutando

Figura 1. El instalador gráfico ReHMuDi en acción; se están instalando los programas de sonido

Figura 2. Configuración del servidor JACK en el programa Qjackctl

Page 47: LiNUX+ DVD 2

45

multimediaestudio de grabación en Linux

www.lpmagazine.org

desde la cuenta del administrador el siguiente comando:

/sbin/hdparm -c 3 -d 1 -m 16 -A1 /dev/hda

Si la nueva configuración resulta ser mejor (el sistema funciona establemente y desaparecen los posibles problemas con la reproducción del sonido), entonces la llamada del programa hdparm la incluimos en uno de los archivos iniciados durante el arranque del sistema (por ejemplo, /etc/rc.d/rc.local).

Las distribuciones multimedia de LinuxLas actividades de configuración des-critas por mí en la siguiente parte, que permiten transformar el ordenador con Linux en un estudio de grabación, pueden parecer muy complicadas. En realidad, en total nos llevarán casi una hora. No es necesaria la compiliación individual del núcleo, parches y soft-ware. Aprovechamos la distribución multimedia de Linux, es decir, el con-junto de aplicaciones indispensables y el núcleo adecuadamente preparado, todo en la forma binaria (recuadro Distribucio-nes multimedia de Linux).

Actualmente existen más de diez distribuciones multimedia. En su mayo-ría son extensiones para los existentes sistemas de Linux. El usuario que quiere aprovechar los beneficios de las aplicacio-nes de música tiene que instalar la distri-bución escogida de Linux, y después, la

distribución multimedia adecuada para ella. Después de hacerlo, puede ser nece-saria todavía la configuración de las tar-jetas de sonido que tenemos. En muchos casos este trabajo lo realiza Linux en vez de nosotros.

Comenzando el trabajo con el sonido vale la pena probar las distribuciones multimedia que se inician desde el CD. Tienen un conjunto básico de aplicacio-nes de sonido y no exigen la instalación de nada en el disco duro. Son una per-fecta solución para las personas que quieren testear el software de música para Linux. La mejor distribución multimedia iniciada desde el CD es AGNULA/DeMuDi Live. Se ejecuta en el sistema Knoppix, enriquecido con las más importantes aplicaciones de sonido. La segunda distribución de este tipo es Dyne:bolic. Está destinada para las perso-nas que se ocupan de tareas multimedia ampliamente entendidas.

Instalación de ReHMuDiUna de las más populares versiones multimedia de Linux es ReHMuDi (para los sistemas Red Has y compatibles). Es parte del proyecto AGNULA (A GNU/Linux Audio distribution). Tendremos que descargar (http://download.agnula.org/rehmudi/ ) la imagen adecuada del CD o utilizar el archivo rehmudi.tar.bz2 incluido en el DVD anexo a la revista Linux+ DVD. ReHMuDi contiene sola-mente paquetes multimedia: el mismo sistema Red Hat (actualmente Fedora

Core) hay que instalarlo aparte. Para uso de este artículo he instalado – en el sistema Aurox Linux 9.3 – la distri-bución ReHMuDi 2.0. Aunque incluye paquetes destinados para la distribu-ción Fedora Core 1, debido a la popula-ridad de Aurox en Europa, me decidí a utilizar precisamente este sistema. Vale la pena saber que los sistemas Aurox 9.3 y 9.4 fueron creados apoyándose en el sistema Fedora Core 1. Debido a que por defecto tienen instalados los drivers ALSA, tuve que desinstalar los paquetes kernel-module-alsa, alsa-utils y alsa-driver (se puede dejar el paquete alsa-lib). ReHMuDi instaló antiguas versiones de los paquetes ALSA, pero gracias a ello tenía la seguridad de que todo funcio-naba adecuadamente. A pesar de varios comunicados de error (generalmente se

Distribuciones multimedia de Linux:• AGNULA – A GNU/Linux Audio Distri-

bution: http://www.agnula.org/• ReHMuDi – versión multimedia de

Fedora (Red Hat), parte del proyecto AGNULA:

http://www.agnula.org/download/rehmudi/

• DeMuDi – versión multimedia de Debian, parte del proyecto AGNULA:

http://www.agnula.org/download/demudi/

• AGNULA/DeMuDi Live – versión DeMuDi; se inicia desde el CD:

http://download.agnula.org/1.1/1.1.1/demudi-live-cd_1.1.1.iso

• Planet CCRMA – conjunto de paquetes de los sistemas Red Hat y Fedora:

http://ccrma-www.stanford.edu/planetccrma/software/

• Dyne:bolic – se inicia desde el CD; distribución de Linux fácil en el uso, destinada para las personas que trabajan con los multimedia:

http://dynebolic.org/ • Audioslack – más de diez progra-

mas de sonido comprimidos para Slackware:

http://www.audioslack.com/• Paquetes RPM para Mandrake

– varios cientos de ellos contienen software de música:

http://rpm.nyvalls.se/

Figura 3. Ardour es un registrador multipista del sonido

Page 48: LiNUX+ DVD 2

46

multimedia

Linux+ 2/2004

refieren al uso de otra versión del com-pilador gcc), la instalación del núcleo del sistema y de las aplicaciones terminaron con éxito.

Ahora llega nuestro turno. Si en el disco duro ya se encuentra Aurox 9.x o Fedora Core 1, podemos pasar a la instalación de los paquetes ReHMuDi 2.0. Introducimos en la unidad el CD,

cuya imagen hemos descargado de la página web del proyecto ADNULA o del DVD de nuestra revista. El script de instalación install.sh se encuentra en el directorio principal del disco o en el archivo rehmudi.tar.bz2. Des-pués de iniciarlo desde la cuenta del administrador, empieza a copiarse el software indispensable. Un momento después aparece la ventana (Figura 1), en la cual señalamos los programas que están designados para la instalación. Propongo escoger todos los paquetes; seguramente haremos uso de la mayoría de ellos. Después de aceptar la selección realizada, el instalador inicia su trabajo: puede durar incluso más de diez minu-tos. Los errores que pueden aperecer en este momento resultan de la falta de las librerías necesarias. Algunas de las apli-caciones instaladas exigen la presencia de KDE y Qt; en caso de que aparezcan estos problemas, tenemos que reinstalar los paquetes adecuados.

Después de terminar la instalación, hay que reiniciar el ordenador. Durante el rearranque del sistema será cargado el nuevo núcleo (el script de instalación automáticamente actualiza el boot-loader). Si usamos el demonio kudzu, éste intenta descubrir las tarjetas de sonido disponibles). No siempre esta opera-ción termina con éxito. Nada perdido. Después de iniciar el programa alsaconf, veremos la lista de las tarjetas de sonido presentes en el sistema. Es suficiente aceptar los comunicados del configura-dor y ... la tarjeta funciona. Los proble-mas pueden aparecer únicamente en el caso del hardware “exótico” o durante la instalación de varias tarjetas de sonido. En este caso puede ser necesaria la edi-ción manual del archivo /etc/modules.conf.

Si alsaconf encuentra correctamente la tarjeta de sonido, y aún así, al iniciar estos programas para la edición del sonido, recibimos errores de bloqueo de hardware, entonces se debe comprobar si el servidor gráfico de sonido aRts o ESD está desconectado (respectivamente KDE o GNOME).

Si el servidor de sonido de nuestro entorno gráfico está conectado, se debe desconectarlo (en KDE en el Centro de mando->Sonido->Sistema de Sonido en la pestaña General hay que marcar Conecta el sistema de sonido; en GNOME: en el Centro de mando->Sonido marcamos Inicio del ser-vidor de sonido).

Servidor JACKDespués de instalar ReHMuDi 2.0, en el disco del ordenador se encuentran ya las mejores aplicaciones de música para Linux. Además, el sistema está ade-cuadamente configurado y preparado para el trabajo con las bajas latencias. Nos queda todavía iniciar el servidor JACK. Podemos hacerlo directamente desde la línea de comandos: jackstart -d alsa.

Si queremos definir exactamente los parámetros de trabajo del servidor (lo que es muy recomendado) y preferimos evitar dar comandos complicados desde la línea de comandos, utilicemos la extensión gráfica del programa Qjackctl. Gracias a esto, podremos de una manera cómoda ajustar la configuración del ser-vidor JACK a nuestras necesidades (el botón Setup...). Disminuyendo la medida del búfer podemos disminuir bastante la latencia. Recordemos, sin embargo, no exagerar. Si, después de iniciar el servidor en la ventana Status, aparece información de errores xrun, esto sig-nifica que nuestro sistema no es capaz de trabajar con las latencias establecidas por el usuario. Esto puede ser resultado de un bajo poder de cálculo del orde-nador o de una mala configuración del sistema.

Los bajos valores de la latencia son necesarios generalmente durante las presentaciones en vivo o durante la grabación del material de sonido. En otros casos la baja dimensión del búfer sólo hace más lento el trabajo del sistema operativo, así que no merece la pena disminuir los valores estándar de las latencias si en algún momento quere-mos únicamente reproducir los archivos de sonido.

Preparación para la grabación del sonidoEl servidor JACK que funciona estable-mente nos permite comenzar el trabajo con el sonido. Al principio intentemos grabar la pista de audio de cualquier fuente externa. Si en algún caso escoge-mos el micrófono, deberíamos elegir una de las formas de conectarlo al ordena-dor. En la tarjeta de sonido se encuentra la entrada para el micrófono (señalado por lo general con el color rojo), pero no garantiza la buena calidad del material audio. Éste recibe los datos en forma de energía de baja intensidad, como

Conexión de equipos e instrumentos al ordenadorLas pistas vocales, el sonido de las gui-tarras, de las percusiones y de la natura-leza lo podemos grabar con ayuda de los micrófonos dinámicos y electrostáticos. Los conectamos al ordenador de tres formas:

• a la entrada del micrófono – el cable del micrófono lo conectamos directa-mente a la entrada señalada en rojo en la tarjeta de sonido.

• a la entrada lineal (Line In) – por medio del preamplificador.

• a la entrada S/PDIF – con ayuda del convertidor analógico-digital.

En cada uno de estos casos es suficiente poseer los drivers ALSA configurados correctamente. Las teclas, los sintetiza-dores y los keyboards los conectamos también de tres formas:

• al puerto MIDI en la tarjeta de sonido – el instrumento debe tener conexión MIDI In/Out, además se debe confi-gurar la interfaz MIDI del ordenador (drivers ALS)

• al puerto USB – una frecuente solución en el caso de los teclados MIDI. Es necesaria la instalación de los drivers adecuados. Está descrita en las páginas:

– http://member.nifty.ne.jp/Breeze/ softwares/unix/usbmidi-e.html

– http://www.djcj.org/LAU/guide/evolution-usb-midi.php

• al puerto en serie del ordenador – el instrumento tiene que poseer conexión TO HOST. Habrá que instalar el driver Notemidi: http://michaelminn.com/linux/notemidi/README.html

A la entrada lineal de la tarjeta de sonido se pueden conectar muchos equipos. De esta forma se graba el material audio originario de los discos de vinilo y de los cassettes. No se exige la instalación de otros drivers.

Page 49: LiNUX+ DVD 2

47

multimediaestudio de grabación en Linux

www.lpmagazine.org

resultado, el sonido está expuesto a las perturbaciones que se originan dentro o cerca del ordenador. La solución a este problema puede ser la utilización del preamplificador de micrófono o del con-vertidor analógico-digital. El primero disminuye bastante las perturbaciones que aparecen en los circuitos de la tar-jeta de sonido, y el segundo las elimina del todo.

El preamplificador nos permite conectar el micrófono directamente a la entrada lineal (Line In) de la tarjeta de sonido, normalmente señalada con el color azul. Recibe los datos en forma de tensión cientos de veces mayor que en el caso de la entrada del micrófono. Como resultado, las posibles perturbaciones sólo en un pequeño grado disminuyen el intervalo entre la señal y el ruido.

La solución ideal es la utilización del convertidor analógico-digital. Cambia la señal que corre del micrófono a los datos digitales, que no sufren perturbaciones dentro del ordenador. Es la mejor solución, pero no siempre imprescindible.

El equipo profesional no nos garantiza buenas grabaciones. Si ponemos el micró-fono cerca del ordenador, el ruido del ven-tilador o de un disco duro ruidoso puede en gran manera bajar la calidad del sonido registrado. Cualquier otro ruido que llega del ambiente tampoco es deseable. Ini-ciando la grabación del sonido deberíamos tomar en cuenta todos los pormenores: solamente entonces obtendremos un material audio de buena calidad.

Las secuencias instrumentales las podemos grabar con ayuda de los tecla-dos y sintetizadores MIDI. Existen tres formas de conexión de este tipo de instru-mentos al ordenador. Según el género de salida que se encuentre en la contrucción del equipo MIDI, podemos conectarlo al puerto USB, al puerto en serie o a la interfaz MIDI. En los primeros dos casos será todavía necesaria la instalación de los drivers adecuados.

Las configuraciones de ejemplo de conexión de los equipos de música al orde-nador están presentados en el recuadro Conexión de equipos e instrumentos al ordena-dor. Las reglas son las mismas para todos los sistemas operativos: si anteriormente ya hemos grabado el material de música, no encontraremos ningún problema.

Tenemos que acordarnos de elegir dentro del sistema operativo la entrada de la tarjeta, de la cual será grabado el sonido.

Nos sirve para eso el mixer del programa. En cada distribución de Linux podemos encontrar al menos un par de programas de este tipo (por ejemplo, Aumix, Xmix, Kmix, Gnome-volume-control y otros). Veri-ficamos si el equipo del que queremos grabar el sonido está señalado adecuada-mente (por lo general Record o Registro).

Los mixers del programa segura-mente los utilizaremos muchas veces en el futuro. Grabando el sonido hay que acordarse de regular adecuadamente su nivel. En material audio demasiado bajo hay un espacio de tiempo muy pequeño entre la señal y el ruido. Por otro lado, la grabación del sonido con un volumen demasiado alto puede producir una señal deformada y chasquidos desagradables. En ambos casos será necesario después de una corrección del nivel de la voz,

repetir la grabación de la pista. Los pára-metros del sonido se pueden también sintetizar con ayuda del programa Jamin (http://jamin.sourceforge.net/ ); gracias a él podemos establecer, entre otras cosas, las características adecuadas de la frecuencia del material.

Para la grabación del sonido se puede utilizar Audacity, pero será más profesional la utilización del editor multipista Ardour. Permite grabar y mezclar muchas pistas de cualquier número de canales. Ardour es más dificil en el uso que Audacity, pero es el precio por su mayor funcionalidad.

Editor Ardour – grabación del sonidoSi hemos instalado ReHMuDi, Ardour ya se encuentra en el disco duro. Veremos su inicio en la ventana de la creación de

Figura 4. Programa MusE – secuenciador MIDI para Linux

Figura 5. La selección de la fuente del sonido en el programa Ardour; esta configuración hará que el audio dado se descargue del sintetizador ZynAddSubFX

Page 50: LiNUX+ DVD 2

48

multimedia

Linux+ 2/2004

una nueva sesión. Es suficiente escribir el nombre del proyecto, con el cual comen-zamos el trabajo. Ardour abre un directorio para guardar el material grabado.

Después de crearlo, se puede pasar al trabajo con el programa. En la parte cen-tral de la ventana vemos el mapa de las pistas; por el momento se encuentra en él sólo la señal de Master. Primero, creamos la pista, en la cual registramos el mate-rial de sonido. La ventana para agregar pistas se abre después de hacer click en un campo libre debajo de la cabecera de la pista de Master. Los parámetros pro-puestos por Ardour se pueden dejar sin cambiar. Pero si queremos que la pista grabada sea estereofónica (que tenga dos canales), hacemos click con la tecla dere-cha del ratón en mono. Será sustituido por la opción estereo.

La pista está ya creada, y el micró-fono u otro equipo conectado a la tarjeta de sonido y comprobado, así pues pode-mos grabar. Señalamos nueva pista como designada para guardar. Esto se puede hacer apretando el botón con la letra r, que se encuentra a la derecha del nombre de la pista. En la barra de iconos hacemos click en el botón de grabación, y luego en el de reproducción. Ahora nuestro voca-lista (guitarrista, percusionista) puede comenzar a actuar. Después de acabar la grabación, hay que hacer click en el icono de retención. En este momento debería-mos ver el nuevo segmento de audio con el gráfico ondulatorio del material registrado.

Si ninguno de los sonidos se ha grabado y todos los equipos están ade-cuadamente conectados, la culpa puede ser del editor Ardour. Del menú Windows escogemos Route Parameters. En la ven-tana que aparece en la pantalla se pueden definir los equipos de entrada y salida. Por regla general, Ardour autómaticamente escoge las fuentes del sonido, pero en el caso de utilizar varios programas de música pueden ser necesarias correcciones manuales. Por lo tanto, sería aconsejable familiarizarse con las opciones Route Parameters.

De la lista que se encuentra a mano izquierda de la ventana escogemos la pista que nos interesa. Hacemos click en INPUTs. En el marco 1 debería estar es-crito alsa_pcm:capture_1, y en in 2 – alsa_pcm:capture_2. Tal configuración nos permite grabar el sonido de la entrada audio. Si lo que está escrito no es correcto,

la herramienta alsa_pcm la encontraremos en una de las páginas de contenido que se ven en la parte derecha de la ventana. Ardour corrige las pistas después de hacer click en ellas.

La selección de la salida del sonido adecuada (OUTPUTs) es igual de impor-tante. La pista escogida por nosotros debería ser guardada en la pista de Master: en el campo out_1 escribimos ardour:master/in 1, y en out 2 – ardour:master/in 2. Hay que revisar también lo que está escrito en la pista de Master. En este caso atribuiremos al campo out 1 alsa_pcm:playback_1, y al out 2, alsa_pcm:playback_2. Gracias a la configuración correcta de los dispositivos de salida, escucharemos el material registrado de audio. Si todas las pistas necesarias han sido grabadas correctamente, pode-mos guardar la sesión (Session->Save). Para mezclar todas las pistas de un archivo individual WAVE, hacemos uso del comando Export session to audio-file... del menú Session -> Export. En la ventana para guardar damos el nombre del archivo de salida y señalamos las pistas que queremos tomar en cuenta en el mezclado, y, al mismo tiempo, atribuirlas al canal adecuado (en caso de los archivos este-reofónicos).

Edición del sonidoEl material grabado seguro que requiere correcciones. Puede ser necesario, por ejemplo, la eliminación del compo-nente permanente, la normalización, la corrección de la frecuencia o de otras operaciones de edición. En la correc-ción del sonido ayudan los plug-ins LADSPA.

Regresemos a la ventana Route Parame-ters de Ardour. Nos da acceso a los plug-ins instalados en el sistema. Después de selec-cionar la pista destinada a la edición y de hacer click con el botón izquierdo del ratón en Pre Redirects, se abre el menú manual. Escojamos el comando New Plugin..., que nos trasladará a la ventana con una amplia lista de plug-ins. Si instalamos los plug-ins VST, entonces también deberíamos hallar-los en la lista.

El esquema del trabajo de los plug-ins que se presenta más adelante tiene apli-cación en la mayoría de los casos. Sobre todo deberíamos señalar el plug-in (o los plug-ins) que queremos usar. Luego hacemos click en Add y OK. Los nombres de los plug-ins escogidos aparecerán en la ventana Route Parameters, en la sección Pre Redirects. Después de marcar uno de los plug-ins, sus parámetros serán visualizados en la parte derecha de la ventana. Podemos cambiarlos con ayuda de las barras de desplazamiento. En el caso de los plug-ins VST vale la pena conectar la visualización de la interfaz (Gui_on_off ). Es muy estético y hace el trabajo agradable.

Podemos guardar los parámetros modificados (Save). El último paso debería ser la activación del plug-in. Pulsemos el botón Bypass o del menú manual Pre Redi-rects escojamos el comando Activate All.

Durante la edición de pistas indivi-duales y archivos de sonido se pueden usar otros programas que den soporte a los plug-ins LADSPA. Para obtener acceso a los plug-ins en Audacity, es sufi-ciente señalar el fragmento adecuadodel material, y después escoger (del menú Effect–>Plugins) el plug-in ade-cuado.

Figura 6. Qjackctl facilita el envío del sonido entre aplicaciones

Page 51: LiNUX+ DVD 2

49

multimediaestudio de grabación en Linux

www.lpmagazine.org

Tareas más complicadasHasta este momento he descrito sola-mente los métodos más sencillos de la edición del sonido. Las posibilidades de Linux son mucho mayores. El servidor JACK nos permite la conexión muy fácil a, por lo menos, un par de programas de audio. En el caso de otros sistemas operativos todo el proceso de la edición de la grabación es realizado desde el nivel de una aplicación, por lo tanto, los usuarios de Linux pueden utilizar muchos programas. El material audio es enviado entre ellos sin perder su calidad.

MIDI y sintetizadoresIntentemos ahora añadir a nuestra com-posición otra pista más. Esta vez obli-gamos a colaborar varias aplicaciones de música. En una de ellas preparamos la línea melódica, otra nos sirve como instrumento reproductor de cada una de las notas, y con la ayuda de la tercera

realizamos el registro del sonido. De esta forma podemos grabar buenas las pistas instrumentales. Este método es apreciado por las personas que tienen un sintetizador como hardware o un fortepiano.

La línea melódica la componemos en el programa MusE, con secuencia-dores MIDI para Linux. Los que tienen instrumentos MIDI no tendrán ningún problema con esto: es suficiente grabar la parte creada en el teclado: ésta será regis-trada por MusE. Cada una de las notas se pueden también añadir directamente en el secuenciador, con ayuda del ratón. No obstante, este método exige mucho más trabajo.

Después de iniciar el programa MusE (forma parte de ReHMuDi), pasa-mos a la creación de las pistas MIDI. A mano izquierda de la ventana se encuen-tra una lista vacía: pulsamos en ella con el botón derecho del ratón, y del menú contextual escogemos Add Midi Track.

Luego, señalamos el icono-lápiz (un poco más abajo del menú del programa) y en la parte derecha de la ventana MusE dibujamos con el ratón un nuevo segmento MIDI. Ahora cambiemos el lápiz por la flecha y hagamos en él click dos veces: se abrirá la ventana del editor de matrices. Esto nos permitirá poner notas de cualquier longitud y altitud. Para pasar al modo de edición, de nuevo señalamos el icono-lápiz. Podemos ya dibujar las notas adecuadas en la red del editor. En el caso de cometer algún error, hacemos uso del borrador virtual, pero cada una de las notas las podemos, en caso de necesidad, trasladar a otro lugar.

Preparamos ya el registro de notas en nuestra grabación, y dentro de un momento las podremos escuchar. El sonido será generado por el programa sintetizador. Recibe los comunicados MIDI y, después, los reproduce con ayuda del sonido programado por el usuario. Los sintetizadores son un lado fuerte de Linux. Podemos escoger entre varias aplicaciones perfectas que colaboran con el servidor JACK. Yo me decidí por ZynAddSubFX: un sintetizador disponible también en una versión para el sistema Windows. Genera un sonido de muy buena calidad, y el conjunto de instrumentos predefinidos facilita el trabajo a los usuarios princi-piantes.

ZynAddSubFX no forma parte de la distribución ReHMuDi, por tanto, ten-dremos que visitar la página web del proyecto (http://zynaddsubfx.sourceforge.net/ ). Son accesibles los paquetes bina-rios destinados para las distribuciones populares de Linux, pero la compilación de la fuente es sencilla (./configure; make; make install) y se realiza muy rápido. ZynAddSubFX utiliza el servidor JACK, por lo que podremos registrar el sonido generado en el editor Ardour. Los que quisieran primero probar el programa ZynAddSubFX, lo pueden iniciar en la distribución AGNULA/DeMuDi Live incluida en el disco DVD A, que acompaña a este número de Linux+.

Colaboración de los programas de músicaYa tenemos todos los programas necesa-rios, así que dediquemos unos cuantos momentos a su correcta configuración.

Para hacer uso de los plug-ins VST, muy populares entre los usuarios de MS Win-dows, hay que instalar el emulador Wine (agregado a la mayoría de las distribucio-nes) y los programas Vstserver y Ladspar-vst (http://www.notam02.no/arkiv/src/).

Todos los plug-ins VST que queramos utilizar deberían estar en uno de los direc-torios que señalarán la variable del entorno VST_PATH. La definimos de la siguiente forma:

export VST_PATH=/home/pawelw/vst

Este comando vale la pena escribirlo en alguno de los archivos ejecutables durante el inicio de la shell Bash (por ejemplo, ~/.bash_profile). En caso contrario tendre-mos que ejecutarlo después de cada inicio del sistema.

Al contrario que el emulador Wine, los programas VSTServer y Ladspavst los compilamos individualmente. Después de descomprimir la fuente del primero de ellos, abrimos el archivo makefile. En la primera línea encontraremos la ruta de acceso a Wine (WINEPATH=/usr/local). Si es necesario la corregimos y después guardamos el archivo.

Ahora ya podemos compilar VSTSer-ver. En el directorio con las fuentes ejecu-taremos, por orden:

make

make install

Instalación de los plug-ins VSTInstalamos la librería Ladspavst. Gracias a ella podremos hacer uso del plug-in VST al igual que del plug-in LADSPA. La compilación es muy sencilla: es suficiente ejecutar make. Obtenemos el archivo vst.so, lo copiamos al directorio, en el que se encuentran los plug-ins LADSPA. En el caso de ReHMuDi es /usr/lib/ladspa.

Nos queda todavía iniciar el pro-grama VSTServer. En la línea de comandos ejecutamos vstserver &. En la ventana del terminal deberíamos ver el nombre y el número de la versión de la aplicación, y también la información Waiting for requests. Si después de ini-ciar cualquier editor de audio que haga uso de los plug-ins LADSPA aparecen comunicados de errores, seguro que alguno de los plug-ins VST instalados no está siendo soportado en Linux. Al principio lo mejor es hacer una copia de cada plug-in; gracias a ello descub-ríremos rápidamente las causas de los errores.

Antes de instalar los plug-ins, vale la pena familiarizarse con:

• el artículo Using VST Plugins In Linux: http://www.djcj.org/LAU/quicktoots/

toots/vst-plugins/ • Linux Vst Compatibility Page – página

web que describe la función de los plug-ins concretos VST en Linux:

http://www.djcj.org/LAU/ladspavst/

Page 52: LiNUX+ DVD 2

50

multimedia

Linux+ 2/2004

Revisemos si el secuenciador MusE hace uso del servidor JACK. En la ventana que se abre después de escoger el comando Audio System del menú Config debería estar señalada la opción Use JACK.

Después de iniciar el programa ZynAddSubFX, volvamos por un momento a MusE. Del menú Config escogemos Midi Ports / Soft Synth. Veremos la lista de los canales MIDI con los instrumentos repro-ductores atribuidos a ellos (por lo gene-

ral, es None o el nombre de la tarjeta de sonido). Cambiamos la configuración del primer canal: de la lista de selección esco-gemos la posición ZynAddSubFX. A partir de este momento el secuenciador MusE enviará comunicados MIDI al sintetizador ZynAddSubFX a través del servidor JACK.

Podríamos ahora mismo escuchar las secuencias MIDI compuestas ante-riormente, pero no tenemos por ahora la posibilidad de grabar la música. Para registrarla utilizamos el editor Ardour, que conocemos muy bien. Antes de comenzar el trabajo, tenemos que corregir las notas en la ventana Route Parameters. La pista que nos sirve para registrar el sonido debería tomar los datos del sintetizador. En su entrada (INPUTs) seguramente ya está atribuido ZynAddSubFX. Si no, los dispositivos adecuados los encontraremos en la parte derecha de la ventana Route Parameters, en la pestaña ZynAddSubFX. Nos queda agregarlos, tal como lo presenta la Figura 5.

Ahora podemos escuchar la grabación. En el secuenciador MusE hacemos click en el icono que inicia la reproducción. Los comunicados MIDI serán transferidos al sintetizador ZynAddSubFX, que con su funcionamiento genera los sonidos pre-parados. Los sonidos serán tranferidos al programa Ardour, y después a los instru-mentos de entrada de la tarjeta de sonido. La pista grabada la escucharemos en los altavoces, y el inicio de la grabación en el editor Ardour provoca que sea guardada.

Si durante su reproducción no oimos ningún sonido, es resultado de la mala transferencia del sonido que se perdió por el camino. Volvemos a verificar la configuración de los programas MusE y Ardour. También ayudará mucho Qjackctl. Haciendo click en el botón Connect obtemos acceso a la ventana de las conecciones de cada una de las aplicaciones. En la pestaña Audio (Figura 6) la salida ZynAddSubFX debería ser atribuida a la entrada Ardour, y ésta, a su vez, a la tarjeta de sonido (alsa_pcm). En la pestaña MIDI deberíamos ver una conexión: el secuenciador MusE con el cliente ZynAddSubFX. Gracias a Qjackctl podemos seguir la atribución de cada una de las aplicaciones y controlar la transferencia de datos audio.

En la mayoría de los casos el servidor JACK une correctamente todos los progra-mas clientes. En el ejemplo descrito, por lo general, es suficiente configurar correc-tamente la salida MIDI del secuenciador

MusE. Todas las demás conexiones son automáticamente creadas durante el inicio de cada uno de los programas. Si hacemos uso de una mayor cantidad de aplica-ciones, entonces seguro que deberemos definir manualmente el curso correcto de los datos de sonido. En tal caso apreciamos la intuición y la sencillez del programa Qjackctl.

Si no nos gusta el sonido generado por ZynAddSubFX, podemos fácilmente cam-biar los parámetros del envolvente, de la resonancia y muchos otros. A los usuarios principiantes les recomiendo hacer uso de una serie de instrumentos predefinidos (archivo *.ins_zyn), instalados junto con el programa. Antes de grabar los sonidos generados, vale la pena corregir la con-figuración del servidor JACK para que las latencias sean más bajas. Un tiempo de reacción del sintetizador demasiado largo puede estorbar la reproducción de la secuencia MIDI.

ResumenEl esquema que he descrito (MusE - ZynAddSubFX - Ardour) es solamente una de las tantas posibilidades. Varias dece-nas de excelentes aplicaciones de música hacen uso del servidor JACK. La forma de aprovecharlo depende, en gran medida, de la creatividad de los músicos. Tengo la esperanza de que el ejemplo que he pre-sentado anime a los Lectores a sus propios experimentos. Les deseo muchos éxitos en su trabajo con la música de ordenador y con Linux.

En Internet:• Sound & MIDI Software For Linux – el

más importante sitio en inglés http://linux-sound.org/• Archivo de la lista linux-audio-user: http://music.columbia.edu/pipermail/

linux-audio-user/• The Linux Musician – otro sitio en

inglés: http://www.linuxmusician.com • The Linux MIDI + Sound Pages

– lista de programas de música para Linux:

http://www.xdt.com/ar/linux-snd/ • The Linux Audio Quality HOWTO: http://www.linuxdj.com/audio/quality/ • The Linux Musician guide to recor-

ding – grabación del sonido en Linux: http://www.linuxmusician.com/index.

php?option=displaypage&Itemid=51&op=page&SubMenu=

Otros programasde música para LinuxAdemás de las aplicaciones descritas en este artículo, se pueden aprovechar varias decenas de programas que sirven al servidor JACK.

Secuenciadores MIDI:

• MusE: http://lmuse.sourceforge.net/ • Rosegarden-4: http://www.rosegardenmusic.com/

Programas sintetizadores:

• AlsaModularSynth: http://alsamodular.sourceforge.net/ • gAlan: http://galan.sourceforge.net/ • Hydrogen: http://hydrogen.sourceforge.net/ • LegaSynth: http://www.reduz.com.ar/legasynth/ • Pd: http://www-crca.ucsd.edu/~msp/

software.html • ZynAddSubFX: http://zynaddsubfx.sourceforge.net/

Registro del sonido:

• Ardour: http://ardour.org/ • Ecasound: http://www.eca.cx/ecasound/ • ReZound: http://rezound.sourceforge.net/

Editores de audio sin soporte del servidor JACK:

• Audacity: http://audacity.sourceforge.net/ • Glame: http://glame.sourceforge.net/ • Gnoise: http://gnoise.sourceforge.net/ • Sweep: http://sweep.sourceforge.net/

Page 53: LiNUX+ DVD 2

www.hakin9.org

Page 54: LiNUX+ DVD 2

primeros pasos

52 Linux+ 2/2004

Blender: una expedición a la tercera dimensiónPiotr Machej

El programa Blender está des-tinado a crear gráficas en tres dimensiones. Con ayuda de este programa se pueden rea-

lizar no sólo escenas estáticas, sino tam-bién animaciones, e inclusive juegos. Los mejores trabajos de los usuarios son ver-daderamente impresionantes. Sus funcio-nalidades, en la versión básica ya extensas, se pueden desarrollar con ayuda de scripts escritos en el lenguaje Python. Asimismo, se pueden usar programas externos de renderizado, como Yafray o POV-ray.

Ejemplo de empleoHace poco en mi casa apareció un gato. Es pequeño, un poco rojizo y mete la nariz en todas partes. Incluso ahora está en el escritorio e intenta escribir en el teclado. Se me ha ocurrido que sería interesante hacer una galería en la que aparezcan las fotos que muestren las siguientes etapas de su vida. No obstante, he comprobado que una galería normal en una página web es demasiado trivial. De todas formas, el sitio en las paredes de mi cuarto ya está ocupado por estantes llenos de libros y de fotos de caballos. Entonces, ¿para qué me sirve Blender? Puedo construir una galería virtual en la que podré moverme sobre la pantalla del ordenador.

Por eso, he decidido construir una galería de la siguiente manera: un gran edificio con salas y plantas sucesivas, en cuyas paredes se colgarán las fotos pues-tas en bonitos marcos, desde los que me

mirará Kiba (es el nombre de mi gatito). Para empezar la aventura, hay que dar el primer paso: yo he decidido que, al principio, basta con construir una sencilla mesilla donde se pondrá una foto. Más tarde pensaré en el cuarto, la lamparilla de noche de la mesilla y en el resto de fotos.

InstalaciónBlender se distribuye en versión binaria. Naturalmente, las fuentes se pueden tam-bién conseguir aparte, pero lo más fácil es emplear una versión compilada. Empece-mos cargando el archivo. Con este objetivo entramos en el sitio web del programa (http://www.blender.org/ ) y seleccionamos el enlace Downloads. A continuación, bus-camos la posición Linux i386 en la tabla y elegimos el servidor que nos corresponda (lo mejor Europe). En el disco indicamos el directorio en que queremos guardar el fichero (ahora, en el momento de escribir este artículo, es el fichero blender-2.33a-

En el DVDEn el DVD están los paquetes

fuente y binarios de Blender.

DVDDespués de arrancar la distribu-ción Linux+ Live DVD podemos

usar Blender.

Figura 1. Esto no es más que el principio modesto de la galería

Page 55: LiNUX+ DVD 2

53

primeros pasosblender

www.lpmagazine.org

linux-glibc2.2.5-i386.tar.gz), luego espera-mos a que se descargue a nuestro disco.

Vale la pena observar que en la tabla, debajo de la posición Linux i386, se encuen-tra la posición descrita como Linux i386 static. Es una versión con librerías OpenGL, conectadas de manera estática. Si no con-seguimos arrancar la versión Linux i386, deberíamos usarla.

Cuando ya tengamos el fichero en nuestro disco, hay que arrancar el emula-dor del terminal. Podemos escoger cual-quier programa (p. e. en GNOME de Aurox disponemos de GNOME Terminal en el menú Herramientas del sistema–>Terminal). Ahora basta con descomprimir el fichero descargado con el comando tar xzvf blen-der-2.33a-linux-glibc2.2.5-i386.tar.gz. Después de entrar en el directorio (cd blender-2.33a-linux-glibc2.2.5-i386/), ponemos en marcha el programa por medio del comando ./blender.

Soporte básicoLa regla principal del manejo de Blender es: "Pon una mano en el teclado y la otra en el ratón". Así funciona, porque con este programa podemos comunicarnos a través de un ratón de tres botones y con una serie de atajos de teclado. La mayoría de las teclas empleadas con más frecuencia está ordenada de modo que podamos presio-narlas con la mano izquierda puesta en una posición normal (con el dedo índice puesto en la tecla [F]); por eso, podemos manejar el ratón con la mano derecha.

Pantalla principalLa pantalla de modo predeterminado está dividida en tres partes. En la parte superior tenemos la barra de menú. Las posiciones del menú más importantes para nosotros son: File (Fichero), Add (Añadir) y Render (Renderizar).

Debajo de la barra de menú, hay una ventana con la vista del escenario en la que estamos trabajando en un momento determinado. En este área vamos a mode-lar objetos, añadir iluminación o colocar cámaras. Aquí ya se hallan como valores predefinidos: el cubo (cuadrado negro en el centro), la fuente de iluminación (círculo amarillo con el punto) y la cámara (punto amarillo en la cima de la pirámide, que muestra en qué dirección "mira" la cámara). Además, hay un cursor visible (un círculo rojo y blanco en el centro). el escenario se representa en una vista desde arriba, que demuestra un sistema de coordenadas ubi-cado en el rincón abajo a la izquierda (son visibles los ejes X e Y). Podemos cambiar el ángulo de la vista del escenario con empleo de las flechas ubicadas en el teclado numé-rico. Podemos también retener el botón medio del ratón y mover el escenario: de esta manera el movimiento es más preciso y suave, que el iniciado en el teclado. Pode-mos emplear la rueda del ratón para alejar y aproximar la vista. Si no disponemos de ratón con una rueda, con este objetivo podemos usar las teclas [+] y [-] en el teclado numérico. Hay cuatro botones en el teclado numérico que tienen funciones especiales.

Con ellos se muestran por pantalla, respec-tivamente:

– vista desde arriba ([7]),– vista de frente ([1]),– vista de lado ([3]),– vista de cámara ([0]).

Si estamos impacientes por ver el aspecto del cubo predeterminado después de ren-derizado, basta con presionar la tecla [F12] o elegir del menú la opción Render–>Render Current Frame (Renderizar–>Renderiza el cuadro corriente). En una ventana auxiliar vamos a ver el cubo iluminado sobre un fondo azul. Cuando ya nos deleitemos contemplando esta vista, podemos cerrar esta ventana.

Instalación de Blender en el directorio /usr/local/Si queremos que todos los usuarios del ordenador tengan acceso a Blender, no deberíamos instalarlo en nuestro propio directorio. En vez de hacerlo así, pode-mos instalarlo, por ejemplo, en el directo-rio /usr/local/.

Para hacerlo, primero hay que adquirir los derechos del administra-dor (los obtenemos con el comando su-, después de indicar la contraseña del usuario root). A continuación, copiamos el fichero descargado en el directorio /usr/local/ (con el comando cp /pista/a/fichero/blender-

2.33a-linux-glibc2.2.5-i386.tar.gz

/usr/local/). Por supuesto, en vez de /pista/a/fichero/ indicamos el nombre del directorio adecuado con el fichero copiado (p.e. /home/usuario/, si hemos guardado el fichero en el directorio principal del usuario con el nombre usuario). Ahora, pasamos al directorio /usr/local/ (con el comando cd /usr/

local/) y descomprimimos el archivo con el comando tar xzvf blender-

2.33a-linux-glibc2.2.5-i386.tar.gz. Podemos cambiar el nombre del directorio creado a uno más corto (p.e. blender), ayudándonos con el comando mv blender-2.33a-linux-glibc2.2.5-

i386/ blender/.Ahora, para arrancar el programa,

cada usuario puede realizar los comandos sucesivos cd /usr/local/

blender/ y ./blender en su terminal. Puede agregar el icono del fichero /usr/local/blender/blender a su escritorio, al panel o al menú, con lo que no necesitará arrancar el emulador del

Figura 2. Pantalla principal de Blender

Page 56: LiNUX+ DVD 2

54

primeros pasos

Linux+ 2/2004

En la parte inferior de la ventana con el escenario, hay unas opciones que facilitan el trabajo con Blender. En la sección View (Vista) tenemos opciones que permiten manipular la vista. Junto con las opciones arriba indicadas, se encuentran las demás y los atajos de teclado que les correspon-den. En la sección Select (Selecciona) se hallan las opciones con las que se marcan los objetos en el escenario. Vamos a fami-liarizarnos con este tema más adelante. La sección Object (Objeto) corresponde a las operaciones que podemos realizar sobre un objeto marcado. En vez de esta sección, se puede vizualizar la inscripción Mesh (Malla) cuando nos encontramos en el modo de edición.

El listado de despliegue situado cerca de la inscripción Object (o Mesh) sirve para cambiar los modos del objeto y de edición (respectivamente: Object Mode y Edit Mode). Es más fácil usar la tecla [Tab]. En el listado de despliegue se encuentran también otros modos, pero por ahora no centraremos en ellos nuestra atención.

El siguiente listado de despliegue per-mite elegir el modo de mostrar los objetos por la pantalla (desde el paralepípedo que los rodea, por la representación dividida en partes, hasta visualizar un objeto som-breado e inclusive texturizado).

El último listado con opción de des-pliegue permite determinar el punto respecto al que se ejecutarán las diversas operaciones sobre los objetos (rotación, cambio del tamaño y otros).

Las filas de cuadraditos colocados al lado (hay 20 filas), indican las capas acce-sibles en el escenario. Para luego evitar la confusión, podemos ordenar cada objeto en una capa distinta. Cuando presiona-mos el cuadradito, la capa ha de visua-lizarse (y también renderizarse). Si no lo presionamos, los objetos que se hallen en una capa determinada no se visualizarán ni en previsualización del escenario, ni durante el renderizado (esto incluye tam-bién las luces: si se encuentran en una capa oculta, no iluminarán los objetos del escenario). Podemos movernos entre las capas con ayuda de las teclas con números, o simplemente seleccionando el cuadradito adecuado con el ratón. Si queremos marcar más cuadraditos, podemos retener la tecla [Shift]. Hay que recordar que sólo la capa seleccionada como última está activa: si agregamos un objeto nuevo en el escenario, aparecerá en esta capa.

La última parte de la ventana del pro-grama contiene las teclas y los campos de edición que permiten ajustar los valores determinados, así como también arrancar varias funciones. En la siguiente parte del artículo vamos a conocer algunas de ellas.

Ajustes de la interfazUna sola vista puede resultar insuficiente en el trabajo con los objetos ubicados en tres dimensiones. Naturalmente, podemos cambiar las vistas todo el tiempo a fin de colocar los objetos con exactitud, pero la

Figura 3. Es más fácil introducir los cambios de esta manera

Glosario de términosEl renderizado (ing. rendering) supone la representación de información de un documento electrónico, realizada de modo más propio para ese entorno. En el programa informático, el mecanismo responsable del renderizado se llama “motor de renderizado” (ing. rendering engine). El modo de renderizado se define en el mismo documento (los documentos de texto formateado, p.e. RTF), o en un fichero aparte, llamado “hoja de modos” (p.e. los ficheros CSS para documentos HTML). En gráficos 3D, el renderizado consiste en el pro-ceso de creación de la imagen digital conforme a informaciones más abs-tractas, que incluyen: geometría, punto de disposición de la cámara, textura, ángulo de iluminación, etc.).

El raytracing (rastreo de rayos) es actualmente el método de renderizado de gráficos 3D más popular. Consiste en el rastreo de un rayo de luz proyec-tado desde un punto determinado en relación con los objetos con los que tope en su camino, el cálculo de nivel de reflejo y de absorción de luz. Por ejem-plo, podemos rastrear un rayo partiendo de la fuente de luz de una superficie no transparente. A causa del reflejo y de la absorción de una parte de él por la superficie, el rayo cambia de color y de dirección. El rayo reflejado da con una cámara virtual (situada de antemano en un punto determinado), y su color y su intensidad influyen directamente en la imagen renderizada. Pese a sus incues-tionables cualidades, el raytracing tiene también fallos. Ante todo, no se las arregla con la iluminación dispersa y con el modelaje de fuentes de luz más complicadas, de resultas que se construyen bordes muy bruscos y poco realistas.

Más información sobre este tema se puede encontrar, entre otros, en Wikipe-dia (http://www.wikipedia.org/).

mejor solución es visualizar las tres vistas del escenario a la vez.

Podemos hacerlo de modo muy sen-cillo. Cuando indicamos con el cursor del ratón el borde inferior de la barra del menú, la flecha del cursor cambiará en una flecha doble puesta verticalmente. Si ahora retenemos el botón izquierdo del ratón y nos movemos abajo con él, redu-ciremos el tamaño de la ventana con el escenario, y encima del menú aparecerá una ventana con preferencias. Por ahora,

Page 57: LiNUX+ DVD 2

55

primeros pasosblender

www.lpmagazine.org

no vamos a hacerlo, en cambio, presio-naremos el botón derecho del ratón y en el menú visualizado seleccionaremos la opción Split Area (Divide el área). Ponemos la línea vertical en el centro de la pantalla y aprobamos su posición pulsando el botón izquierdo del ratón. Si la línea no aparece, hay que observar qué área está activo. Lo verificamos observando si el menú resalta (si nos movemos demasiado lejos con el ratón, resalta el menú principal en vez del menú de la ventana con el escenario).

Ahora disponemos de dos ventanas con el escenario. Volvemos a dividirlas. Esta vez indicamos con el cursor la línea que divide las áreas y volvemos a selec-cionar Split Area en el menú que aparece después de presionar el botón derecho del ratón. Aprobamos la división del área por la mitad, indicando la ubicación de la línea horizontal de la división y presionando el botón izquierdo del ratón. Hacemos lo mismo con el otro campo. Ahora tenemos una interfaz en la que en la parte superior se encuentra el menú, y debajo de él hay cuatro ventanas con la vista del escenario. Abajo se hallan los botones normales y los de despliegue.

Ya es hora de determinar lo que se visualizará en los campos respectivos de la vista del escenario. Indicamos con el ratón el campo superior a la izquierda y pulsamos el botón [7] en el teclado numérico. Ahora en este área se encuen-tra la vista desde arriba, lo que com-prueba el sistema de coordenadas (ejes X e Y visibles). A continuación, indicamos el campo izquierdo en la parte inferior y pulsamos la tecla [1] en el teclado numérico. El resultado será una vista de frente (visibles ejes X y Z). Presionamos el botón [3] en el teclado numérico en la parte inferior derecha y tenemos una vista de lado (ejes Y y Z visibles). Nos queda el campo en la parte superior derecha, donde ubicamos la vista de la

cámara: en este campo pulsamos el botón [0] en el teclado numérico.

En este momento debemos disponer de una intefraz como la representada en la Figura 3. Naturalmente, es un ejemplo: con estas instrucciones, podemos libre-mente modificar la interfaz. Paso a paso, cuando conozcamos las funcionalidades de Blender y aprendamos manejarlo, otros tipos de ventanas también desper-tarán nuestro interés (las elegimos en el menú accesible, después de oprimir el botón Displays Current Window Typeque se halla a la izquierda del menúde cada uno de los campos). No obstante,por ahora vamos a usar los que ya fueron determinados.

Seguramente hayamos notado que con esta división de ventanas, el área del trabajo se ha reducido de modo significa-tivo. Sin embargo, si es necesario ampliar un campo seleccionado, cuando no pre-cisamos de otros campos (p.ej. durante el posicionamiento preciso de objetos en una sola superficie), podemos ampliar el campo indicado con el ratón, reteniendo el botón [Ctrl] y pulsando el botón de la flecha hacia arriba. De modo parecido, restablecemos la disposición anterior presionando la tecla [Ctrl]; y pulsamos la flecha hacia abajo. Hay que recordar que en este caso emplea-mos las teclas del cursor y no el teclado numérico.

Las últimas modificaciones y almacenamiento de cambiosNos queda eliminar el objeto ubicado de modo predeterminado en el escenario. Podríamos dejarlo y emplearlo, pero en nuestro escenario no necesitamos un cubo. Por esta razón, al principio lo mar-camos. Con este objetivo hay que selec-cionar el objeto con el cursor del ratón y a continuación pulsar el botón derecho del ratón. El objeto se debe seleccionar con el color violeta con un matiz claro. Ahora podemos pulsar la tecla [X] que sirve para eliminar el objeto. Aparecerá una ventana con solicitud de confirmación. Indicamos ERASE SELECTED (Borra lo seleccionado) y confirmamos con la tecla [Enter] o con el botón izquierdo del ratón. Si hemos cambiado de opinión, podemos salir de la ventana con el cursor del ratón hasta que desaparezca o presionar la tecla [Esc].

Dejamos aparte las fuentes de ilumi-nación: vamos a nececitarlas durante la realización del escenario.

Si nos gusta esta disposición de las ventanas, podemos definirla como una disposición predeterminada. Gracias a esta operación, cuando volvamos a arrancar Blender, no tendremos que con-figurar de nuevo la interfaz. Para hacerlo, elegimos la opción Save default settings (Guarda ajustes predefinidos) en el menú File (Fichero) o simplemente presionamos las teclas [Ctrl]+[U]. En caso de emplear un atajo de teclado, tendremos que confirmar nuestra selección indicando la ventana en la que aparecerá la posición SAVE USER DEFAULTS (Guarda ajustes predefinidos del usuario).

Los ajustes predefinidos se guardan en el fichero .B.blend, ubicado en el direc-torio principal del usuario (hay que pres-tar atención en el punto al principio del nombre: es un fichero oculto). Si queremos restablecer los ajustes de fábrica, basta con eliminar este fichero (con el comando rm ~/.B.blend).

Construimos objetosYa es hora de empezar a crear nuestra mesita y nuestras fotos. Comenzamos con la mesita. Indicamos con el ratón el campo con proyección desde arriba (la ventana izquierda en la parte superior con la vista del escenario) y presionamos la tecla de espacio. Aparecerá un menú pequeño, en el que podemos movernos con el ratón (recordemos la regla principal de manejo de Blender: la mano izquierda puesta en el teclado y la mano derecha en el ratón).

Construimos el tablero de la mesitaSeleccionamos del menú Add–>Mesh–>Circle (Añadir–>Malla–>Círculo). Apa-recerá la pregunta por el número de vértices (Vertices) que van a componer el círculo. En las ventanas de este tipo podemos reducir el número por medio del botón izquierdo del ratón, haciendo click al lado izquierdo del número, o aumentarlo presionando al lado derecho del número. Podemos también escribir el valor exacto: para hacerlo hay que retener la tecla [Shift] y hacer click con el botón izquierdo del ratón en el número. Confir-mamos 32, es decir, el valor predefinido. El círculo creado será el borde superior de nuestra mesita. Hay que observar que nos hemos encontrado automáticamente en el modo de edición (Edit mode), cuya prueba es la inscripción en la barra del menú del campo. Por ahora nos queda-

Figura 4. Poco a poco empieza a parecerse a un tablero de la mesa

Page 58: LiNUX+ DVD 2

56

primeros pasos

Linux+ 2/2004

mos en este modo, puesto que queremos indicar el espesor del tablero de nuestra mesa. Con este objetivo movemos el cursor del ratón a la vista de frente (ven-tana inferior a la izquierda). Podemos acercar un poco la vista para trabajar con más comodidad (con la rueda del ratón o con la tecla [+] en el teclado numérico). Es importante que todos los vértices estén marcados (si destacan con color amarillo, están marcados). Para tener seguridad, podemos pulsar la tecla [A]: todos los vértices deben cambiar el color en violeta. Si volvemos a pulsar este botón, se marcarán todos los vértices.

Ahora, recordando que la vista activa tiene que encontrarse por delante, pulsa-mos la tecla [E]. Aparece el pedido de con-firmación si de verdad queremos emplear la función Extrude (Extruye). Lo confirma-mos y a continuación nos movemos con el ratón abajo. Junto con el movimiento del ratón se mueve la copia del círculo unida con líneas (edges) con el original. Si durante el movimiento retenemos la tecla [Ctrl], el movimiento se realizará a saltos, cada unidad completa. Sucesiva-mente, la retención de la tecla [Shift] nos permite localizar el objeto con mucha precisión: el movimiento será muy lento. La limitación de movimiento en un solo eje es también muy útil. Con este objetivo, después de mover hacia una dirección seleccionada, pulsamos el botón medio del ratón. Se puede también presionar la

tecla que corrseponde al eje seleccionado ([X], [Y] o [Z]: en este caso se trata del eje Z, o la tecla [Z]). Después de observar los valores en la barra debajo del campo, podemos colocar el segundo círculo (en esta vista parece una línea normal), en la posición Dx: 0.0, Dy: 0.0, Dz: 0.2 (valor Dz no debe ser exactamente el mismo, pero después de cambiar posición en un eje, los demás valores deben tener exactamente 0.0). Confirmamos la nueva posición con el botón izquierdo del ratón.

Si ahora renderizamos nuestro dibujo (con tecla [F12]), vamos a observar que no es exactamente lo que queríamos, ya que tenemos un borde del tablero rellenado y no tenemos el centro. Además, el borde es muy anguloso.

Introducimos modificacionesAl principio, nos ocupamos de alisar el borde. Con este objetivo marcamos todos los vértices (pulsamos la tecla [A] hasta que todos los vértices resalten en amari-llo). Luego, pasamos a la sección Editing del campo de botones (basta con presio-nar la tecla [F9]). Encontramos el botón Set Smooth (se halla en la parte Link and Materials) y lo presionamos. Con ayuda de esta tecla se alisan los bordes entre las superficies marcadas. Podemos pulsar el botón [F12] y convencernos de que ahora el borde tiene un aspecto mucho mejor. Ahora, tenemos que construir dos super-ficies auxiliares (partes: superior e infe-rior del tablero). Eliminamos los puntos

marcados (con el botón [A]). Luego, vamos a marcar sólo los puntos que per-tenecen al círculo superior. Con este obje-tivo, nos servimos de selección de bloque. Presionamos la tecla [B] y, a continuación, reteniendo el botón izquierdo del ratón, seleccionamos con un rectángulo todos los puntos que pertenezcan al círculo superior (seguimos trabajando en la vista de frente), luego, soltamos el botón izquierdo del ratón. Cuando los puntos seleccionados resalten en amarillo, presionamos las teclas [Shift]+[F]; como resultado, aparece la superficie entre los puntos seleccionados. Repetimos en el círculo inferior estas actividades (elimi-nación de selección, selección del bloque, creación de la superficie).

Por fin, podemos salir del modo de edición (presionando la tecla [Tab]) y veri-ficar el resultado obtenido (la tecla [F12]). Debería parecerse a lo que representa la Figura 4.

Es un buen momento para guardar nuestro trabajo. No podemos olvidarnos de guardar sistemáticamente los adelan-tos de nuestro trabajo en el disco. Gracias a esto, si surgen problemas, no vamos a perder un tiempo precioso, así como también podremos de modo fácil volver al estado anterior a las modificaciones (simplemente cargar el fichero). Para guardar los cambios, pulsamos los boto-nes [Ctrl]+[W ]. Guardamos nuestro tra-bajo por primera vez, por eso, el sistema nos va a preguntar por el nombre del fichero y su ubicación. Modificamos el nombre predefinido untitled.blend por un nombre altisonante, como galería.blend, luego pulsamos dos veces la tecla [Enter] (la primera vez para confirmar el nombre y la segunda para confirmar la decisión de grabación). Si luego queremos volver a guardar las modificaciones en el fichero y pulsamos las teclas [Ctrl]+[W ], el sistema sólo nos preguntará si estamos seguros de que queremos agregar infor-mación a un fichero ya existente: en este caso, basta con presionar el botón [Enter].

Marco de la fotoYa es hora de crear el objeto más impor-tante de nuestro escenario: el marco de la foto. Al principio, tenemos que ase-gurarnos de que Blender está en el modo Object Mode. Si seguimos en el modo de edición (Edit Mode), podemos salir de este modo con la tecla [Tab]. Ahora, estamos

Figura 5. Decididamente hay que reducir este marco

Page 59: LiNUX+ DVD 2

57

primeros pasosblender

www.lpmagazine.org

en la vista de frente y movemos el cursor (círculo rojo y negro) en el lugar al lado de nuestra mesita. Para hacerlo, indicamos un lugar elegido con el cursor del ratón y presionamos el botón izquierdo del ratón. Puede ser, por ejemplo, el próximo cruce de las líneas más gruesas de la malla auxiliar, que se halle a la izquierda de la posición de hasta ahora del cursor. Para ser más precisos, podemos presionar las teclas [Shift]+[S] y elegir Cursor–>Grid con que se atrae (snap) el cursor a la malla auxiliar (grid). Podemos centrar la vista en el cursor con ayuda de la tecla [C].

No será muy fácil construir nues-tro marco. Vamos a elaborar un marco redondo de madera. Al principio pasamos a la vista de frente y agregamos el círculo con 16 vértices (la tecla de espacio en blanco, Add–>Mesh–>Circle, cambiamos el valor Vertices en 16 y confirmamos). Ahora podemos ampiar un poco la imagen. Eli-minamos la selección de vértices (tecla [A]) y seleccionamos 8 vértices, empezando con el vértice más asomado a la izquierda, y luego nos movemos en la dirección contraria al sentido de las agujas del reloj. No olvidéis: si queremos seleccionar (con el botón derecho del ratón) un grupo de vértices, tenemos que retener la tecla [Shift]. Eliminamos los vértices seleccio-nados pulsando la tecla [X] y pinchando en la posición Vertices (Vértices). Ahora seleccionamos todos los vértices (con el botón [A]) y los movemos a la derecha con 6 unidades. Realizamos el movimiento con la tecla [G] (Grab – Captura), y a continua-ción movemos los vértices con el ratón, al mismo tiempo reteniendo la tecla [Ctrl] (hasta encontrarse en la posición Dx: 6.0).

Es momento de emplear una de las herramientas más útiles facilitadas por Blender. En la ventana con botones, pasa-mos a la sección Editing (con la tecla [F9]), después encontramos en ella la sección Mesh Tools. En el campo Degrees (Grados) escribimos el valor 360 (recuerdo que

para escribir manualmente el valor, hay que presionar el botón izquierdo del ratón, reteniendo al mismo tiempo la tecla [Shift]), y el valor 16 – en el campo Steps (Pasos). Nos aseguramos de que hemos seleccionado todos los vértices, presionamos el botón Spin e indicamos la vista desde arriba (la ventana superior a la izquierda). Podemos observar que hemos obtenido un resultado bastante intere-sante: nuestros vértices fueron extruidos en el círculo y, en efecto, apareció una nueva superficie. Es precisamente nuestro marco. Nos quedan varias tareas a rea-lizar. Durante la ejecución de la función Spin se doblaron los vértices: en el mismo lugar se encuentran los vértices originales y sus copias creadas tras la rotación de 360 grados. Por eso, la superficie de nuestro marco se interrumpe, de ahí que tengamos que eliminarlos. Seleccionamos todos los vértices (con la tecla [A]), y luego presio-namos el botón Rem Double, que también se halla en la sección Mesh Tools. Tiene que vizualizarse el comunicado Removed: 8 que informa de que se han eliminado 8 vértices inútiles. Ya que hemos seleccionado todos los vértices, podemos presionar enseguida el botón Set Smooth para elaborar superfi-cies más lisas.

Elaboración de superficiesYa disponemos de un marco de la foto, pero hay que construir la superficie, sobre la que colocaremos la foto. Eliminamos la selección de vértices y en la vista desde

arriba marcamos sólo los vértices ubica-dos en el círculo interior. Para hacerlo, lo óptimo es retener la tecla [Shift] e indicar los vértices adecuados con el botón dere-cho del ratón. A continuación presionamos las teclas [Shift]+[F], y en consecuencia dis-ponemos de la superficie necesaria.

Sin eliminar la selección de vértices interiores, en la sección Link and Mate-rials debajo del botón 0 Mat: 0 se halla el botón New. Lo pulsamos dos veces (botón 0 Mat: 0 debe transformarse en 2 Mat: 2), y a continuación pulsamos el botón Assign que se encuentra más abajo. En conse-cuencia a la superficie destinada a la cons-trucción de la foto se podrá asignar otro material que al resto del marco. Vamos a hablar más sobre este tema en el capítulo Añadimos materiales.

Por ahora, eliminamos la selección y marcamos sólo la línea más inferior de vértices, visible en la vista de frente. Para realizarlo es óptima la selección del bloque (botón [B]). Estos vértices también los unimos con la superficie (teclas [Shift]+[F]). Resultado: nuestro marco tiene la pared trasera. En este momento nuestra pantalla debe tener un aspecto parecido al presen-tado en la Figura 5.

Ajuste de tamañosNos queda sólo cambiar los tamaños del marco, porque en este momento es mucho más grande que la mesa. Podemos dejar el modo de edición (con la tecla [Tab]). Luego, eliminamos todas las selecciones (tecla [A])

Figura 6. Es hora de agregar los colores

Figura 7. El mundo adquiere colores

Page 60: LiNUX+ DVD 2

58

primeros pasos

Linux+ 2/2004

e indicamos sólo nuestro marco con el botón derecho del ratón. Es importante que lo transformemos en óvalo, por eso pasamos a la vista desde arriba (esquina superior a la izquierda). La tecla [S] (Scale – Escalamiento) nos servirá para cambiar el tamaño. De modo igual como en el caso de cambio de ubicación, con ayuda del botón medio del ratón, podemos limitar las transformaciones a sólo un eje. Move-mos el ratón a la izquierda y pulsamos el botón medio del ratón. Ahora retenemos la tecla [Ctrl] y hacemos nuestro marco más estrecho hasta que el valor del campo Sizex equivalga a 0.8 (los demás deben quedar en 1.0). Confirmamos el cambio con el botón izquierdo del ratón.

Volvemos a pulsar la tecla [S] y rete-niendo [Ctrl], reducimos el marco hasta que en todos los campos Size (Sizex, Sizey y Sizez) aparezca el valor 0.1. Confirmamos el cambio con el botón izquierdo del ratón.

Ubicación de objetosAhora, hay que poner nuestro marco en la mesa. Podemos usar el botón [G] para hacerlo, lo mejor en la vista desde arriba. Cuando el marco ya se encuentre en el centro de la mesa, pasamos a la vista de lado (ventana inferior a la derecha). Pre-sionamos la tecla [R] (Rotate – rotación), y a continuación, con la tecla [Ctrl] rete-nida, rotamos el marco 65 grados en el sentido de las agujas del reloj. Tenemos que levantarlo arriba un poco (con la tecla [G]). Podemos colocar el escenario como nos guste por medio de los comandos de rotación, movimiento y escalamiento.

Cuando ya estemos satisfechos con la disposición del escenario, podemos unir el marco con la mesa. Con este propósito, primero seleccionamos el marco, luego (reteniendo la tecla [Shift]) seleccionamos la mesa y presionamos las teclas [Ctrl]+[P]. En la ventana confirmamos la posición Make Parent (Pon como madre). A partir de este momento, la mesa se tratará como

la "madre" del marco de la foto. Por eso, cuando intentemos mover la mesa, a la vez moveremos el marco. Podemos mover el marco nosotros mismos y ponerlo en la posición que nos guste. El ajuste adecuado de las relaciones entre objetos permite administrar con más facilidad los esce-narios más complejos. La relación entre madre e hijo en la vista general del escena-rio se representa con la línea discontinua que les une.

Después de finalizar el trabajo con el marco, recordemos que hay que guardar los resultados en el disco.

Añadimos materialesNuestra obra empieza a tomar forma real. No obstante, faltan colores, como lo vemos en la Figura 6. Intentemos, pues, adornar un poco nuestro escenario.

MesillaAl principio seleccionamos la mesita. A continuación, con la tecla [F5] relacio-namos la ventana con la sección Shading. Aquí, en la sección Material pulsamos el botón Add New con el que se atribuye un material nuevo a nuestra mesa. No debe-ríamos asustarnos por el gran número de botones que aparecerán en este momento. Por ahora, nos interesan ante todo los botones de despliegue que sirven para ajustar el color (asignados con las letras R, G y B). Ajustamos respectivamente los valores 0.79, 0.45 y 0.33, con que obtene-mos un marrón bonito. Para ajustar los valores, podemos servirnos de botones de despliegue o escribir los valores concretos con el teclado.

Además, crearemos el efecto de que nuestro marco se reflejará en la superfi-cie de la mesa. Para realizarlo, pasamos a la pestaña Mirror Transp y presionamos el botón Ray Mirror. Ahora podemos experimentar con el valor en el botón del despliegue RayMir. Del valor indicado con este botón depende el aspecto del reflejo: si indicamos un valor máximo podemos incluso elaborar un espejito. No necesitamos más que un reflejo pequeño del marco, pues indicamos el valor 0.18 en el botón de despliegue. En este instante y después de pulsar la tecla [F12] todavía no vamos a notar ningún efecto (con excepción del color ajustado). Primero, hay que obligar a Blenderow que durante el renderizado del escenario emplee raytracing (rastreo de rayos). Con este objetivo pasamos a la sección Scene

(con la tecla [F10]) en la ventana con botones y pulsamos el botón Ray. Ahora, ya después de renderizado de la imagen (tras presionar la tecla [F12]), debe visua-lizarse un reflejo casi imperceptible en el tablero de la mesita.

MarcoVamos a pasar más tiempo construyendo el marco por el uso de dos materiales. El primer elemento es el marco de madera. El segundo material nos servirá para visualizar la foto. No olvidemos que en el capítulo Elaboración de superficies ya hemos añadido los materiales en sí mismos. Podemos verificar a qué superficies están atribuidos. Al principio, seleccionamos nuestro marco y pasamos al modo de edición (con la tecla [Tab]). Luego, en la ventana de botones pasamos a la sección Editing (con la tecla [F9]). Nos interesa el botón grande de la sección Link and Mate-rials, debajo de la inscripción Material. En el botón se encuentra la inscripción 2 Mat: 1o 2 Mat: 2. El primer número define la can-tidad de materiales atribuidos a un objeto determinado. El segundo indica el índice del material seleccionado en el momento presente. Podemos cambiar el índice, si presionamos el botón izquierdo del ratón en la parte izquierda o en la parte dere-cha del botón. Indicamos 1 como valor del índice. Con ayuda de la tecla [A] prestamos atención a que ningún vértice esté seleccio-nado. Ahora, presionamos el botón Select que se encuentra debajo del botón grande con la inscripción 2 Mat: 1. Todos los vérti-ces deberían iluminarse. Empleamos este índice para construir material de marco de madera. Ya podemos eliminar la selección (con la tecla [A] o Deselect). Ahora pasamos al índice en 2 y volvemos a pulsar el botón Select. Esta vez, deben iluminarse sólo los vértices que forman un círculo interior.

Si ha salido algo mal cuando atri-buimos los vértices a los índices respec-tivos, ahora podemos corregirlo. Para hacerlo, hay que seleccionar los vérti-ces que deben pertenecer a un índice seleccionado en el momento presente y pulsar el botón Assign. A lo mejor va-mos a usar un número mayor de índices en el caso de objetos más complejos. Los agregamos de modo parecido al de los que ya tenemos (con el uso del botón New), y luego les atribuimos los vértices respectivos.

Cuando ya estemos seguros de que los vértices adecuados se han atribuido

Figura 8. De esta manera se ve mejor

Page 61: LiNUX+ DVD 2

59

primeros pasosblender

www.lpmagazine.org

a sus respectivos índices, podemos dejar el modo de edición (la tecla [Tab]) y pasar a la sección Shading (la tecla [F5]). De nuevo, nos interesa ante todo la sección Material. La inscripción MA:Ma-terial define el nombre del material corriente. Si queremos, podemos sustituir el texto Material con este nombre por uno nuestro. Al lado del nombre hay un campo con la cifra 2, que determina el número de usuarios que emplean un material dado. En nuestro caso hay dos, porque este mismo material se atribuye a ambos índi-ces que hemos definido en nuestro objeto. Es importante que cada índice emplee otro material, por tanto, presionamos el botón izquierdo del ratón en esta cifra. Confir-mamos, cuando aparece la ventana con la pregunta Single user. El nombre cambió en MA:Material.002 y podemos comprobar si al otro índice sigue atribuido el material con el nombre MA:Material (el material con el nombre MA:Material.001 hemos atribuido a la mesa). Podemos cambiar los índices con el uso del campo con el valor 2 Mat 1 (o 2 Mat 2), que se encuentra al lado del botón ME.

Primero, tenemos que comprobar si todo funciona y si no hemos cometido un error durante la atribución de vér-tices a los índices. Elegimos el índice 1 (el valor del campo debe ser de 2 Mat 1). A continuación, ajustamos el color marrón del marco (los botones de des-pliegue de los respectivos colores en las posiciones: R: 0.85, G: 0.35, B:0.30). Pode-mos quitar un poco de brillo del material: para este fin sirven los botones de des-pliegue Ref (Reflection), Spec (Specularity) y Hard (Hardness of specularity), accesibles en la pestaña Shaders. Según el resultado que deseamos obtener, podemos experi-mentar con los ajustes. En nuestro caso, dejamos aparte el botón de despliegue Ref, en cambio, Spec ponemos en 0.30,

y Hard en 70, de manera que nuestro cuadro no brille tanto.

Ahora podemos elegir el índice 2 y poner cualquier color del campo en el que se situará la foto. Por ejemplo, po-demos escoger un verde intenso (bo-tón de despliegue G en la posición 1.0, y botones de despliegue R y B en la po-sición 0.0). Luego, este color será tapado por la foto, pero vale la pena ver cuántos materiales podemos tener en un objeto.

En la Figura 7 podemos observar el resultado de nuestro trabajo. No olvide-mos guardar los resultados de nuestro trabajo en el disco.

Ponemos texturasAhora el aspecto del escenario es mejor, pero sigue siendo muy poco realista. Por eso, procuraremos hacer que la mesilla y el cuadro parezcan de verdad objetos cons-truidos de madera. Para hacerlo, podemos poner texturas que cambiarán el aspecto del objeto.

Mesilla de madera Empezamos, como siempre, con la mesilla. La seleccionamos y luego pre-sionamos el botón [F6]. Resultado: en la ventana con botones se abrirá la sección Texture buttons. Aquí, en la sección Texture está el botón Add New (Añade una nueva) y ocho canales libres para las texturas. Cada objeto puede usar de cero a ocho canales. ¿Por qué tantos? Las texturas pueden servir no sólo para visualizar un modelo en el objeto, sino también como mapa de convexidades, de reflejos o de transparencias.

Por ahora, creamos sólo una textura para la mesilla. Presionamos el botón Add New. En el listado de despliegue que ha aparecido debajo de la inscripción Tex-ture Type (Tipo de textura), seleccionamos Wood (Madera). Ahora, marcamos Ban-dNoise en la sección Wood. En la sección Preview podremos observar todas las modificaciones. Os recomiendo disminuir un poco el valor del campo Turbulence, p.e. hasta 3.0. Luego, pasamos a la sec-ción Material buttons (seleccionando con el ratón el icono con una bola roja) y elegimos la pestaña Map To. Aquí podemos librarnos del molesto color violeta. En vez de violeta, elegimos un tono un poco distinto al marrón que ya hemos atribuido al material (R: 0.6, G: 0.4, B: 0.3).

Pasamos a la pestaña Map Input. Aquí nos importan sobre todo los botones Flat, Cube, Tube y Sphe. Son responsables del modo en que se pone la textura en cada objeto. En relación con el objeto que tex-turicemos, se utilizará otro método: Flat para superficies, Cube para paralepípedo, Tube para cilindros y para conos rectos y Sphe para esferas. En el caso de la mesi-lla, elegimos Tube.

Son interesantes los grupos de cam-pos ofs (ofsX, ofsY y ofsZ) y size (sizeX, sizeY y sizeZ). Con ellos se puede cambiar con más precisión la posición de la textura en el objeto. Los campos ofs sirven para modificar la posición (desplazamiento) de textura, mientras que los campos size permiten escalar la textura en relación con los ejes respectivos. Los campos size ahora serán útiles, ya que con ellos podremos reducir los tamaños de la línea en el material de la madera. Con este objetivo, indicamos los siguientes valores de los campos: sizeX: 4.50, sizeY: 2.0 y sizeZ: 1.0.

MarcoAhora podemos ocuparnos del marco. Lo seleccionamos con el botón derecho del ratón y cambiamos el índice del mate-rial en 1 (como recordamos, el índice 1 corresponde al marco de madera, y el índice 2 corresponde al sitio para la foto). Realizamos los mismos pasos que en el caso del tablero de la mesa. Pasamos a la sección Texture buttons (con la tecla [F6]) y pulsamos Add New. Luego indicamos Wood (Madera) como el tipo de la tex-tura. Esta vez marcamos Bands. Pasamos a la sección Material buttons y en la pestaña Map To cambiamos el color a un color más adecuado (p.e. R: 0.87, G: 0.46 y B: 0.45).

Podríamos terminar con esto, pero podemos perfeccionar un poco el marco. Volvemos a la sección Texture buttons (con la tecla [F6]) e indicamos el campo del segundo canal de la textura (campo segundo de los ocho campos, entre los cuales el primero actualmente tiene el valor Tex). Luego, con la tecla del lado izquierdo de Add New, en el listado de despliegue, seleccionamos la textura con el nombre Tex.001. Es la misma textura que tenemos en el primer canal. Esta vez nos va a servir como mapa de con-vexidades. Volvemos a pasar a la sección Material buttons, y en la pestaña Map To eliminamos la selección del botón Col, y presionamos el botón Nor. El primero

Figura 9. Las escenas adecuadamente iluminadas son el primer paso hacia el éxito

Page 62: LiNUX+ DVD 2

60

primeros pasos

Linux+ 2/2004

de ellos define si la textura influye en el color del material. En cambio, el segundo define si la textura ejerce influencia sobre la longitud de las super-ficies normales renderizadas. Cuando lo marcamos, cuanto más oscura seala superficie de la textura, más aumen-tará la textura normal de la superficie, o lo que es lo mismo, aparecerán las convexidades.

Si queremos, podemos escalar las dos texturas, por ejemplo introduciendo (en la pestaña Map Input) en los campos sizeX y sizeY el valor 3.0, y no modifi-cando el campo sizeZ. De todas formas, es importante que se escalen ambas texturas, porque si no, aparecerán unas diferencias raras entre la textura real y el mapa de convexidades. Podemos pasar entre canales de texturas por medio de la pestaña Texture.

FotoNos queda colocar la foto en el marco. Utilicé la foto de mi gatito, pero podemos emplear un dibujo o una foto cualquiera. Seleccionamos el cuadro con el botón derecho del ratón, y cambiamos el índice del material en 2 (en la sección Material buttons). Pasamos a la sección Texture buttons (con la tecla [F6]) y agregamos una nueva textura (con la tecla Add New). Esta vez elegimos Image como tipo de textura. Presionamos la tecla Load Image (Carga imagen) y elegimos el fichero con gráficos que nos interese (Blender soporta los formatos más populares, inclusive JPG y PNG).

Si después de pulsar la tecla [F12] en el dibujo renderizado en el sitio donde debe estar la foto, vemos unas líneas paralelas de varios colores, probablemente haya-mos indicado incorrectamente el modo de mapeamiento. En este caso, pasare-mos a la sección Material buttons y en la pestaña Map input presionaremos el botón Cube. Así, nos quedará solamente mover y escalar del modo adecuado las fotos; con este objetivo podemos emplear el grupo de botones ya descrito, ofs y size.

Ponemos la cámaraDurante los renderizados de prueba que hemos realizado hasta ahora, nos ha podido molestar que la cámara se hallara tan lejos de la mesita y de la foto. Ahora es el momento de cambiarlo y ver nuestra obra desde cerca. Después de seleccionar

la cámara con el botón derecho, podemos moverla análogamente (es suficiente presionar la tecla [G]) y elegir el lugar final con ayuda del ratón. Observaremos que después de cada movimiento de cámara, hay que dirigirla de nuevo hacia la mesita (haciendo rotaciones en los ejes respectivos). Podemos facilitarnos el trabajo de modo significante indicando en qué objeto debe enfocarse la cámara. Para eso, al principio, seleccionaremos la cámara y luego el objeto elegido (en nuestro caso, el cuadro de la foto). Para seleccionar el cuadro, hay que retener la tecla [Shift] para seleccionar los dos obje-tos (el cuadro se debe seleccionar como el último, puesto que ha de ser un objeto activo). Presionamos las teclas [Ctrl]+[T] (Make Track) y elegimos Constraint (Cir-cundación) en la ventana visualizada. Ahora podemos seleccionar únicamente la cámara y moverla libremente; Blender cuidará de que el marco con la foto siem-pre se vea en el fotograma.

Ubicamos la cámara de modo que la mesilla con la foto ocupe casi todo el cuadro, luego verificaremos el aspecto del escenario renderizado (la tecla [F12]). El aspecto de la pantalla debe parecerse al de la Figura 8.

Iluminamos la oscuridad La iluminación correcta del escenario es muy importante. Hay que ver que en nuestro escenario usamos sólo una fuente de luz. Además, nuestro marco ni siquiera

proyecta sombra sobre la mesilla. En el mundo real, en la mayoría de los casos, cada objeto está iluminado desde varios lados. Es así porque la luz se refleja y dis-persa. Entonces, ¿qué hay que hacer para que nuestro escenario adquiera un aspecto más realista?

Pasemos a la ventana con la vista de frente (ventana izquierda inferior): seleccionamos la lámpara existente con el botón derecho del ratón (si la lámpara no es visible, tendremos que reducir la ampliación por medio de la rueda del ratón). En la ventana con botones apare-cerá automáticamente la sección relativa a las propiedades de las lámparas. Aquí podemos elegir entre varias fuentes de luz (botones entre Lamp hasta Hemi). Presionamos el botón Hemi, con el que obtenemos una luz más suave, y a la vez iluminamos mejor el escenario. La ubicación de la luz tipo Hemi no tiene importancia: cuenta sólo la dirección y el giro representado como una línea discontinua desde un punto que indica la fuente de luz.

Ahora agregamos la segunda fuente de luz, esta vez la luz que da sombra. Al principio, tenemos que determinar su ubicación: cerca del lado izquierdo de la cámara. En la ventana de la vista desde arriba contamos 1 campo cuadrado a la izquierda y 6 campos cuadrados abajo en relación con la mesita; luego presionamos el botón izquierdo del ratón (con esto se moverá el cursor).

Figura 10. Ya todo va bien

Page 63: LiNUX+ DVD 2

61

primeros pasosblender

www.lpmagazine.org

Tenemos que prestar atención a que el cursor se halle 3 campos cuadrados por encima de la mesa en la ventana de la vista de frente (sin cambiar la posición en el eje X). Para ser más precisos, podemos arrastrar el cursor a la malla ([Shift]+[S], Cursor–>Grid). Presionamos la tecla de espacio blanco y elegimos Add–>Lamp. Escogemos el tipo Spot, que corresponde más o menos a la luz de la linterna eléctrica o de la lámpara con pantalla. Ahora podemos experimentar y lanzar la luz de la lámpara (represen-tada como un cono con el vértice en la fuente de luz) hacia la mesa. No obs-tante, si no queremos fatigarnos rotando (la tecla [R]) la lámpara en unas vistas particulares, podemos hacer lo mismo que hicimos con la cámara. Elegimos la lámpara con el botón derecho del ratón, y a continuación (reteniendo la tecla [Shift]), seleccionamos también el marco de la foto. A continuación, pulsamos las teclas [Ctrl]+[T] y marcamos Constraint. Para nosotros lo importante es que sólo se proyecte la sombra, por eso en la sec-ción Shadow and Spot marcamos OnlyS-hadow (Sólo la sombra).

El resultado debe ser más o menos como el presentado en la Figura 9.

Renderizamos la imagenCuando terminemos el trabajo, a lo mejor querremos jactarnos con nuestro escenario. Cuando adquiramos prác-tica, podremos enviar nuestros trabajos a una galería en Internet. Necesitare-mos un dibujo de mejor calidad que el que tenemos después de pulsar la tecla [F12]. Pasamos a la sección Scene (la tecla [F10]).

Al principio, nos interesa la sección Format. Aquí disponemos de los campos SizeX y SizeY, que definen la resolución del dibujo final. Además, abajo podemos elegir el formato del almacenamiento de datos. Está predefinido como JPEG, no obstante, asimismo se puede guardar en el formato PNG y en un par de otros formatos. Si guardáramos la animación, podríamos usar el formato AVI. A la derecha tenemos una serie de botones, que permiten emplear unos ajustes pre-definidos. Yo, personalmente, elijo SizeX: 800, SizeY: 600 y el formato de fichero PNG.

Al usuario de Blender le puede sorprender una cosa. Si el tamaño del dibujo está predefinido como 640x480

píxeles, ¿por qué el dibujo obtenido des-pués de pulsar [F12] es tan pequeño? La respuesta se halla bajo el botón 50% en la sección Render. Gracias a este grupo de botones, podemos con facilidad redu-cir la calidad del dibujo renderizado (es decir, acelerar el proceso de ren-derizado), sin cambiar los valores en la sección Format. Ahora presionamos el botón 100% para obtener el resultado final.

Además, vale la pena presionar el botón OSA, con el que la imagen durante el renderizado se alisará.

Las últimas modificacionesAhora, ya podemos pulsar el botón [F12] para obtener un dibujo bonito y grande. Al mismo tiempo, es una buena oportu-nidad de captar todos los defectos. Por ejemplo, en el borde del tablero de nues-tra mesa se notan unas extrañas manchas más oscuras. Han aparecido porque los vértices de algunas superficies se dirigen hacia un lado incorrecto. Para resolver este problema, seleccionamos la mesa con el botón derecho del ratón y pasa-mos al modo de edición (la tecla [Tab]). A continuación, seleccionamos todos los vértices (la tecla [A]). Si queremos obser-var la posición de los normales, podemos pasar a la sección Editing (la tecla [F9]), y en la sección Mesh Tools 1 marcar Draw Normals (Dibuja los normales). Después de acercar la mesilla en la vista desde arriba, veremos que algunos se dirigen hacia el interior, y los otros hacia el exterior. Los ponemos en orden, presionando las teclas [Ctrl]+[N] (podemos también elegir en el menú Mesh–>Normals–>Recalculate Outside). Después de dejar el modo de edición ([Tab]) y pulsar [F12], nos damos cuenta de que el borde del tablero tiene por fin un aspecto ordenado (como en la Figura 10).

Así podríamos acabar, pero en la Figura 10 se nota un malo encuadre: los objetos se hallan abajo, y encima de ellos hay un espacio demasiado grande y azul. ¿Podemos hacer algo, si hemos obligado a que la cámara se enfoque en el marco de la foto? Sí. Podemos obligarla quew se enfo-que a la vez en el marco y en la mesita. Es suficiente agregar la siguiente limitación. Por eso, seleccionamos la cámara y luego la mesilla, presionamos las teclas [Ctrl]+[T] y elegimos Constraint. Ahora, el resultado debería dejarnos completamente satisfe-chos.

Almacenamiento de la imagen en el discoCuando ya hayamos conseguido con-tentarnos con la imagen renderizada, por fin podremos guardarla en el disco. Para hacerlo, pulsmos la tecla [F3] (o seleccionamos en el menú File–>Save Image). En la ventana abierta escribimos el nombre del fichero y presionamos dos veces la tecla [Enter]. Hay que recordar que Blender no añade automáticamente la extensión del nombre, por eso, tenemos que ponerla nosotros mismos.

FinCon esto terminamos esta corta descrip-ción de las funcionalidades básicas de Blender. Ya somos capaces de crear objetos sencillos, moverlos y cambiar sus tama-ños. Sabemos cómo disponer la ilumina-ción del escenario, de ahí que podamos observar el aspecto de los materiales y de las texturas puestas a los objetos. Hemos conocido los atajos básicos del teclado y las funciones soportadas por el ratón.

Os recomiendo que aprovechéis otras posibilidades de Blender, experimentando por vuestra propia cuenta y creando esce-narios cada vez más desarrollados. Pode-mos agregar una lamparilla ubicada en la mesa al escenario descrito en el artículo, y luego colocar todos los objetos con otro par de fotos en la pared. El paso siguiente es la realización de una animación en la que la cámara pueda moverse entre las fotos. Podemos incluso servirnos de la fun-ción de dirección con el movimiento de la cámara ayudándonos con el teclado.

En Internet:• Página principal de Blender: http://www.blender.org/• Sitio web con una galería de obras

de usuarios de Blender y muchos tutoriales:

http://www.blender3d.org/• Sitio web con tutoriales útiles relati-

vos a Blender: http://www.elysiun.com/• Texturas de mapas de planetas: http://gw.marketingden.com/planets/

planets.html• Librería con materiales preparados

para Blender: http://www.geocities.com/

pollythesheep/matlib_index.html• Sitio web del programa Yafray: http://www.coala.uniovi.es/~jandro/

noname/

Page 64: LiNUX+ DVD 2

equipo

62 Linux+ 2/2004

ACPI – gestión de energía en Linux Piotr Wolny

Linux casi desde sus primeras versiones ha apoyado las tecnologías de gestión de energía (ing. power manage-

ment). El término "gestión de energía" nos puede confundir un poco, porque la tecnología ACPI, desarrollada hoy en día, tiene un significado mucho más amplio que sólo el ahorro de energía eléctrica: permite acceder desde el nivel del sistema operativo a la confi-guración y permite verificar el estado de algunos dispositivos del ordenador. En particular, hace posible verificar el estado de la alimentación (baterías o red), el nivel de carga de las baterías o la temperatura del procesador. Asimismo, se puede disminuir la cantidad de la energía gastada por medio del estado de "suspensión" e incluso de hiberna-ción, es decir, apagarlo mediante la grabación de la memoría entera en el disco para poder volver a arrancarlo en el mismo estado.

La suspención del ordenador es útil no sólo en las máquinas alimentadas con baterías. En el PC de escritorio es un buen método para acelerar el arran-que del sistema, por ejemplo, cargando la imagen de memoria desde el disco, que dura mucho menos tiempo que el proceso entero del arranque. El modo S4 se puede emplear incluso en los ser-vidores o en los enrutadores (routers). Gracias a este modo, podemos ense-guida apagar el ordenador desde la red, por ejemplo, para introducir un nuevo disco y arrancarlo exactamente en el mismo estado en el que estaba antes de cerrarlo. Si lo hacemos rápido, pode-mos incluso no desconectar la conexión TCP/IP.

En los ordenadores portátiles es muy útil la posibilidad de modificar la frecuen-

cia de trabajo del procesador y controlar el estado de las baterías y el modo de alimen-tación. Desde el punto de vista de control, se pueden configurar varios modos de proceder, p.e. en el caso de pasar al modo de alimentación con baterías o de bajo nivel de carga de baterías.

En este artículo voy a tratar varios aspectos del modo de trabajo del procesa-dor (su estado de suspensión y el cambio de frecuencia del reloj), así como de nuevo mecanismo: laptop mode.

La suspensión del ordenador en la práctica Si disponemos de Linux con el nuevo núcleo de la versión 2.6.x, podemos elegir entre tres implementaciones de la suspen-sión del ordenador.

En la sección Power management options–>Software Suspend (Experimental) se halla una solución más antigua de configu-ración del núcleo, llamada Swsusp. Tenemos que marcarla junto con las opciones ACPI, que se encuentran más abajo. Además, no debemos marcar APM, pero en cambio, es imprescindible el soporte en el núcleo de la partición de sustitución.

Asimismo, en la sección Power management options, con el nombre Sus-pend-to-disk support vamos a encontrar

En el DVDEn el DVD se encuentran los

ficheros fuente de núcleos más recientes de Linux, así como tam-

bién parches para el núcleo que permiten ahorrar la energía.

DVDDespués de arrancar la distribu-

ción Linux+ Live DVD, podremos comprobar cómo funcionan

en el programa los elementos descritos.

Figura 1. Página web del proyecto ACPI para Linux

Page 65: LiNUX+ DVD 2

63

equipoacpi

www.lpmagazine.org

una versión más nueva, denominada Pmdisk. Difiere de la versión antigua en que, entre otros, no hay que marcar las opciones ACPI: funciona indepen-dientemente del sistema. Lo más pro-bable es que se mantenga sólo una de estas soluciones que en las versiones siguientes del núcleo: la mejor según la opinión de developers y de usuarios. No vendrá mal marcar las dos y verificar la solución que funcione mejor en nuestro equipo.

En la dirección http://swsusp.sf.net/ podemos encontrar una solución más desarrollada, pero elaborada indepen-dientemente del núcleo, denominada Swsusp2. Permite usar sólo el modo de Suspend to disk, y su instalación es mucho más difícil, por eso, a continuación vamos a analizarla.

Swsusp y PmdiskPara realizar tests iniciales con el modo de suspensión del ordenador, tenemos que disponer del nuevo núcleo de la serie 2.6.x, que compilamos con el soporte para Software Suspend, Suspend-to-disk support y con ACPI.

Todas las opciones relativas a ACPI las compilamos como fijas, no como módulos. No está mal marcarlas todas, aunque en el caso de PCs de escritorio no vamos a necesitar la mayoría de ellas. Siempre merece la pena marcar por lo menos Button. Cuando confi-guramos el núcleo, no marcamos las opciones relativas a APM, puesto que estas dos soluciones no funcionan a la vez.

Junto a un núcleo compilado e insta-lado, necesitamos también una partición de intercambio (swap) tan grande que quepa en ella toda la memoría empleada por el sistema operativo y las aplicacio-nes. Por lo general, se supone que para este objetivo es suficiente una partición de intercambio con un tamaño del 130% de la memoría física. No obstante, si arrancamos muchas aplicaciones a la vez, este valor puede resultar insufi-ciente.

Después de arrancar el núcleo nuevo, verificamos si todo funciona bien: en nues-tro sistema debe hallarse el directorio /proc/acpi/ y el fichero /sys/power/state. Si no tene-mos /proc/acpi/, verificamos si se ha activado la ACPI en la BIOS del ordenador. Si, dura-nte el arranque, el núcleo no muestra ninguna información sobre ACPI (dmesg| grep -i acpi no muestra ningunalínea), se supone que nuestro núcleo noha sido compilado con el soporte de ACPI. Podemos verificar también si enlilo.conf o en grub.conf se encuentrala línea acpi=off o acpi=ht; si está allí,la eliminamos. En vez de ella, podemosescribir append="acpi=on apm=off" (no esnecesario, si hemos configurado correcta-mente el núcleo) .

SwsuspAl principio, vamos a testear el método tradicional de suspención, es decir, Swsusp. Está bien empezar las pruebas con un modo que funcione más estable, o sea, con Suspend to disk. Al principio, tenemos que comunicar al núcleo dónde se halla la partición del intercambio (swap), en la que se cargará y guardará la memo-ria en el estado de suspensión. Hay

que hacerlo añadiendo una línea ade-cuada en la configuración de LILO ( /etc/lilo.conf ), p.e. append="resume=/

dev/hda9" debajo de la línea que indica la ubicación del núcleo de nuestro Linux. Si en la sección lilo.conf, que describe el núcleo de Linux, ya se ha encontrado la línea append, agregamos entre paréntesis resume=... las opciones ya existentes. Si empleamos GRUB ( /etc/grub.conf ), las opciones que pasan al núcleo, se encuentran en la misma línea donde se halla el nombre del fichero con el núcleo. Entonces, también tenemos que añadir una opción adecuada, p.e.resume=/dev/hda9. Naturalmente, tene-mos que acordarnos de sustituir el hda9 de ejemplo e indicar correctamente la partición swap. Después de agregar la opción y ejecutar el comando lilo, tene-mos que reiniciar Linux.

Ya es hora de realizar la prueba deci-siva (está bien guardar todos los datos importantes): realizamos un comando mágico echo 4 >/proc/acpi/sleep. De este modo hemos puesto el ordenador al estado de suspensión, y concretamente al cuarto modo de hibernación. Al principio, aún durante entre diez y varias docenas de segundos se nos muestran los mensajes de que se apagan los dispositivos adecua-dos. Si hay problemas con un dispositivo, ahora podemos leer la información sobre ese problema. Al final de este proceso el ordenador se apaga. Si volvemos a arran-carlo, hay que esperar unos segundos a que se arranque normalmente la BIOS, y también LILO/GRUB, donde después de elegir Linux antes hibernado, aún tenemos que esperar un par de segundos para arancar el núcleo del sistema. No obstante, el núcleo, en vez de arrancar como siempre, ejecuta Inita, empieza a recuperar el modo antes cargado

Hibernación y suspensiónEn teoría, en la especificación de ACP hay hasta cinco modos de suspender el ordenador:

• S1 – equivalente de standby de MS Windows. En este modo el procesa-dor sigue estando alimentado, pero no realiza ninguna instrucción.

• S2 – actualmente no se emplea (en teoría se parece a S3, pero algunos equipos están alimentados).

• S3 – Suspend to RAM: la alimen-tación de la memoria se limita sólo a autoreconstrucción, con lo que se mantiene su contenido. Téc-nicamente es el modo más difícil de realizar, porque requiere que colaboren: el procesador, el chipset, dispositivos y sus drivers y el sis-tema operativo.

• S4 – Suspend to Disk: el más interesante entre estos modos, que a la vez funciona de manera más estable. En este modo, el contenido de la memoria se guarda en el disco (normalmente en la partición swap) y se puede apagar completamente el ordenador o emplear para otros objetivos (p.e. podemos arrancar otro sistema operativo con la con-dición de que no emplee la misma partición swap).

• S5 – Soft Off: se apaga el sistema, pero se mantiene la alimentación de algunos dispositivos del sistema que puedan ocasionar que el sistema "se despierte", p.e. tarjeta de sistema o controlador USB.

Figura 2. Página web del proyecto Swsusp2, que suministra los parches para núcleos de Linux con la funcionalidad de hibernación del ordenador

Page 66: LiNUX+ DVD 2

64

equipo

Linux+ 2/2004

y al cabo de 15 minutos el sistema ya se restablece a su estado anterior. De hecho, no hay que guardar los datos en el editor del texto: todo vuelve al estado exactamente igual que antes de hibernar el ordenador. De este modo, el arranque de Linux, junto con KDE, OpenOffice.org y varios progra-mas más tarda cosa de 30 segundos.

A veces ocurre que el ordenador no va al estado de suspensión (entonces podemos intentar emplear otras solu-

ciones, que describiré a continuación) o no quiere “despertarse”. En el segundo caso, tenemos que arrancar el núcleo con el parámetro noresume. Podemos hacerlo, por ejemplo escribiendo linux noresume tras la sugerencia por parte de LILO (si LILO arranca junto con el menú gráfico, primero tenemos que presionar la tecla [Tab]).

Podemos testear de la misma forma los demás estados de hibernación. El

comando cat /proc/acpi/sleep visuali-zará los modos soportados por nuestro sis-tema, p.e. S0 S1 S4 S5. Podemos ejecutar el comando echo 1 >/proc/acpi/sleep para pasar al modo S1, etc.

PmdiskSin tomar en cuenta si las pruebas con Swsusp han tenido éxito o no, vamos a probar un método más nuevo de sus-pensión, es decir, Pmdisk. Funciona del

Fuentes del núcleoEl sitio más importante de distribución de fuentes de Linux es www.kernel.org. Antes de decidirnos a bajar cualquier cosa desde este sitio, hay que encontrar un servidor espejo (ing. mirror) situado lo más cerca posible de nosotros. De este modo nos facilitamos el trabajo (reduci-mos el tiempo de descarga de un fichero de varias decenas de bytes) y ayudamos a los administradores del servidor princi-pal para no sobrecargarlo. En la página www.kernel.org hay información sobre la última versión disponible del núcleo. Eso es precisamente: ¿qué núcleo elegir? En www.kernel.org se encuentran los siguientes:

• los núcleos de la serie 2.6.x: desig-nados como los últimos núcleos estables, pero los seleccionamos sólo cuando nuestra distribución ori-ginalmente se ha suministrado con el núcleo 2.6.x (p.e. Mandrake 10 y los más nuevos, Fedora Core 2) o al menos se ha adaptado al trabajo con los núcleos de esta serie, como p.e. Mandrake 9. Si realmente es impres-cindible descargar el núcleo desde la página www.kernel.org, tenemos que hacer click en el enclace con la letra "F".

• los núcleos de la serie 2.4.x: son los núcleos más estables con posibilida-des un poco reducidas que sirven para construir la mayoría de distribuciones actuales, p.e. Aurox Linux 9.4. De igual forma, para descargar las fuentes, tenemos que presionar en “F”.

• los núcleos de la serie 2.2.x y de la serie 2.0.x: las versiones más antiguas de núcleos, demasiado anti-cuados para emplearlos en el equipo de hoy; pueden resultar útiles sólo para usos "especiales", tales como

la construcción de un enrutador simple.

Además, en la página www.kernel.org los usuarios más avanzados pueden encontrar varios parches (ing. patches) para las fuen-tes del núcleo. Esto incluye las versiones del núcleo pre, que después de un periodo de pruebas y de correcciones se convierten en las versiones sucesivas estables, las versiones snapshot, con registro del trabajo de developers del núcleo actualizado cada día, y los parches -mm, esto es, los parches de Andrew Morton, con uncódigo más reciente y menos testeado.A lo mejor dentro de poco en www.kernel.org encontraremos también los núcleosde la siguiente serie "experimental", esdecir, la 2.7.x.

Si nos decidimos a compilar el núcleo por primera vez, es mejor no entrar en www.kernel.org, sino usar las fuentes de nuestra distribución. Normalmente, las fuentes se modifican un poco respecto a las fuentes originales, con más frecuencia con unos parches nuevos, que todavía "ofi-cialmente" no se han aceptado. Contienen también el fichero de configuración listo, adaptado a nuestra distribución. Es una selección óptima para un usuario princi-piante. Las fuentes de núcleo se hallan entre los paquetes binarios (!) de nuestra distribución. Es un paquete con el nombre kernel source, p.e. kernel-source-2.4.20-20.9.i386.rpm. Si en nuestra distribución hay varias versiones de fuentes del núcleo, seleccionamos la versión que usamos actualmente: podemos verificarlo con el comando cat /proc/version. Instalamos el paquete seleccionado como cualquier otro paquete, p.e. con el comando rpm -i [nombre fichero].

Hay ventajas e inconvenientes en la selección de fuentes suministrados por

nuestra distribución. El primer inconve-niente consiste en el hecho de que, por lo común, en www.kernel.org hay una versión de fuentes más nueva que la de nuestra distribución. Es importante sólo en el caso de que en la nueva versión haya modificaciones esenciales para nosotros. El segundo inconveniente puede manifestarse cuando un software requiere que se apliquen los parches a las fuentes de núcleos y se compilen de nuevo (p.e. lm_sensors). Por des-gracia, los autores de varios programas que requieren aplicación de parches en el núcleo, por lo común, proyectan que empleemos núcleos "originales" de www.kernel.org y sus parches no se van a aplicar o no van a funcionar en los núcleos modificados por autores de varias distribuciones. No obstante, si no planeamos en el futuro aplicar par-ches en nuestro núcleo, esto no nos va a molestar.

Después de instalar los paquetes con las fuentes del núcleo, en el sistema se encontrará el directorio /usr/src/linux, con varias docenas (en el caso de núcleos 2.4.x) e incluso hasta casi doscientos (núcleos 2.6.x) megabytes del código. Si bajamos el fichero con el núcleo por separado, debemos colo-carlo en el directorio /usr/src/, descom-primirlo, p.e. con el comando tar jxfvp linux-2.4.26.tar.bz2, y luego cerrar el enlace simbólico de un directorio recién construido a /usr/src/linux, p.e. ln -s

linux-2.4.26 linux. Podemos colocar las fuentes del núcleo en otro directorio, pero esto puede provocar problemas en un futuro, cuando compilemos algunos programas, cuyas fuentes predefinidas se hallen precisamente en /usr/src/linux.

Page 67: LiNUX+ DVD 2

65

equipoacpi

www.lpmagazine.org

mismo modo, pero los comandos ejecu-tados son distintos. En vez de resume=/dev/hda9, durante la configuración de LILO/GRUB tenemos que escribir pmdisk=/dev/hda9. No olvidemos reini-ciar el ordenador. Después de realizar el comando cat /sys/power/state, se nos mostrará un listado con los modos de hibernación soportados: son, p.e. standby mem disk, que equivalen respec-tivamente a S1, S3 y S4 (si los ajustes de la BIOS del ordenador no modifican esta norma). El comando mágico, con el que se suspende nuestro ordenador, puede ser el siguiente, p.e.: echo -n disk >

/sys/power/state. Hay que fijarse en la opción -n del comando echo: sin esta opción seguramente no funcionará. De modo parecido realizamos las pruebas con los modos restantes. En caso de pro-blemas con el arranque del ordenador, en vez de linux noresume, después de la sugerencia por parte de LILO, emplea-mos linux pmdisk=off.

Desgraciadamente, algunos modos no funcionan bien en cada equipo. En mi ordenador, en el que ya faltan los slots libres PCI, puertos USB o puertos en serie, ha funcionado completamente bien con el comando echo -n disk > /sys/power/

state, o sea, el comando que suspende el disco. Después de ejecutar un comando adecuado, el sistema necesita unos 15 segundos para grabar su modo (con 512 MB de memoria). Después de realizar el comando echo 4 >/proc/acpi/sleep, el sistema ha tardado en suspenderse más tiempo y a veces se han producido pro-blemas con el manejo del ratón después de despertarse.

Posibles problemasDespués de restablecer el sistema desde el disco, siempre hay que ajustar la hora

del sistema y la fecha, porque el sistema "se despierta" con la fecha y la hora memorizadas antes de suspenderse. Para sincronizar la hora del sistema con la hora del reloj en la placa madre, ejecutamos el comando hwclock

--hctosys.En cambio, en mi ordenador no

funciona el modo S3 – Suspend to RAM . Así ocurre porque tengo el controlador SATA SiI3112, cuyo driver de Linux no soporta el modo de suspensión. Asimismo, otros usuarios a menudo informan sobre los problemas rela-cionados con este modo en otros tipos diferentes de equipo, que incluye los ordenadores portátiles. No obstante, en los ordenadores de la mayoría de los usuarios debiera funcionar correcta-mente.

En mi ordenador también hay pro-blemas con el modo S1. Aunque después de realizar el comando echo -n mem > /sys/power/state al principio el orde-nador pasaba a este modo, de repente se despertaba. Después de cambiar los ajustes en la BIOS (para apagar even-tos que "despiertan" el ordenador), he conseguido suspenderlo, pero después de despertarse no han funcionado correctamente el teclado y el ratón PS/2. El comando echo 3 >/proc/acpi/sleep funciona bien con una excepción: no

apaga el monitor. Sin embargo, todos estos problemas se producen en una máquina con varias tarjetas distintas PCI, no todas fabricadas por empresas de renombre.

Swsusp2Los mecanismos antes descritos de sus-pensión del ordenador, están colocados en el núcleo estándar. El tercer mecanismo, Swsusp2, requiere que se pongan los par-ches en las fuentes del núcleo, pero ofrece muchas más posibilidades.

Hay que citar las más importantes de ellas:

• un fichero de configuración cómodo y un script avanzado listo para sus-pender el sistema, gracias a los que podemos eliminar los problemas con el equipo poco compatible y con pro-gramas;

• posibilidad de compresión "al vuelo" de la imagen guardada de la memoria;

• posibilidad teórica de guardar la imagen de la memoria no sólo en la partición de intercambio, sino también en el fichero de intercambio (swap file): en el momento de escribir este artículo, no funciona el soporte de swap file;

• Swsusp2 también se desarrolla en la versión para núcleos de la serie 2.4.x.

Listado 1: Script de ejemplo que suspende el ordenador

#!/bin/sh

rmmod usblp usb-storage hid;

rmmod ohci-hcd;

rmmod usbcore;

# Suspend to RAM

echo -n "mem" > /sys/power/state;

modprobe usbcore;

modprobe ohci-hcd;

modprobe usblp usb-storage hid;

exit 0;

Figura 3. En los núcleos de la serie 2.6.x de forma predefinida hay dos métodos de suspender los ordenadores, pero después de aplicar los parches, podemos elegir entre tres

Page 68: LiNUX+ DVD 2

66

equipo

Linux+ 2/2004

No es difícil instalar Swsusp2 cuando sabemos compilar el núcleo de Linux.

La compilación se puede realizar de manera siguiente:

• Descargamos desde la página http://swsusp.sourceforge.net/ los últimos par-ches para núcleos 2.6.x. Cuando escribo este artículo, son los ficheros software-suspend-linux-2.6.2-rev1-whole.bz2 y soft-ware-suspend-core-2.0-whole.bz2. El pri-mero de estos ficheros contiene unos cambios específicos para la versión determinada del núcleo, por eso, sus últimas versiones aparecen con más frecuencia (aunque con retraso res-pecto a los núcleos mismos), el segundo

fichero se actualiza con menos frecuen-cia. Descargamos también el núcleo enla misma versión que el primer parche: en este caso 2.6.2. Del mismo modo se instalan los núcleos de la serie 2.4.x.

• Descomprimimos los parches (bunzip2 [nombre del fichero]) y el núcleo (tar jxfvp linux-2.6.2.tar.bz2) y aplicamos allí los parches. Es importante aplicar primero el parche propio de la versión de núcleo: cd linux-2.6.2; patch -p1 <../software-suspend-linux-2.6.2-

rev1-whole; patch -p1 <../ software-

suspend-core-2.0-whole.• Durante la configuración del núcleo,

en la sección Power management options seleccionamos Software Suspend 2,

y luego swap writer. Es lo mínimo imprescindible. Asimismo, podemos marcar uno de los Page transformers: yo empleo LZF. Es un algoritmo de compresión muy rápido.

• En el fichero /etc/lilo.conf, como en los ejemplos descritos arriba, agrega-mos la opción transmitida al núcleo, que define la ubicación de nuestra partición de intercambio. Debe tener un aspecto append "resume2=swap:

/dev/hda9". Naturalmente, cam-biamos hda9 por un dispositivo propio de nuestro sistema. Ahora podemos reiniciar el sistema y arrancarlo en el núcleo recién com-pilado.

• Descargamos un fichero más, suspend.sh, desde la página http://swsusp.sourceforge.net/ y le otor-gamos los derechos para ejecutar (chmod a+x suspend.sh) y realizamos el comando ./uspend.sh --install. Entonces se crea el fichero de con-figuración /etc/suspend.conf y elscript que ayuda suspender elsistema: /usr/local/sbin/hibernate.

• El comando mágico que suspende nues-tro sistema es /usr/local/sbin/hibernate. Después de su ejecución, el sistema al cabo de unos segundos se debe sus-pender. Sin embargo, en caso de pro-blemas, existen muchas posibilidades de modificar el proceso de suspender por medio de la edición del fichero /etc/suspend.conf. Si hay un problema para despertar el sistema después de cerrarlo, tras el estímulo de parte de LILO, escribimos Linux noresume2.

Despertar a tiempoAntes de suspender el ordenador, podemos determinar la hora a la que se despierte por sí solo. Con este objetivo, ejecutamos el comando en el formato echo yyyy-mm-dd hh:mm:ss > /proc/acpi/alarm. Por ejemplo,

Compilación del núcleoEs más bien una tarea que hace nuestro ordenador y no nosotros. En el caso de los núcleos de la serie 2.4.x basta con el comando make bzImage (¡el tamaño de las letras tiene importancia!), y después de finalizar su trabajo con el comando make modules. En los núcleos de la serie 2.6.x sólo necesitamos el comando make, desde luego, realizado en el directorio /usr/src/linux.

Muchos usuarios piensan que esta etapa es complicada, aunque no debe ser así. En la práctica, realizamos la configuración pasando al directorio /usr/src/linux y ejecu-tando uno de los comandos siguientes:

• make menuconfig – se nos mostrará el menú de texto que para funcionar requiere librerías Ncurses (también los paquetes -dev(el)). Si después de realizar este comando se nos muestra un error, tenemos que añadir e insta-lar estas librerías desde el disco con nuestra distribución. En este método no necesitamos X Window y podemos realizarlo también de modo remoto, p.e. por medio de ssh.

• make xconfig – se nos mostrará el menú en ventanas X Window. Este método requiere que las librerías Tcl/Tk estén instaladas (en el caso de núcleos 2.4.x) o QT (en el caso de núcleos 2.6.x). En algunas distribuciones, para visualizar las ventanas, hace falta ejecutar antes el comando xhost +

en la cuenta del usuario que trabaja en X Window.

• make bconfig – funciona sólo en los núcleos de la serie 2.6.x y requiere las librerías GNOME.

Sin tomar en cuenta qué interfaz hemos arrancado, cuando empieza su trabajo, lee los ajustes determinados en el fichero con el nombre /usr/src/linux/.config. Está bien si el fichero .config proviene del paquete de nuestra distribución, puesto que sabemos a ciencia cierta que con-tiene ajustes correctos. En este caso podemos, después de arrancar p.e. make xconfig, centrarnos únicamente en la realización de las modificaciones de la configuración del núcleo que necesitamos

en un momento dado, p.e. para iniciar el soporte de ACPI.

Sin embargo, si nuestro núcleo pro-cede de otra fuente que no sea nuestra distribución, podemos de modo correcto iniciar/finalizar el soporte de dispositivos determinados, sirviéndose del conoci-miento que tenemos sobre nuestro orde-nador, que cuando compilamos el núcleo indudablemente se ampliará y profundizará. Cuando no estamos seguros qué elegir, siempre podemos emplear la configuración realizada antes por los autores de nuestra distribución. Con este objetivo tenemos que "sacar" desde las fuentes del núcleo en el paquete rpm o deb el fichero .config y copiarlo a /usr/src/linux. Recordemos que no es suficiente realizar una copia. Después de copiar este fichero, hay que ejecutar make menuconfig o uno de los comandos de configuración mencionados arriba.

Cuando configuramos el núcleo, ante todo si lo hacemos sin ninguna ayuda, sin usar el fichero .config de la distribución, podemos cometer varios errores. Incluso es posible que a consecuencia de algu-nos de estos errores el sistema no pueda arrancar. Sin duda, no podemos olvidar que está bien tener en nuestro núcleo:

• VGA text console – por defecto sólo podremos trabajar en el ordenador por medio de la red o en X Window;

• soporte del dispositivo al que está unido el disco con el sistema principal de ficheros (IDE/SCSI);

• soporte del sistema de ficheros en el que se formateó nuestra partición principal (ext2/ext3);

• si compilamos el núcleo por la red, no olvidemos de la tarjeta de la red, por medio de la cual estamos unidos a este ordenador.

Configuración de las fuentes del núcleo

Page 69: LiNUX+ DVD 2

67

equipoacpi

www.lpmagazine.org

escribimos echo 2004-05-01 13:01:00 >

/proc/acpi/alarm para despertar el orde-nador el 1 mayo de este año a las trece y un minuto. El ordenador debería despertarse en los modos S1, S2 y S3.

Problemas con la suspensiónEl modo más difícil de suspensión del ordenador es S3, o sea, Suspend to RAM. Al mismo tiempo, es el modo más deseado, sobre todo en el caso de ordena-dores portátiles. Es el modo que suspen-de y restablece el sistema con más rapidez. Además, en el caso de Suspend

to RAM, el ordenador para “dormir”no necesita energía adicional, impresci-ndible en el caso de Suspend to disk para guardar la memoria en el disco duro. La cantidad de corriente necesaria cuando el ordenador está en S3 de verdad es escasa: la batería cargada debe ser sufi-ciente para una suspensión de un par de días.

No existe ninguna regla general que garantice el éxito cuando se pasa de y al modo S3 en cada ordenador. Si real-mente queremos que este modo funcione, podemos intentar hacerlo de manera siguiente:

• Desconectamos todos los servicios (demonios), por ejemplo, pasando al single mode con el comando init 1. Luego, desconectamos los dispositivos externos y eliminamos el máximo de módulos del núcleo posible. El lis-tado de los módulos se visualiza con el comando lsmod. Como primeros, hay que eliminar los que en la tercera columna del informe lsmod tengan el valor "0", es decir, que no se usen por otros módulos. Con la orden modprobe -r [nombre del módulo] podemos eli-minar los módulos particulares.

• Intentamos suspender el sistema con el comando echo -n mem > /sys/power/state o echo 3 >/proc/acpi/sleep. Si ninguno de los métodos funciona, inten-tamos cambiar los ajustes de la BIOS del ordenador. Muy a menudo las placas madres incluyen unas opciones relati-vas a la gestión de energía extrañas, que pueden ser la causa de problema. Si no ayuda nada, nos queda sólo esperar las versiones nuevas del núcleo de Linux: a lo mejor habrá algunas modificaciones que faciliten el funcionamiento de Sus-pend to RAM en nuestro equipo.

• Si alguno de los métodos arriba indi-cados suspendió y despertó de modo correcto nuestro ordenador, cargamos los siguientes módulos del núcleo, arrancamos los demonios sucesivos, cada vez intentando suspender y despertar de nuevo nuestro ordenador, hasta que encontremos el programa o dispositivo que provoca los problemas. Al final, intentamos realizar la operación de sus-pención con nuestro sistema X Window.

Tabla 1. Comparación de métodos de suspensión de Linux

swsusp pmdisk swsusp2Disponibilidad en el núcleo 2.6.x en el núcleo 2.6.x parches de los núcleos 2.4.x y 2.6.x

Activación echo 4 > /proc/acpi/sleep echo -n disk > /sys/power/state

/usr/local/sbin/hibernate o echo > /proc/swsusp/activate

Desactivación noresume pmdisk=off noresume2

Argumento necesario para arrancar el núcleo

resume=/dev/hda# pmdisk=/dev/hda# resume2=swap:/dev/hda#

Requisitos de configuración del núcleo

swapACPI

swap swap

Ventajas + solución estándar, bien testeada+ disponible en el núcleo estándar

+ nueva implementación, parece mejor + disponible en el núcleo estándar + funcionamiento rápido

+ muchas más posibilidades de configuración + mejor documentación + soporte de compresión+ proyectos ambiciosos de desarrollo+ funcionamiento más rápido

Inconvenientes - requiere ACPI- funcionamiento relativa-mente lento

- solución nueva, poco testeada

- sirve exclusivamente para suspend to disk- requiere aplicación de parches en los núcleos, retrasados respecto a las versiones nuevas

Figura 4. En los núcleos de la serie 2.4.x se encuentra también el soporte de APM y de ACPI

Page 70: LiNUX+ DVD 2

68

equipo

Linux+ 2/2004

Cuando detectemos el problema o el módulo del núcleo, podemos escribir el script que lo elimine/desconecte antes de suspender el sistema. El Listado 1 presenta un ejemplo muy sencillo. Este script eliminará los módulos responsa-bles de USB, pero después de restable-cer el sistema, los cargará de nuevo.

En caso de problemas con el modo Sus-pend to disk, tanto si utilizamos el primer método, (Swsusp), como el segundo, (Pmdisk), podemos proceder de modo parecido como en caso de problemas con Suspend to RAM. Os recomiendo probar la solución Swsusp2, porque es más rápido y ofrece más posibilidades. Asimismo, debe funcionar bien con otros tipos de equipos. Esto no significa que siempre fun-cione sin problemas. Entre los problemas más frecuentes hay que citar estos:

• Si disponemos de la tarjeta gráfica de la empresa NVidia, en el fichero /etc/suspend.conf debemos tener

la línea SWSUSP_LEAVE_X_BEFORE_

SUSPEND="nvidia" (de modo predeter-minado, en vez de "nvidia" hay "no"). De este modo evitaremos el problema con la aceleración 3D que "desaparece", después de despertar el ordenador.

• En el caso de Debian, a veces tenemos que modificar /etc/suspend.conf elimi-nando umountnfs.sh desde el listado de servicios antes y después de la suspen-sión del sistema.

• Swsup2 no desconectará completa-mente el ordenador si en el núcleo no tiene ACPI o APM compilado. Cuando el proceso de suspensión termina, hay que usar el botón de la caja.

¿El viejo pero bueno APM?Las soluciones antes descritas se basan, en mayor o menor grado, en el código que soporta ACPI. Aunque funcionan en varios tipos de equipos y se los reconoce como bastante estables, a lo mejor en varios ordenadores tendrá más éxito el estándar más antiguo, o sea, APM.

Los núcleos de Linux, en todas sus distribuciones tienen el soporte APM predefinido. No obstante, si configuramos y compilamos el núcleo solos, en la serie 2.4.x encontraremos APM en la sección General setup con el nombre Advanced Power Management BIOS support, mientras en la serie 2.6.x, en la sección Power Management support. Todas las opciones adicionales de la sección APM sirven sólo para evitar problemas con otros tipos de equipamiento menos compatible y no tenemos que mar-carlas. Además, lo mejor es compilar APM en el núcleo "para siempre".

Es incluso más fácil suspender el ordenador por medio de APM, ya que en nuestra distribución debemos encontrar el paquete con el nombre Apmd, y en él, los programas apm y apmd. Con ayuda del primero de ellos, en cualquier momento podemos poner el ordenador en espera (standby) o suspender (suspend). El segundo de ellos es un demonio conectado durante el arranque del sistema, que de modo automático realiza algunas acciones cuando ocurren eventos relacionados con la gestión de energía (p.e. orden de pasar al modo de suspend o el cambio de alimen-tación de una alimentación desde la red, en una alimentación con baterías).

Para suspender nuestro ordenador con ayuda de APM, podemos ejecutar el

APM y ACPIUna tecnología mayor es la gestión avanzada de energía: Advanced Power Management (APM), que en la actualidad se sustituye gradualmente por Advanced Configuration and Power Interface (ACPI). APM sirve para ahorrar energía eléctrica con ayuda de varias técnicas empleadas a nivel del equipo, sin participación del sistema operativo. ACPI funciona sobre todo a nivel del sistema operativo, por eso, no sólo le conciernen los límites de la memoria de la BIOS, sino que también es posible gestionar la energía de modo más inteligente y más universal, p.e. la aplicación que muestra la presentación puede pasar al equipo una información de que el monitor es necesario y no se puede apagar, o el sistema operativo decide que en un momento dado el procesador fun-cione con más lentitud.

Tanto en los núcleos de la serie 2.4.x, como de la serie 2.6.x, hay soporte para APM y para ACPI. No obstante, hay que recordar que los dos sistemas se excluyen mutuamente: en un momento determinado sólo podremos emplear uno de ellos.

Instalación del núcleoAl principio, instalamos los módulos de núcleo con el comando make modu-

les_install. Aparecerá el directorio /lib/modules/[versión_núcleo], p.e. /lib/modules/2.4.26, en el que en un par de subdirectorios se colocarán todos los módulos. Si compilamos la misma versión del núcleo que la versión actualmente empleada por el sistema, el directorio ya existe en el sistema, y eso no está bien: en este caso debemos primero eliminarlo, o mejor, cambiar su nombre, p.e. en 2.4.26-bak, y más tarde ejecutar make modules install.

El núcleo, después de la compilación, se halla en el fichero /usr/src/linux/arch/i386/boot/bzImage. Este fichero se debe copiar al directorio /boot/. Podemos apro-vechar la ocasión para cambiar su nombre, sobre todo si en el directorio /boot/ ya se encuentra el fichero bzImage.

Es hora de realizar una operación más difícil, es decir, configurar LILO o GRUB. Si nuestra distribución emplea LILO, enconraremos en ella el fichero /etc/lilo.conf. En este fichero tenemos que buscar una sección responsable del arranque de nuestro Linux. Las seccio-nes adecuadas empiezan con la línea image=[fichero de núcleo]. Para hacerlo, copiamos en este fichero toda la sección (así es más difícil cometer un error) y realizamos las siguientes modifi-caciones en el fragmento copiado:

• cambiamos el argumento en la línea image= por un argumento propio del fichero con nuestro núcleo, p.e. image=/boot/bzImage;

• eliminamos la línea initrd=...;• cambiamos el argumento de la línea

label= en otro argumento, p.e. mi_obra.

Después de guardar estas modifica-ciones, ejecutamos el comando lilo desde la cuenta de root. Si el programa detecta algunos errores en /etc/lilo.conf, lo comunicará con detalles y terminará el funcionamiento, sin perjudicar el sector de arranque. Si todo va bien, intentare-mos reiniciar el ordenador, seleccionando en el menú LILO el nuevo núcleo, p.e. mi obra. Si se produce algún problema con el núcleo nuevo, siempre podemos volver a arrancar el ordenador, seleccio-nando en el menú LILO el núcleo antes empleado.

Podemos realizar la configuración de GRUB de modo parecido como en el caso de LILO. La composición del fichero /etc/grub.conf en realidad es distinta, pero las secciones que empiezan con la línea title... también se pueden copiar y rea-lizar las modificaciones analógas como en el caso de lilo.conf. Simplemente, en vez de label aquí tenemos title, y en vez de image – kernel.

Page 71: LiNUX+ DVD 2

69

equipoacpi

www.lpmagazine.org

comando apm –standby o apm –suspend. En este momento demon apmd escribirá una información adecuada para registros del sistema, sincronizará los discos duros, realizará comandos definidos en los scripts en el directorio /etc/apm/ y, después de hacerlo, ejecutará una operación ade-cuada de suspención.

Cuanto más antiguo es nuestro equipo, más oportunidades de éxito de esta opera-ción hay. El sistema X Window ocasiona con APM varios problemas, por eso, vale la pena antes de suspenderlo al menos pasar al terminal de texto.

Baterías y botonesCuando configuramos el núcleo de la serie 2.6.x, en la sección ACPI, entre otras, se hallan las opciones AC Adapter, Battery, Button, Fan, Processor y suplementos para notebooks de las empresas Asus y Toshiba, que marcamos, obviamente, sólo si dispo-nemos de un equipo de estas empresas. Si hemos marcado las opciones adecuadas y nuestro núcleo se ha compilado y se ha instalado correctamente, en el directorio /proc/acpi/ vamos a encontrar los subdi-rectorios responsables de dispositivos respectivos, soportados por ACPI. Entre otros, serán: ac_adapter, battery, fan, button, processor y thermal_zone. Los directorios ac_adapter y battery en mi PC de escritorio están vacíos. Esto significa que el núcleo de Linux no ha detectado en mi ordenador ni la batería, ni el indicador que informa si el sistema está alimentado con batería o desde la red. Desde luego, es normal en el caso de PCs de escritorio. Sin embargo, en los ordenadores alimentados con baterías, se encuentran otras informaciones que pueden tener el aspecto siguiente:

$ cat /proc/acpi/battery/BAT0/state

present: yes

capacity state: ok

charging state: discharging

present rate: 28277 mW

remaining capacity: 50100 mWh

present voltage: 16320 mV

Si estos datos faltan, el sistema ACPI de nuestro ordenador portátil no está sopor-tado por el núcleo de Linux.

Claro, esta manera de mirar el estado de baterías con el comando cat no es muy cómoda, por eso, se han creado varias apli-caciones que funcionan en modo gráfico y que facilitan esta tarea. La más popular de ellas es probablemente Klaptopdaemon, que forma parte del entorno KDE. Gracias a esta aplicación, podemos hacer click en el icono con visualización del estado de bate-rías con ayuda del Centro de Control KDE.

Desde luego, las posibilidades de Linux no se limitan a la verificación del estado de baterías. El núcleo de nuestro sistema puede detectar varios eventos (ing. events), comunicados por ACPI. Los empleados más frecuentemente son:

• el pulsar los botones Power o Sleep,• cierre del ordenador portátil comuni-

cado como el pulsar el botón Lid,• conexión y desconexión de alimenta-

ción desde la red,• soporte de teclas adicionales y de

reguladores en algunos ordenadores portátiles.

Si se produce uno de estos eventos, el núcleo envía la información sobre él al fichero /proc/apci/event. Precisamos de un programa que, funcionando en segundo plano, todo el tiempo monitorice /proc/apci/event, y cuando se produzca uno de los eventos, realice las tareas determina-das por nosotros, o sea, en otras pala-bras, arrancará un programa o un script. Acpid es un programa de estas caracte-rísticas. Debemos encontrarlo en nues-tra distribución o en la página http://acpid.sf.net/.

La configuración del demonio Acpid es sencilla. Por ejemplo, si queremos que nuestro sistema se cierre después de presionar el botón Power, necesitamos el fichero /etc/acpi/events/power con el conte-nido siguiente:

event=button/power (PWR.|PBTN)

action=/sbin/poweroff

Por supuesto, action puede tener cualquier argumento. En vez de cerrar el sistema,

podemos hibernarlo o arrancar MPlayer, si se nos antoja.

La primera línea de este fichero es una expresión regular que tiene que coincidir con la descripción del evento comunicado por el núcleo. Pese a una estandarización bastante amplia, desgraciadamente, no existe un listado general de todos los even-tos en ACPI. Podemos leer con facilidad que tipo de eventos ACPI tienen lugar en nuestro sistema. Si creamos el fichero /etc/acpi/events/logger con el contenido:

event=.*

action=logger "evento: [%e]"

toda descripción de evento que llegue a /proc/acpi/event en seguida se guardará en los registros del sistema. La descripción del evento que hemos obtenido de esta forma se puede escribir en la primera línea (event=) de nuestro propio fichero. Se puede configurar el demonio Acpid con varios métodos, pero parece que lo más sencillo es seguir la regla: un evento es un fichero en el directorio /etc/acpi/events/.

Velocidad del procesador La reducción de la frecuencia del procesador, cuando el ordenador no realiza ningunas operaciones que exijan mucho poder de cálculo, es uno de los métodos más eficientes de prolongar su trabajo con baterías. Los nuevos núcleos de Linux permiten cambiar con facilidad la frecuencia de timing en todos los procesadores con esta funcionalidad.

Si en nuestro núcleo se ha compilado el soporte para CPUFreq, en el sistema

Figura 5. Cuando gestionamos la energía de manera consecuente, podemos ahorrar incluso hasta unos cientos kilovatio–horas de energía eléctrica por año

Figura 6. GTK-Cpuspeedy: una aplicación muy sencilla que hace posible cambiar con comodidad la rapidez del procesador

Page 72: LiNUX+ DVD 2

70

equipo

Linux+ 2/2004

se encontrará o el fichero /proc/cpufreq, o /sys/devices/system/cpu/cpu0/cpufreq/sca-ling_available_governors. El primero indi-ca la existencia de una interfaz mayor que ya no se desarrolla, con unas posibilidades mucho más reducidas. Debemos disponer de un núcleo de la serie 2.6.x, con una inter-faz nueva accesible por medio de /sys/.

Durante la configuración de los nuevos núcleos de la serie 2.6.x, en la sección Power management options marcamos CPU Fre-quency scaling y todos los reguladores dispo-nibles (ing. Governors), es decir, powersave, userspace y performance. Mejor si marcamos este último como Default CPUFreq governor. No tenemos que indicar las opciones mar-cadas como deprecated, relativas a la interfaz /proc. Nos queda aún seleccionar el driver de nuestro procesador del listado que se encuentra más abajo. En el caso de proce-sadores Intel SpeedStep la selección también puede depender de chipset que tenemos: marcamos respectivamente el driver para ICH-M o 440BX/ZX/MX, pero nunca los dos a la vez. Todos los drivers de esta sec-ción los podemos compilar en el núcleo para siempre. Así no tendremos que cargar los módulos adecuados antes de empezar a cambiar la velocidad del procesador.

En un núcleo correctamente compi-lado e instalado, la ejecución del comando cat /sys/devices/system/cpu/cpu0/

cpufreq/scaling_available governors provoca la visualización del listado de reguladores disponibles (ing. governors) para la velocidad del procesador. En este listado debemos encontrar, por lo menos, los tres siguientes:

• powersave – destinado al uso con ali-mentación de baterías (el procesador simplemente trabaja con la frecuencia más baja posible),

• userspace – si seleccionamos este regulador, podemos indicar nosotros

mismos cualquier frecuencia de fun-cionamiento (obviamente dentro de los límites del procesador),

• performance – destinado al uso con la alimentación de red (el procesador funciona con la frecuencia más alta posible).

Podemos modificar “manualmente” la frecuencia de trabajo del procesador por medio del sistema de pseudo-ficheros /sys/. Para modificar el regulador actual de la frecuencia de su trabajo, tenemos que guardar el nombre de nuevo regulador al fichero /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor, p.e. con el comando echo userspace >/sys/devices/system/cpu/

cpu0/cpufreq/scaling_governor. Si hemos seleccionado userspace, a continuación podremos indicar la frecuencia de trabajo del procesador, p.e para 1 GHz, con el comando echo 1000000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_set-

speed. Hay que recordar que las frecuen-cias se indican en kHz.

En el directorio /sys/devices/system/cpu/cpu0/cpufreq/, junto con los ficheros antes mencionados, vamos a encontrar otros ficheros interesantes:

• cpuinfo_min_freq, cpuinfo_max_freq –podemos leer estos ficheros para verifi-car cuáles son los valores máximos que soporta nuestro procesador,

• scaling_min_freq, scaling_max_freq – en estos ficheros podemos escribir nues-tros propios límites de frecuencia.

CpuspeedyEn vez de ejecutar un comando muy largo cat..., podemos emplear un pro-gramilla sencillo cpuspeedy, disponible en la dirección http://cpuspeedy.sourceforge.net/. Después de descargar el fichero cpu-speedy-0.3.0.tar.gz, lo descomprimimos y pasamos al directorio construido de este modo; en la cuenta de root ejecuta-mos el comando make install. Podemos cambiar la frecuencia con el comando /usr/sbin/cpuspeedy [velocidad], donde la [velocidad] se determina con uno de los valores siguientes: min, low, med, high, max, p.e. /usr/sbin/cpuspeedy min. Si desde la misma página bajamos el fichero gtk-cpu-speedy-0.3.0.tar.gz, lo descomprimimos y realizamos unos comandos tradiciona-les: ./configure, make, make install, en el sistema encontraremos el programilla gtk-cpuspeedy, con el que podremos ejecutar

los mismos comandos de forma rápida, facil y sólo con el uso del ratón.

Demonios de gestiónLas soluciones descritas arriba nos permi-ten reducir "manualmente" la velocidad del procesador, p.e. cuando pasamos al modo de alimentación con baterías. Sin embargo, el objetivo verdadero de los creadores de CPUFreq es la reducción auto-mática, cuando el procesador está menos sobrecargado. Obviamente, en esta tarea es necesario, junto al soporte en el núcleo para CPUFreq, un demonio adicional que controlará la carga del sistema y ajustará adecuadamente la frecuencia de la CPU, sin intervención del usuario.

Hay muchísimos programas de este tipo. Probablemente el más sencillo, pero que funciona de modo más seguro, es Powernowd (http://www.deater.net/john/powernowd.html). A pesar de su nombre, funciona con todos los procesadores soportados por el núcleo del sistema. Una de sus ventajas es su simplicidad: no requiere ficheros de configuración y sólo se ocupa del procesador. Después de descargar y descomprimir el fichero powernowd-0.90.tar.gz, ejecutamos sólo los comandos make y make install. El arranque del programa es aún más sencillo: basta con ejecutar el comando /usr/sbin/powernowd desde la cuenta de root y el programa empezará a funcionar con los ajustes pre-determinados. Esto significa que cuando la carga del procesador sea del 80%, el pro-grama enseguida acelerará su velocidad al máximo, y cuando la carga se reduzca por debajo del 20%, powernowd gradualmente disminuirá la frecuencia de su trabajo. Cuando el ordenador atraviesa el umbral máximo y mínimo de la carga, el programa interviene. Con la opción -u podemos cam-biar el valor máximo de la carga del pro-cesador, y con la opción -l el mínimo. En

Figura 7. La página www.tuxmobile.org es la mejor fuente de información sobre el funcionamiento de Linux en ordenadores portátiles

Figura 8. Página web de Acpid – un demonio sencillo que permite aprovechar plenamente las posibilidades de ACPI

Page 73: LiNUX+ DVD 2

71

equipoacpi

www.lpmagazine.org

cambio, con la opción -m podemos cambiar el modo de funcionamiento del programa del predeterminado -m 1, o sea, "agresivo" en el modo "sinusoidal" (-m 0): la elevación y la reducción de frecuencias siempre procede gradualmente, "pasivo" (-m 2): la reducción rápida de velocidad junto con el crecimiento lento, "de saltos" (-m 3): sólo los saltos desde el mínimo hasta el máximo. El comando de ejemplo, que debe dar fruto en forma de un funcionamiento más "económico" del procesador, puede tener el siguiente aspecto: /usr/sbin/powernowd -m 2 -u 90 -m 10. En el archivo, junto con el código fuente del programa, encontraremos también el script de ejemplo de arranque, que podemos copiar al directorio /etc/init.d/ y con cualquier editor de texto SysV hacer que arranque powernowd cada vez que se ponga en marcha el sistema.

Un demonio más avanzado que con-trola la frecuencia de timing del procesador es Cpufreqd (http://sourceforge.net/projects/cpufreqd). Sabe ajustar la velocidad delprocesador no sólo a su carga actual, sino que también toma en cuenta el modo de alimentación, el nivel de la carga de bate-rías, e incluso las aplicaciones arrancadas actualmente. La instalación de este pro-grama no es difícil: basta con cargar el fichero cpufreqd-1.1.2.tar.gz y ejecutar los comandos tradicionales ./configure; make; make install. En la distribución fuente se encuentra también el fichero de configu-ración de ejemplo para núcleos de la serie 2.6.x, que hay que copiar a /etc/cpufreqd.conf. En este fichero en las secciones Profile des-cribimos varios modos de trabajo de nuestro ordenador, es decir: la frecuencia mínima y máxima del trabajo del procesador y el regulador (ing. governor) del funcionamiento del procesador. En las secciones Rule descri-bimos cuando cambian los modos de fun-cionamiento. Tanto en la sección Profile, como en Rule podemos definir un valor grande. Probablemente, los ajustes predefi-nidos funcionen bien en varias máquinas, pero la descripción detallada de todas las posibilidades del fichero de configuración la podemos encontrar en man cpufreqd.conf.

Laptop modeEste nombre supone un código nuevo introducido en el núcleo oficial de Linux a partir de la versión 2.4.23 y 2.6.6. Su objetivo es ahorrar baterías en los ordenadores por-tátiles con otra organización de memoria y de lectura del disco. Simplificando el asunto, después de marcar laptop mode,

el ordenador durante las operaciones de lectura y de grabación de datos en el disco duro, a la vez guarda en él todos los datos buffereados que normalmente requieren una operación aparte, relacionada con volver a “activar” el disco.

La ventaja de esta solución: la reducción significativa del número de operaciones que requieren "activación" del disco. En la práctica, se alarga el tiempo de funciona-miento de baterías por lo mínimo en un 2%.Además, nuestros datos se guardan físi-camente en el disco con retraso (incluso hasta 10 minutos, con una configuración estándar). Naturalmente, existe peligro de pérdida de estos datos, que p.e. a pesar de ejecutar la operación "guardar" en el editor de texto, en realidad físicamente no se guar-dan, sino que esperan hasta que los datos se lean o hasta que pasen 10 minutos.

El empleo de laptop mode es muy sencillo. Si nuestro núcleo incluye el soporte de este modo, en el sistema encontraremos el fi-chero /proc/sys/vm/laptop_mode. De lo contra-rio, tenemos que hacernos con un núcleo en las versiones 2.4.23 o 2.6.6 como mínimo.

Para emplear este modo, lo mejor es usar un script especial, que en los núcleos 2.6.x se encuentra en el fichero /usr/src/linux/Documentation/laptop-mode.txt. Tenemos quecopiar la parte final de este fichero que contiene el script Bash, y guardarlo con el nombre /usr/sbin/laptopm-mode.sh. No olvi-demos los derechos de ejecución del fichero (chmod a+x /usr/sbin/laptop-mode.sh).

Cuando ya dispongamos de un script listo /usr/sbin/laptopm-mode.sh, basta con dos comandos:

/usr/sbin/laptopm-mode.sh start

hdparm -S 4 /dev/hda

Por medio del último comando, el disco terminará de girar si no lo usamos durante 20 segundos. Gracias a laptop mode el disco vuelve a arrancar: o en el momento que deseemos leer los datos escritos en él, o cuando algunos datos esperan más de 10 minutos para estar guardados. Si 10 minutos es demasiado o poco, podemos cambiar este valor: en el fichero /usr/sbin/laptopm-mode.sh encontramos la línea MAX_AGE=600 e indicamos otro pará-metro en segundos.

Obviamente, una solución lógica es desconectar automáticamente laptop mode, cuando nuestro ordenador empieza a alimentarse con baterías. Podemos conseguirlo fácilmente configurando de

modo adecuado el demonio Acpid. Los scripts de ejemplo /etc/acpi/events/ac_adapter y /etc/acpi/actions/battery.sh se hallan también en el fichero /usr/src/linux/Documentation/laptop-mode.txt.

Además, en la página web de laptop mode para los núcleos 2.6.x (http://www.xs4all.nl/~bsamwel/laptop_mode/ ) se hallan los parches que mejoran el funciona-miento de esta solución, que todavía no se han incluido oficialmente en el núcleo. Una modificación importante que hay que hacer si nos servimos del sistema de ficheros XFS, es la modificación en el fichero /usr/sbin/laptopm-mode.sh del parámetro XFS_HZ del parámetro predefinido 1000 a 100.

FinProbablemente dentro de unos meses todas las funcionalidades descritas en este artí-culo se introduzcan en las distribuciones más populares. Entonces, seguramente será más fácil configurar el ordenador con Linux. No obstante, ya en la actualidad, después de configurar correctamente el ordenador, si usamos Linux podemos tra-bajar con baterías más tiempo que con MS Windows.

En Internet: • Página principal ACPI en Linux: http://acpi.sourceforge.net/• Battery Powered Linux Mini-HOWTO: http://www.faqs.org/docs/Linux-mini/

Battery-Powered.html• Software Suspend (2) para Linux: http://swsusp.sourceforge.net/• Información sobre el funcionamiento

de Linux en ordenadores portátiles de todas las empresas:

http://www.tuxmobile.org/• Página principal de Acpid, un demonio

sencillo que permite aprovechar todas las funcionalidades de ACPI:

http://acpid.sf.net/• Acpid mini-howto: http://www.capaman.8m.com/

acpid.html• Información adicional sobre laptop_

mode en el núcleo de Linux: http://www.xs4all.nl/~bsamwel/laptop_mode/

• Página principal del programa power-nowd:

http://www.deater.net/john/powernowd.html

• Métodos alternativos de ahorro de energía en los ordenadores portátiles: http://www.xs4all.nl/~bsamwel/smart_spindown/index.html

http://noflushd.sourceforge.net/

Page 74: LiNUX+ DVD 2

para programadores

72 Linux+ 2/2004

El visualizador de consola de archivos gráficos Marek Sawerwain

En Linux, cuando queremos trabajar en el modo gráfico, por lo general aplicamos el sistema X Window. Además, el

núcleo de Linux nos permite de una forma fácil iniciar la consola estándar de texto en cualquier modo gráfico escogido por nosotros. Muy frecuentemente se le llama a esto framebuffer, debido a que tenemos acceso directo a la memoria de la tarjeta gráfica. Hablando directamente, hacemos uso del modo gráfico, pero sin hacer uso del sistema X Window. Actualmente la más popular aplicación de dicha consola es mostrar el logotipo gráfico durante el inicio del sistema, pero algunos de los Lec-tores seguramente aplicaron el navegador Links precisamente en el modo gráfico; (es suficiente agregar el parámetro -g – links -g al comando de inicio). Los pro-gramas que hacen uso del modo gráfico son naturalmente muchos más. Existen también librerías preparadas widget, como por ejemplo QT o GTK+, que pueden hacer uso del framebuffer. En este artículo qui-siera enseñar cómo escribir un programa fácil pero útil, que trabaje a nivel de la consola gráfica. Será un visualizador de imágenes de muchos formatos, como png, jpeg, tiff, etc. Contrario a las apariencias, la programación al nivel del framebuffer no es difícil. La librería de las funciones fun-damentales no es grande: son solamente 5 kB del código fuente.

PrincipioPara el uso fundamental del framebuffer son suficientes ocho funciones. Su lista se encuentra en la Tabla 1. En nuestro pro-grama suponemos que siempre vamos

a hacer uso del modo de 32 bits de colo-res (esto es muy importante porque no funciona en otro modo). El uso de estas funciones es muy fácil.

El acceso a la memoria intermedia es una tarea de la función open_fb, así que una de las primeras actividades que se deben hacer es la llamada de esta función.

int h;

h=open_fb();

En la variable h se encuentra el filehandle que representa al framebuffer. Gracias al valor que lleva, podemos fácilmente comprobar si hemos logrado tener acceso a la tarjeta gráfica. En caso de que no pudié-ramos abrir el framebuffer, hay que aplicar el comando if:

if(!h) {

printf("Error al abrir elS

framebuffer !!!\n");

En el DVDEn el DVD se encuentran los archivos fuente y binarios de

las librerías, el código completo de los programas que hemos

mencionado, además del listado del artículo.

DVDLinux+ Live DVD hay que

arrancarlo con el soporte del framebuffer (fb 1024).

Escribimos: cd /home/aurox/Pic_View ; ./picview nombre

del archivo.png.

Listado 1. Fragmento del programa “Hello World!”

for(i=0;i<9999999;i++){

x=rand() % vinfo.xres;

y=rand() % vinfo.yres;

r=rand() % 255;

g=rand() % 255;

b=rand() % 255;

setpixel32(x,y, r,b,g, 0);

if( (i % 1000000)==0)

draw_msg(vinfo.xres + 50,S

(vinfo.yres / 2)-25 );

}

Page 75: LiNUX+ DVD 2

73

para programadores

www.lpmagazine.org

visualizador de archivos gráficos

return -1;

}

Si no tuvimos problemas, entonces pode-mos hacer uso de la función setpixel32. La colocación de un pixel blanco en las coor-denadas 100, 100 se hace de la siguiente forma:

setpixel32(100, 100, 255, 255, 255, 0);

Después de terminar el trabajo con el modo gráfico, lo podemos cerrar. Esto lo hacemos con la función close_fb, dando como argumento la variable del filehandle.

En nuestra aplicación no necesitamos más funciones; es suficiente agregar puntos, pero tenemos todavía la función clear32, que borra el contenido de la pan-talla, y la función whiteblock, que sabe cómo dibujar un cuadrado blanco de una longitud dada de lado.

Armados de tal conocimiento podemos escribir un pequeño programa que visualiza ”Hello World!” para el modo de frame-buffer. El código fuente completo contiene el archivo hw.c. El programa funciona de

la siguiente forma: visualiza en la pantalla los puntos de diferentes colores y, además, de vez en cuando visualiza en la pantalla el comunicado textual, pero construido de cuadrados blancos (y por eso en nuestra “micro” librería se encuentra la función whiteblock).

El Listado 1 presenta el más impor-tante bucle de nuestro primer programa. Este bucle dibuja 10 millones de píxeles, pero después de cada millón de puntos dibuja también el escrito “Hello World!” (esta tarea la realiza la función draw_msg)

¿Cómo funciona draw_msg?El siguiente fragmento importante para nuestro primer programa es la función draw_msg. Su código completo lo contiene el Listado 2. Como se puede notar, la función es bastante corta y no contiene ninguna serie de caracteres que podrían constituir el contenido de nuestro comu-nicado. Usamos el array msg: precisamente en él fue codificado el texto a visualizar. Un fragmento de este array es el siguiente:

char msg[]={1001...

1001...

1111...

1001...

1001...

};

El uno significa que será visualizado el cuadrado blanco, y cero – lo contrario, es decir, no se visualizará nada. Hay

Listado 2. Función que dibuja el comunicado

void draw_msg(int xx, int yy){

int x,y,i=0;

line,size_line=sizeof(msg)/5;

x=xx;

y=yy;

for(i=1;i<=sizeof(msg);i++){

if(msg[i-1]==1)

whiteblock(x,y,block_size);

x=x+block_size;

if((i % size_line)==0)

{ x=xx; y=y+block_size; }

}

}

Instalación de la librería DevILLa instalación de esta librería en el sis-tema es una tarea sencilla por la presen-cia del script configure. Damos sólo tres comandos:

./configure –prefix=/directorio/para/

la_instalación

make

make install

Si fue aplicada la última versión 1.6.7, durante la compilación de nuestro programa picview, y exactamente en el momento de la conexión, podemos recibir un error por la falta de la función _vsnprintf. La solución de este problema exige una pequeña modificación del código de la librería DevIL, y más exacta-mente del archivo in_tiff.c en el directorio src-IL/src del archivo descomprimido. Buscamos en él la función _vsnprintf y cambiamos su nombre a uno sin el subrayado, es decir, vsnprintf. Después de una nueva compilación de toda la librería es suficiente volver a instalar la librería y el problema se resuelve. Las versiones DevIL anteriores a la versión 1.6.6 no poseen este error, pero no pueden utilizar el formato GIF. Por eso, si queremos que nuestro visualizador lea este tipo de archivos, debemos hacer uso de la versión 1.6.7 DevIL.

Tabla 1. Lista de las funciones mencionadas en el artículo

El soporte del framebuffer (fb_lib.c)Nombre de la función Corta descripciónopen_fb Abre el framebuffer

get_basic_info Toma la información básica

map_fb Crea la proyección de la memoria gráfica

unmap_fb Elimina la proyección de la memoria gráfica

setpixel32 Coloca los píxeles en determinadas coordenadas

whiteblock Dibuja un cuadrado blanco en las coordenadas dadas

clear32 Limpia la pantalla

close_fb Cierra el framebuffer

get_buffer_ptr Lee el actual índice al área de la memoria gráfica

El soporte de archivos gráficosilInit Inicia las funciones básicas de la librería DevIL

iluInit Inicia las funciones adicionales de la librería DevIL

ilEnable Añade las funciones adicionales

ilOriginFunc Establece el comienzo de la imagen

iluImageParameter Establece los parámetros adicionales, por ejemplo, el filtro usado durante la escala

ilGenImages Genera identificadores

ilBindImage Establece el identificador actual

ilDeleteImages Elimina el identificador

ilGetInteger Toma los parámetros de la imagen

ilConvertPal Se ocupa de la conversión de la paleta

iluScal Escala la imagen

ilGetData Toma el índice para los datos de la imagen

ilGetPalette Toma el índice para la paleta de colores

Page 76: LiNUX+ DVD 2

74

para programadores

Linux+ 2/2004

que recordar el siguiente hecho: todo el comunicado, aunque fue adecuadamente formateado en el código fuente, sigue siendo un array de una dimensión. Des-pués de la visualización de la primera línea del comunicado, debemos pasar a la siguiente línea. En el bucle leemos los siguientes signos del array msg, así que, para saber si ya hemos pasado la línea, debemos conocer el número de

signos en una línea. En el array msg no sé cuantos caracteres escribí, pero cada uno que mire el código fuente fácilmente puede verificar que tenemos escritas cinco líneas; además el cálculo de cuántos signos hay en una línea es muy fácil: size_line=sizeof(msg)/5. Cuando ya tenemos esta información, el dibujo del contenido del array msg ya es muy fácil.

Leyendo el contenido msg revisamos si actualmente el elemento i del array es uno; si es así, visualizamos el cuadrado blanco. En cada iteración del bucle aumentamos el valor de la coordenada x al tamaño del bloque: x=x+block_size;. Por supuesto, en caso de que obtengamos el fin de la línea del comunicado, efectuamos dos accio-nes: regresamos al inicio del lugar donde comenzamos a dibujar nuestro comuni-cado (x=xx;), y pasamos a la siguiente línea (y=y+block_size;).

La programación del framebufferAntes de que comencemos a escribir nues-tro visualizador, quisiera todavía acercar la forma en que se implementan las funciones relacionadas con el manejo del

modo gráfico. En Linux, y en general en los sistemas UNIX, el hardware es represen-tado como archivos. De la misma manera es en el caso del framebuffer. Antes de que comencemos a usarlo, debemos abrir un archivo que lo represente.

fb_handle=open("/dev/fb0", O_RDWR);

Después podemos adquirir las informa-ciones básicas (por ejemplo, la resolución de pantalla, la forma de codificación de los colores, etc.). Este tipo de datos contienen las estructuras de tipo: fb_var_screeninfo y fb_fix_screeninfo.

Para completar la primera estructura con la información necesaria, aplicamos la función ioctl de la siguiente forma:

ioctl(fb_handle, FBIOGET_VSCREENINFO,S

&vinfo)

Será bastante difícil actuar en el frame-buffer desde el nivel del archivo. Por eso, para operar normalmente con la memoria gráfica, la debemos proyectar con la ayuda de un índice corriente. En nuestro caso será de tipo char. Esto nos ayudará en la implementación de la función setpixel32.

¿Cómo iniciar el soporte de framebuffer en el núcleo del sistema?Cuando el núcleo tiene soporte del modo VESA, es suficiente, durante el inicio del sistema, dar el número del modo gráfico que queremos iniciar. Desde el nivel de LILO escribimos por ejemplo linux vga=789. El sistema se inicia en el modo 800x600-32bits. La Tabla 2 presenta la lista de los modos más importantes y su significado.

Si ocurriera que el kernel que usamos no da soporte del estándar VESA, podemos todavía intentar montar el módulo del driver para la tarjeta gráfica. Sin embargo, hay que recordar que se soportan sólo unos cuantos tipos de tarjetas gráficas. Para las populares tarjetas NVIDIA es suficiente dar el comando modprobe rivafb y si tenemos un modelo anti-guo de este fabricante, deberíamos ya poder usar el modo del framebuffer. Los felices poseedores de las más nuevas tarjetas, por ejemplo GeForceFX 5900, no podrán utilizarlo, porque el módulo rivafb no reconoce este tipo de tarje-tas. Por eso, es mejor utilizar el modo VESA.

En caso de que haga falta el soporte de los modos de VESA, nos espera la compilación del núcleo. En primer lugar se debe señalar la opción Prompt for development and/or incom-plete code/drivers en la sección Code maturity level options. Después, según el tipo del núcleo, hay que pasar al Console Drivers/Frame-buffer-options para el núcleo de la versión 2.4.x o Device drivers/Graphics support en el caso de los nuevos núcleos 2.6.x. Ahí se debe marcar la utilización del framebuffer en el modo VESA, pero no el modo del módulo, ya que no podre-mos dar el número del modo durante el inicio del sistema. En el artículo se encuentran dos figuras que muestran que opciones hay que señalar en el caso de estas dos series del núcleo de Linux.

Figura 1. Configuración del soporte del framebuffer VESA para el núcleo 2.4.x

Tabla 2. Lista de los principales modos VESA

Bit por color 640x480 800x600 1024x768 1280x10248 769 771 773 775

15 784 787 790 793

16 785 788 791 794

24/32 786 789 792 795

Page 77: LiNUX+ DVD 2

75

para programadores

www.lpmagazine.org

visualizador de archivos gráficos

La proyección del archivo en la memoria la realizamos con la ayuda de la función mmap:

char *fb_map=(char*)mmapS

(0, sc, PROT_READ | PROT_WRITE,S

MAP_SHARED, fb_handle, 0);

En la llamada de la mmap se encuentra una serie de parámetros. En el primero se puede dar la dirección inicial, de la cual se proyectará la memoria. En el ejemplo dimos cero, de manera que el sistema sólo genera la dirección adecuada. Después hay que dar la dimensión del área: es esta la variable sc. Más adelante definimos el modo de acceso: nos interesa la lectura y el guardar.

El siguiente parámetro es el modo de la división de la memoria. El valor MAP_SHARED significa que la memoria será dividida con otros procesos. El siguiente parámetro es el filehandle, lo que signi-fica que con la ayuda de mmap podemos también proyectar en la memoria otros archivos comunes. El último parámetro es el llamado desplazamiento: cero significa que no vamos a rechazar ninguno de los datos del principio del archivo proyec-tado.

Como se puede notar, las acciones preparativas para hacer uso del frame-buffer no son tan complicadas, pero hay que tomar en cuenta el orden de la proyección de los colores en el fra-mebuffer. No siempre los colores están colocados en RGB o, como en el caso de nuestro modo de 32 bits, en los cuatroRGBA (A significa el canal alfa, llamado el canal de la transparencia). Muy frecuente es el modo BGRA.

El consejo para las diferentes ubi-caciones de los colores es muy fácil. La mencionada anteriormente estructura vinfo contiene el número del bit, sobre el cual se inicia el adecuado componente

del color. Nosotros necesitamos bytes. Es suficiente dividir los valores de desplaza-miento por ocho. Podemos hacerlo de esta forma, ya que actuamos con el modo de 32 bits, donde a cada color le corresponden ocho bits:

red_idx32 = vinfo.red.offset / 8;

green_idx32 = vinfo.green.offset / 8;

blue_idx32 = vinfo.blue.offset / 8;

transp_idx32 = vinfo.transp.offset / 8;

Colocamos los píxelesDurante la visualización de la imagen en la pantalla usaremos solamente una función de ayuda, es decir, setpixel32. El código de esta función lo presenta el Listado 3. El más complicado elemento que encontrare-mos allí es el señalamiento del lugar en la memoria, tomando en cuenta las coordena-das destinatarias x e y. La coordenada y es el número de la línea, en la que queremos ubicar el punto. El señalamiento a qué línea nos referimos lo realiza este fragmento del código: (y+vinfo.yoffset) * finfo.line_length. En la primera parte señalamos el

Listado 3. Función setpixel32

void setpixel32(int x, int y, int r,

int g, int b, int a){

int pos;

pos = (x+vinfo.xoffset) * (vinfo.bits_per_pixel/8) + S

(y+vinfo.yoffset) * finfo.line_length;

*(fb_map + pos + red_idx32 ) = r;

*(fb_map + pos + green_idx32 ) = g;

*(fb_map + pos + blue_idx32 ) = b;

*(fb_map + pos + transp_idx32 ) = a;

}

Figura 2. Diagrama de la acción del visualizador de archivos gráficos.

Page 78: LiNUX+ DVD 2

76

para programadores

Linux+ 2/2004

adecuado desplazamiento en la memoria y+vinfo.yoffset, y después multiplicamos este valor por la longitud total de la línea en bytes finfo.line_length. De esta forma sabemos en que lugar comienza la línea, en la cual queremos ubicar nuestro punto. Es suficiente agregar a este valor la expresión (x+vinfo.xoffset) * (vinfo.bits_per_

pixel/8) para buscar correctamente la dirección adecuada en la memoria del fra-mebuffer. Como se puede ver, en esta parte de los cálculos nuevamente designamos el valor del dezplazamiento x+vinfo.xoffset, pero lo multiplicamos por el número de bytes vinfo.bits_per_pixel/8 (dividimos el número entero de bits en un pixel por ocho) que le corresponden a cada pixel.

Nos queda solamente hacer uso del valor designado anteriormente de los números de los componentes de los colo-res, para poner el punto correctamente en el color necesario. Por ejemplo, para el componente verde del color se representa esto de la siguiente forma:

*(fb_map + pos + green_idx32) = g;

La tarea principal – el visualizador de archivos gráficosNuestro programa tiene que soportar muchos formatos gráficos diferentes, y como ya he mencionado, el código fuente es pequeño. Esto resulta del hecho de que hacemos uso de otra librería para dar soporte a los archivos gráficos que se

llama DevIL. Antes de que comencemos a crear el código, vale la pena pensar qué acciones realizará nuestro programa. El diagrama general del funcionamiento del visualizador lo representa la Figura 1. Al principio verificamos si ha sido dado el argumento (nombre del archivo) que será visualizado.

picview imagen.jpg

Después obtenemos acceso al framebuf-fer y leemos el archivo i: es un momento muy importante; procuramos realizar tales conversiones con ayuda de API de la librería DevIL para que el formato de la imagen sea idéntico al formato del color de 32 bits, lo que nos facilita el proceso de visualizar la imagen. Además, si la imagen que hemos leído es mayor que la resolución disponible, realizamos su transformación. Cuando la imagen se encuentra en la pantalla, esperamos a pulsar la tecla [Enter] (es suficiente apli-car la función getchar).

El test, si fue dado un argumento extra en el momento de iniciar nuestro pro-grama, revisa solamente si el parámetro argc de la función main es menor o mayor que dos. Después de este test, realizamos el inicio de la librería DevIL

ilInit();

iluInit();

La primera línea responde por el conjunto fundamental de los comandos, la segunda da marcha a un conjunto de funciones, en el que se encuentra una función muy cómoda para transformar la imagen. No nos preocuparemos por la terminación, puesto que las dos funciones se conectan a la cadena de las funciones de salida con ayuda de atexit.

El siguiente elemento es establecer el principio de la imagen de tal forma que se encuentre en el extremo superior izquierdo. Debemos actuar de esta forma, porque algunos formatos, por ejemplo, bmp y tga registran la imagen patas arriba. Por esa razón, con ayuda de las funciones ilEnable y ilOriginFunc le ordenamos a la librería DevIL que la imagen tenga su principio en el extremo izquierdo (lo que concuerda con las tareas de la función setpixel32; cuando damos las coordenadas 0, 0, ponemos un punto en el extremo izquierdo). Una ope-ración muy importante es establecer el tipo de filtro de la imagen durante el cambio de sus dimensiones. El filtro que deja una imagen de alta calidad es LANCZOS. Por esa razón, en nuestra aplicación aplicamos este tipo de filtro. Recordemos que, aunque da una imagen muy buena y clara, funciona bastante lento, así que durante la trasforma-ción de imágenes mayores este proceso puede durar unos cuantos segundos. Como resultado tenemos:

ilEnable(IL_ORIGIN_SET);

ilOriginFunc(IL_ORIGIN_UPPER_LEFT);

iluImageParameter(ILU_FILTER, S

ILU_SCALE_LANCZOS3);

Listado 4. La conversión del formato de la paleta de colores

if(ilGetInteger(IL_PALETTE_TYPE)==IL_PAL_BGR24){ ilConvertPal(IL_PAL_RGB24);}if(ilGetInteger(IL_PALETTE_TYPE)==IL_PAL_BGRA32 || ilGetInteger(IL_PALETTE_TYPE)==IL_PAL_RGB32 || ilGetInteger(IL_PALETTE_TYPE)==IL_PAL_BGR32 || ilGetInteger(IL_PALETTE_TYPE)==IL_PAL_BGRA32){ ilConvertPal(IL_PAL_RGBA32);}

Figura 3. Configuración del soporte del framebuffer VESA para el núcleo 2.6.x

Page 79: LiNUX+ DVD 2

77

para programadores

www.lpmagazine.org

visualizador de archivos gráficos

Después de establecer estos paráme-tros, podemos generar el identificador de la imagen. Todo el que haya escrito, aunque sea el mas pequeño, programa en OpenGL notará que esta parte de la interfaz de DevIL se parece mucho a API OpenGL. En primer lugar generamos el identificador: ilGenImages(1, &ImgId). Por supuesto, cuando queremos generar una mayor cantidad de identificadores es suficiente que el segundo argumento sea un array tipo ILuint. Cuando el iden-tificador ha sido generado, lo debemos actualizar. Esto se hace de la siguiente forma: ilBindImage(ImgId). Si en el programa procesamos más imágenes diferentes, se debe recordar escoger la imagen adecuada con la ayuda de ilBind-Image.

Después de haber realizado estas actividades introductorias en nuestra aplicación con la ayuda de open_fb, obte-nemos accesso al framebuffer y leemos la información básica.

El ser de nuestro visualizador es la función DevILLoad: es precisamente ella la que realiza las tareas más importantes, es decir, lee la imagen, la somete a una

conversión indispensable y la visualiza en la pantalla.

La carga de la imagen, la conversión de la imagen y de la paletaLa primer actividad de la función DevIL-Load es leer el archivo. No debemos incluso decir de qué tipo es este archivo, debido a que la librería sola lo reconoce. La lectura del archivo la realizamos con la ayuda de la función ilLoadImage, por ejemplo de la siguiente forma:

if (!ilLoadImage(fname)){

printf(“No se puede abrir el S

archivo”);

return -1;

}

Si no ha habido problemas realizamos la conversión de los colores guardados en la paleta (con tal de que dado archivo posea paleta). El Listado 4 contiene el código que realiza estas funciones. En el primer comando, si el tipo de paleta es BGR24 (sin el canal alfa), convertimos los colores al formato RGB24. En el segundo

caso, si tenemos que ver con los colores ubicados en tres BGR, pero guardados en todos los 32 bits, ordenamos su ubicación en el formato RGBA32. La unificación de la descripción facilita la implementación del bucle que transporta los datos de la imagen al framebuffer.

Después de haber realizado la conver-sión, verificamos si la imagen leída no es, por casualidad, mayor que la resolución disponible para el framebuffer. Hacemos uso de la función ilGetInteger, que, depen-diendo de los parámetros que han sido dados, devuelve diferentes informaciones importantes sobre la imagen. Si ponemos en el argumento el valor IL_IMAGE_WIDTH, obtenemos el ancho de la imagen.

Los dos primeros argumentos de la función que escala, iluScale, seguramente a nadie le extrañan (son las dimensiones del framebuffer), pero en el tercero se ha puesto la variable depth, lo que, sin duda, es sorprendente. No es el número de bits destinados a la descripción del color, sino la dimensión de la imagen, por lo general igual a uno. DevIL puede soportar las imá-genes 3D, llamadas volume images: entonces este valor de la imagen puede cambiar. Como resultado tenemos:

if(ilGetInteger(IL_IMAGE_WIDTH) > S

vinfo.xres && ilGetInteger S

(IL_IMAGE_HEIGHT) > vinfo.yres))

iluScale(vinfo.xres, vinfo.yres, depth);

Después de realizar la escala necesaria, hay que actualizar los datos básicos sobre la imagen, como las dimensiones, el número de bytes en un pixel y el número total de bytes en una línea de la imagen:

w=ilGetInteger(IL_IMAGE_WIDTH);

h=ilGetInteger(IL_IMAGE_HEIGHT);

bytes_per_pixel=ilGetInteger S

(IL_IMAGE_BYTES_PER_PIXEL);

bytes_per_line=w * bytes_per_pixel;

Si nuestro programa lee la imagen menor que la resolución disponible, pone la imagen en el centro de la pantalla. Para transportar la imagen al centro, a las variables fromx y fromy se les debe poner los valores adecuados. Para el valor x (y analógamente para y) se debe dividir entre dos el ancho del framebuffer (valor vinfo.xres) y restar la mitad del ancho de la imagen. De esta forma obtenemos el valor, con el que se debe horizontalmente desplazar la imagen para que la visualice

Figura 4. Logo DevIL (u OpenIL) visualizado en el modo de consola

Listado 5. Traslado de los datos de la imagen al framebuffer

data=ilGetData();if(ilGetInteger(IL_PALETTE_TYPE)==IL_PAL_NONE){ for(y=0;y<h;y++){ for(x=0;x<w;x++){ pos=(y * bytes_per_line) + ( x * bytes_per_pixel ); r=*(data + pos + off_r); g=*(data + pos + off_g); b=*(data + pos + off_b); setpixel32(fromx + x, fromy +y, r, g, b, 0); } }}

Page 80: LiNUX+ DVD 2

78

para programadores

Linux+ 2/2004

en el centro. El código que determina este valor es el siguiente:

fromx=0; fromy=0;

if(w < vinfo.xres && h < vinfo.yres) {

fromx=(int) ( ((float)vinfo.xresS

/ 2.0) - S

((float)w / 2.0) );

fromy=(int) ( ((float)vinfo.yresS

/ 2.0) - S

((float)h / 2.0) );

}

Nos queda todavía un elemento importante, esto es, la descripción de los colores en la misma imagen. La librería DevIL supone que los colores pueden ser descritos con la ayuda de dos sistemas: RGB o BGR, igual que con la paleta. Por esta razón, con la ayuda de ilGetInteger con el parámetro IL_IMAGE_FORMAT comprobamos con qué tipo de ubicación de los colores tenemos que ver, y adecuadamente determinamos los índices; por ejemplo, para los colores BGR es así:

if(ilGetInteger(IL_IMAGE_FORMAT)==S

IL_BGR || ilGetInteger S

(IL_IMAGE_FORMAT)==IL_BGRA) {

off_r=2; off_g=1; off_b=0;

}

En el caso de la ubicación RGB, los índices de los colores en un pixel individual reci-ben respectivamente los valores: 0, 1, 2.

Visualización de la imagenNos queda por hacer la última pero muy importante función, que es el traslado de los datos de la imagen al framebuffer. El bucle que traslada los datos de la imagen al frame-

buffer en caso de que no tenemos paleta lo presenta el Listado 5. Antes de que comen-cemos a trasladar cualquier cosa, debemos leer el índice de los datos de la imagen. Lo devuelve la función llamada ilGetData:

data=ilGetData();

Hagámonos ahora una pregunta: ¿qué significa que no tenemos una paleta de colores? Esto significa que cada color está escrito con la ayuda de RGB (o con los cuatro con el canal alfa) en la imagen (el caso con la paleta lo presentaré en el siguiente punto). Nuestro conocimiento adquirido durante la implementación de la función setpixel32 puede ser de nuevo utilizado, por lo que sabemos en que forma se debe calcular la posición en la imagen teniendo como fundamento dos coorde-nadas. En este caso concreto la posición la determinamos de la siguiente forma:

pos=(y * bytes_per_line) + ( x * S

bytes_per_pixel );

El único problema es la lectura de los colores. Al final del punto anterior hemos determinado los índices de los colores, así que aprovecharemos estos valores agregándolos a la determinada posición en la imagen:

r=*(data + pos + off_r);

g=*(data + pos + off_g);

b=*(data + pos + off_b);

Como puede verse, el proceso de la lectura es casi idéntico a la colocación de puntos.

Visualización de la imagen con paletaEn nuestra aplicación se soportan dos casos de paletas: RGB24 y RGBA32. Nos encargaremos sólo de un caso (RGBA32), porque se difencian entre sí sólo por un detalle. El índice de los datos ya lo hemos leído, pero todavía es necesario el índice para la paleta:

pal=ilGetPalette();

La posición en la imagen la indicamos igual que antes, pero esta vez a la variable pos le damos el valor, que está contenido en la siguiente dirección:

pos=*(data + ((y * bytes_per_line) + S

( x * bytes_per_pixel )));

y es la principal diferencia entre la imagen con paleta y sin paleta. En el primer caso, cada pixel tiene su propia descripción de los colores. En el caso de la paleta, el pixel en la imagen es sólo el número del color en la paleta. Para leer cuáles son los valores de RGB, debemos hacer uso de la paleta. Realizamos esta operación de la siguiente forma: el valor pos (hablando de otra forma, el número del color) lo multiplicamos por cuatro, ya que tantos bytes describe el pixel – RGBA32. Después de esta operación, aprovechando la aritmética de los índices, nos trasladamos al lugar adecuado de la paleta. Al final de esta operación agrega-mos adecuadamente 0, 1 y 2 para leer el valor para el color rojo, verde y azul. En el código esta operación se presenta de la siguiente forma:

r=*(pal + (pos * 4) + 0 );

g=*(pal + (pos * 4) + 1 );

b=*(pal + (pos * 4) + 2 );

Ya sólo nos queda poner el punto en el framebuffer con la ayuda de la función setpixel32. Y ¿cuál es la diferencia en el caso de la paleta RGB24? Tenemos aquí tres bytes en vez de cuatro, por tanto, la posición no la multiplicamos por cuatro, sino por tres. El resto del código se queda, por supuesto, sin cambios.

ResumenVemos que escribir un visualizador sencillo de archivos gráficos resultó ser bastante fácil. El único problema que debía ser resuelto son los colores.Por supuesto, si aplicamos otro modelode colores, por ejemplo el modo de 16 bits, las operaciones en los bits serán más complicadas. El programa lo podemosenriquecer con más opciones, por ejemplo, guardar la imagen en otro formato. Es una tarea fácil, puesto que las posibilidades potenciales nos las da la librería DevIL. Animo a modificar nuestro visualizador y agregar nuevos elementos.

En Internet:• Página principal de la librería DevIL: http://openil.sourceforge.net/• Información sobre el tema del

comando mmap: http://www.opengroup.org/

onlinepubs/009695399/functions/mmap.html

Listado 6. Traslado de los datos de la imagen al framebuffer – versión de la imagen con la paleta de colores

if(ilGetInteger(IL_PALETTE_TYPE)== IL_PAL_RGBA32){ pal=ilGetPalette(); for(y=0;y<h;y++){ for(x=0;x<w;x++){ pos=*(data + ((y * S bytes_per_line) +S ( x * bytes_per_pixel ))); r=*(pal + (pos * 4) + 0 ); g=*(pal + (pos * 4) + 1 ); b=*(pal + (pos * 4) + 2 ); setpixel32(fromx + x,S fromy + y, r, g, b, 0); } }}

Page 81: LiNUX+ DVD 2
Page 82: LiNUX+ DVD 2

aktualności [email protected] lectura

80 Linux+ 2/2004

sección llevada por Piotr Truszkowski

Autor: Eric Steven RaymondEditorial: Prentice HallISBN: 0-13-142901-9Páginas: 888Fecha de edición: 09/2003Precio: 40,90 euros

Cuando hace algunos meses apareció la primera información sobre la próxima edición de este libro, había voces que decían que quizá el autor escogió su título sin modestia. Sin embargo, cuando tomamos el libro en la mano, no pode-mos evitar la impresión de que fue escrita precisamente con este fin y de tal modo que se le pueda poner sin menor duda el título The Art of Unix Programming. Es una edición pensada desde el principio como un libro de culto: Eric Raymond, siendo una personalidad destacada del movimiento del Software Libre y programador experimentado, aprovecha los conocimientos y la autoridad de los trece iconos de Unix, incluyendo en su texto sus observaciones y comentarios. Entre estos iconos figuran, entre otros, Ken Thompson (creador de Unix) y Doug McIlroy (creador de

la pipe Unix). La cuestión fundamental para el autor es la historia, tradición y cultura que se creó alrededor de Unix durante docenas de años de su existencia, y que convierte este sistema en algo único en el mundo de la informática, el dinámico mundo de la tecnología y del principio de no mirar atrás. El autor dividió el libro en cuatro partes. En la primera, Context, presenta los principios básicos de la programación de los sistemas Unix, es decir, la simplicidad, la modularidad y la claridad que contribuyeron al éxito de esta familia de sistemas operativos. Nos suministra también una breve e ingeniosa historia de Unix, desde sus orígenes a finales de los años 60 y a principios de los años 70, hasta la creación de Linux y explosión del movimiento Open Source en los años 90 del siglo XX. La segunda parte, la más amplia, Design, está dedicada, como se puede adivinar fácilmen-te, al diseño adecuado del proyecto; el autor de manera sistematizada aconseja en las cuestiones fundamentales, tales como el diseño adecuado de la interfaz de usuario y en las cuestiones aparentemente insignificantes: porqué nuestro programa no se debe dirigir hacia la salida estándar otra información que los errores reales del funcionamiento. Todo esto, enriquecido con casos de estudio, es decir, ejemplos concretos de los programas conocidos por todos y de las soluciones aplicadas. La tercera parte, Implementation, está dedicada, entre otros, a la selección del editor, sistema de control de la versión y debugging. Otra cuestión importante tratada allí es la selección del lenguaje de programación apropiado; Raymond formula una tesis bastante controvertida que en la mayoría de los casos C y C++ no son la mejor elección. En cambio, propone varios tipos de lenguajes de scripts y soluciones mixtas. La cuarta parte está dedicada a la Communidad (Community), sin la cual es difícil imaginarse cualquier proyecto Unix, sobre todo en estos tiempos en los que en este entrono triunfa el modelo de Software Libre. Los problemas allí tratados se refieren, entre otros, al traslado de los programas hacia otras arquitecturas, documentación y elección de licencias.Entre los suplementos encontramos Rootless Root: The Unix Koans of Master Foo, collección de narraciones divertidas escritas al estilo de los koan budhistas, cuyo protagonista es Maestro Foo y su discípulo Nubi que dan en su camino, entre otros, con el Usuario Común, Metodología y Script Kiddie. ¿Para quién es este libro? Para todos los que buscan su camino en el mundo del sistema Unix: tanto para los programadores experimentados como para los usuarios principiantes del sistema. No se trata de un libro que debe ser leído de cabo a rabo, no es su objetivo; tampoco quiere decir que no puede ser una lectura apasionante. Los novicios pueden leerlo como libro de cabecera y como remedio de los primeros fallos, mientras que los más avanzados seguramente desearán incluirlo en su biblioteca. Pero absolutamente todos con la satisfacción sentirán la fuerza del fenómeno que es Unix.

The Art of Unix Programming

Red Hat Linux and Fedora UnleashedAutores: Bill Ball, Hoyt Duff Editorial: Sams PublishingISBN: 0-672-32629-9Páginas: 1048Fecha de edición: 01/2004Precio: 94 euros

Cada usuario de Linux debe disponer, al menos, de un buen libro sobre este sistema operativo que incluirá tanto la información básica sobre el manejo de Linux (aproximación a los asuntos típicos para cada sistema Unix) como los temas más avanzados, orientados hacia la distribución concreta de Linux. Un libro así para todos los usuarios de Red Hat, Fedora o Aurox es precisamente “Red Hat Linux and Fedora Unleashed”. ¿Por qué? Porque hay allí todo lo que se te antoje, incluso la programación en Perl o el uso de herramientas que permiten la ejecución de las aplicaciones desde Windows.En la primera parte descubrimos cómo instalar Fedora (Red Hat, Aurox) y cómo configurarla según nuestras nece-sidades. En la segunda parte nos enteramos de cómo administrar el sistema (adición de nuevos usuarios, ejecución

de los servicios suplementarios, etc.). La tercera parte está dedicada a los servidores de servicios (DNS, web, FTP, correo electrónico). A la cuarta parte deben echar un vistazo todos los que están interesados en la programación y la aplicación práctica del sistema en oficina y en los multimedia. Al libro está adjunta Fedora Core 1 en dos versiones: en dos CD y un DVD. Es interesante un suplemento para recortar con los básicos comandos de Linux. Aunque el precio es alto, el libro es digno de recomendación: un libro así constituye una ayuda de mucho valor durante el trabajo con el sistema, no solamente en la versión adjunta, sino también en sus próximas ediciones (no envejece tan de prisa).

Agradecimientos para la empresa A.B.E. Marketing (http://www.abe.pl/html/english/) por habernos facilitado el acceso a los libros.

Reseña: Witold Kieraś ([email protected])

Reseña: Krzysztof Krawczyk ([email protected])

Page 83: LiNUX+ DVD 2
Page 84: LiNUX+ DVD 2