Archive for the ‘Debian’ Category

CUPS: Cuatro comandos REALMENTE útiles

Tuesday, August 14th, 2007

Con tres PCs en casa pero una sola impresora, imprimir puede llegar a ser todo un problema. En especial porque para que se pueda imprimir, y en el momento en el que uno desea hacerlo, la impresora debe estar enchufada a una computadora, y ésta computadora a su vez debe estar prendida (malditos ingenieros, es por eso que yo no me dedico a la electrónica sino a la informática).

Bajo ese panorama, decidí poner la impresora en una PC con Linux, y usar el maravilloso y fantabuloso CUPS, que si bien puede llegar a ser un dolor de huevos hacerlo funcionar, una vez que sale funcionando te olvidás del asunto por siempre.

… o hasta que reinstalás el sistema operativo[*], no reconfigurás CUPS porque hace meses que no tenés hojas para imprimir y tu madre a la medianoche con una resma nueva en mano te dice que para la mañana del día siguiente necesita con urgencia imprimir algo.

Si, esa misma madre que un mes atrás no sabia diferenciar un teclado de un monitor, hoy está usando el AbiWord de taquito.

Si, mi madre usa Debian Etch pero todavia no lo sabe. Algún dia se lo confesaré. Jejejeje.

Es así que entre ayer y hoy tuve que luchar y seguir luchando con CUPS. Por suerte ya todo está funcionando, y me puedo olvidar hasta la proxima formateada.

Aún asi, les comento que econtré cuatro comandos REALMENTE útiles para CUPS. Asumiendo que su impresora la configuraron bajo el nombre Epson640, éstos son:

  1. cancel -a Epson640
    • borra todos los trabajos pendientes en la impresora. No questions asked.
  2. accept Epson640
    • acepta todos los trabajos pendientes en la impresora. No questions asked.
  3. cupsdisable Epson640
    • desactiva la impresora para que nadie pueda imprimir. No questions asked.
  4. cupsenable Epson640
    • reactiva la impresora para que puedan seguir imprimiendo normalmente. No questions asked.

Tengan en cuenta que en cada máquina de la red hay una cola de impresión, y no una sola en el “server” donde está enchufada fisicamente. Es así que, por ejemplo, si la PC que tiene la impresora está apagada, las PCs clientes van a tener su propia cola de trabajos. O sea que capaz tengan que ejecutar algunos de estos comandos en los clientes.

[*] Nunca jamás usen Debian Unstable, a menos que tengan chorreras de tiempo libre para arreglar los problemas de dependencia de los paquetes.

OLPC con Debian en la UNLP

Friday, July 13th, 2007

DSCN6102

DSCN6108b

El martes pasado con motivo de las Ch.P.P.S.O. a cargo de Joaquín Bogado, tuve la oportunidad de poder estar en contacto con una OLPC.

Para los que no saben qué es eso, la OLPC es una computadora portátil de bajo costo desarrollada por el MIT y cuyo propósito es el de que cada niño del mundo (de entre 7 y 10 años) pueda tener acceso a una computadora portátil. De ahí su nombre; OLPC significa “One Laptop Per Child”, lo cual se traduce a “Una Portátil para cada Niño”.

La intención de la gente del MIT era que los gobiernos de varios países la compren en grandes cantidades, cercanas a decenas de millones de unidades. De esta forma, el precio del aparato se mantenía cercano a los 100 dólares estadounidenses. Lamentablemente esto no fué asi y la máquina hoy en día tiene un precio aproximado de 175 dólares.

En especial, se esperaba que China e India se sumen a la iniciativa, pero hasta ahora parecería que no les agrada mucho la idea de la OLPC.

La charla no fue muy profunda, ya que basicamente es una computadora de bajo costo y bajo consumo. Lo más llamativo de la máquina es la pantalla LCD que tiene una altísima resolucion de 1200×900 y una definición (cantidad de pixeles por cm2) mucho mayor que cualquier monitor estándar de PC.

Además, existe la opción de apagarle la luz a la pantalla LCD y reducir fuertemente el consumo de la batería. Bajo este modo, si hay poca luz no se puede ver nada (muy similar a la pantalla de un teléfono celular con el teclado bloqueado) y hace falta una fuerte luz solar para que sea legible (tal como ocurre en el medio del Africa).

Con un procesador de 333Mhz consumiendo solamente 0.8 Watts y todos los componentes completamente integrados, el consumo de energía es mínimo. La duración de la batería varía según el uso, pero la idea es que funcione durante varias horas sin necesidad de recarga. Según Joaquín, se espera que dure al menos 6 horas.

También dispone de los periféricos básicos de cualquier computadora: teclado, ratón, parlantes, micrófono, webcam y conectores USB 2.0 para poder enchufarle cualquier gadget, como por ejemplo pendrives.

El software instalado es una versión modificada de GNU/Linux Fedora 6, con sus propios drivers controladores de video y su propio entorno gráfico llamado Sugar. No, no usa KDE, ni GNOME, ni Xfce, ni WMaker, ni cualquiera de los otros tantos entornos libres que existen bajo Linux. La gente del MIT desarrolló su propio entorno pensando en que los usuarios serán niños de 7 a 10 años.

Lamentablemente, este entorno es demasiado simple y las aplicaciones que corren sobre él, a diferencias de los clásicos entornos de Linux, deben ser diseñadas para correr específicamente sobre Sugar. Eso significa que, en principio, no sería posible correr cualquiera de las miles de aplicaciones disponibles para GNU/Linux, aún usando Fedora 6.

Ni siquiera Firefox :(

En realidad existe una version modificada del Firefox para Sugar (obviamente bajo otro nombre ;), pero existe el problema de las actualizaciones del software. ¿Qué ocurre si salen mejoras de seguridad en las versiones originales de los programas?

Es por esto que la gente de la UNLP decidió emprender la tarea de instalar una versión de Debian GNU/Linux en un pendrive USB y bootear desde ahí. Por ahora todas las pruebas que se hicieron son de concepto, y no existe ningún plan concreto para desarrollar una distribución de GNU/Linux alternativa para la OLPC. Al menos desde dentro de la UNLP.

El aparato por ahora es una versión prototipo, el cual dispone de una memoria interna de 512 MB con un sistema de archivos comprimidos, pero hasta la fecha nadie se animó a borrarlo e instalar una distribución de GNU/Linux más estable. La idea es que la versión definitiva tenga una memoria interna flash de 4GB, que usando el sistema de archivos comprimido puede ser aprovechado eficientemente.

(no, no se duplica el espacio disponible por usar compresión de datos).

Si quieren ver más fotos pueden verlas en mi Flickr.

Asa Dotzler, Firefox, Debian

Thursday, July 5th, 2007

Tal como se anunció en CaFeLug y TechTear, el lunes y martes pasado Asa Dotzler llegó a la Argentina a dar unas charlas sobre el proyecto Mozilla, y en especial sobre Firefox. El evento fué en la UADE el día lunes, y en el Teatro de la Comedia el día Martes.

Resumiendo ampliamente, la charla en sí estuvo muy interesante. En especial porque no se ven muchos de estos eventos por este lado del planeta, y es bueno saber que hay alguien que se toma la molestia de venir a visitarnos.

Aún cuando los asistentes fueron menos de 150 y todavía quedaban butacas libres en el auditorio, nos visitó alguien como Asa, quien es uno de los encargados de coordinar la difusión del proyecto en el mundo, y quien está al tanto de todo lo que ocurre en él.

O sea, su cargo es gerencial, de liderazgo y de evangelización. Si entran en la sección Staff de Mozilla.org podrán ver que aparece en el tercer lugar de la lista.

La charla fué en inglés, y la pronunciación de él fué impecable. Si bien no hubo mucho contenido técnico, pudo verse que Asa está al tanto de los mayores problemas técnicos del momento. Por ejemplo, algo anecdótico de comentar es que al finalizar la charla del día lunes, nos quedamos en el pasillo de la UADE hablando con él y alguien más le mencionó el mayor problema que se enfrenta AJAX: el botón de atrás del browser.

Asa no se hizo esperar, y al instante dijo que actualmente la solución es modificar el hash de la URL. Sencillamente brillante. Ojalá muchos de las personas que ocupan cargos gerenciales en empresas de desarrollo de software estén tan vinculadas con los problemas del mundo real que un programador enfrenta.

Un detalle: Asa no es un programador (no le gusta y no le interesa serlo), sino que fué un estudiante de Arquitectura (si, esos que hacen casitas).

Cuando Asa terminó de dar la charla fué el momento de las preguntas. Por lo que lei en otros blogs, a diferencia del lunes, el día martes hubo menor cantidad de preguntas.

¡El lunes tuvieron que echarnos a patadas del auditorio porque los encargados se tenían que ir! En un momento la gente de traducción simultánea (Inglés-Español) de la UADE se tuvo que ir, y solo los intrépidos que podían hablar inglés siguieron insistiendo. Hubo muchas preguntas, y Asa siempre estuvo a la altura de poder responder cada una de ellas.

Incluso la que hice yo.

“¿Hay algún plan para poder incluir Firefox dentro de Debian?”

Voy a ser lo más claro posible: uno de los motivos para viajar 100 kilómetros a una charla de Firefox fue para poder hacer esa pregunta. No me interesa viajar 2 horas y quedarme sentado otras 3 escuchando a alguien diciendome lo maravilloso que es Firefox. Ya lo sé, lo uso todos los días desde la version 1.0. Logré que lo use mi padre, y logré que en en lugar donde trabajo usen Thunderbird en vez de Outlook.

Risas de por medio y luego de un momento bastante incómodo, la respuesta de Asa fué de esperarse. Basicamente dijo que no.

Para los que no están al tanto de la situación Firefox - Debian, le comento un poco como son las cosas.

Debian es una distribución de GNU/Linux que hace un FUERTE hincapié en el Software Libre. La gente de Debian es tan insistente en ese tema, que tienen su propia definición de libertad la cual llaman Contrato Social. Cualquier cosa que no cumpla con alguna de esas reglas no se lo considera “libre”.

Firefox es un navegador Web de código libre y gratuito. Cualquiera puede instlarlo sin tener que pagarle nada a nadie, y cualquiera puede modificar y redistribuir su código fuente. Como todos sabemos, el código fuente es la receta de cualquier programa, y es lo más importante de cualquier programa de software.

Al menos en principio.

Como todos sabemos, vivimos en un mundo donde hay gente que tiene su propia agenda, sus propios intereses y su propia visión del mundo. Es por eso que existen agrupaciones como GNU, la Free Software Foundation y la Open Source Initiative , que se encargan de manejar las cuestiones legales de varios proyectos de software bajo una licencia de código libre, y definir ciertos límites de uso.

El código fuente de Firefox responde a la perfección al Contrato Social de Debian. El problema es que las imágenes no, incluyendo el logo del zorro naranja. Solamente Mozilla (o cualquiera que ellos designen), puede distribuir al navegador Firefox con esas imágenes.

Específicamente, las primer y tercer cláusulas del Contrato Social de Debian dicen:

1. Libre redistribución

La licencia de un componente de Debian no puede restringir a un tercero el vender o entregar el programa como parte de una distribución mayor que contiene programas de diferentes fuentes. La licencia no debe solicitar «royalties» u otras comisiones para su venta.

3. Trabajos derivados

La licencia debe permitir modificaciones y trabajos derivados y debe permitir que estos se distribuyan bajo los mismos términos que la licencia del programa original.

Eso significa que Debian acepta a usar las imagenes solo si los usuarios de Debian tienen los mismos derechos a usarlas que Debian mismo. Mozilla no tiene problema en darle permiso a Debian, pero en lo que sí tienen problemas es con darle permiso a todos los usuarios de esta distribución de GNU/Linux.

Y dado que el nombre “Firefox” es una marca registrada de Mozilla, siendo ellos los responsables legales del producto, pidieron que usen las imágenes, o no le llamen Firefox al Firefox ya que ellos consideran que todo el paquete es una gran transacción atómica: Se llama Firefox al código fuente que sale directamente desde Mozilla y a las imágenes. Todo o nada.

La solución fue cambiarle el nombre: en Debian, se llama Iceweasel (es el que estoy usando para escribir este post en mi blog).

Lo que no quieren es que cualquier persona pueda modificar el programa y distribuirlo bajo el nombre Firefox. Si hay algo diferente a como Mozilla lo distribuye, no puede llevar ese nombre.

Lo cual nos lleva a la respuesta que me dió Asa: en ese caso, cualquiera podría distribuir una versión modificada del Firefox con modificaciones potencialmente dañinas al usuario que lo use. Mozilla no se puede hacer responsable por lo que otros hagan con su software, lo cual a mi me parece bien.

Aún así, es una lástima que existan esta clase de conflictos entre dos proyectos Open Source, ya que éstos dependen mutuamente, uno del otro. No deberían estar enfrentados sino ayúdandose entre si. Lamentablemente, la realidad es diferente.

Para terminar, yo estoy muy feliz: gracias a la pregunta que le hice a Asa, ¡me dieron una remera de Firefox! Otro día le saco una foto y se las muestro (no la busquen en el Mozilla Store porque no la van a encontrar ;).

Saludos.

Estoy desesperado

Thursday, June 21st, 2007

¡Hola!

¿Encontraste algún tutorial de Linux muy copado pero uno de los comandos no te funciona?

¿Estás desesperado por sentirte como un simio en el mundo de GNU/Linux?

¿Necesitás encontrar al instante información sin ninguna clase de burocracia?

¿Necesitás algun paquete en especial pero no sabés cual de todos instalar?

¡No desesperes!

¿Estás usando Ubuntu? Entrá aca:

http://packages.ubuntu.com/

¿Estás usando Debian? Entrá aca:

http://packages.debian.org/

Allí encontrarás un buscador de todos los paquetes de Ubuntu o Debian, respectivamente.

Web. Rápido. Intuitivo. Simple.

MySQL vs. PostgreSQL

Tuesday, June 19th, 2007

postgresql-vs-mysql

Instalando Pidgin en Debian Etch

Monday, June 18th, 2007

Actualización 15 de Julio, 2007: Actualicé el texto con instrucciones sobre cómo realizar el procedimiento desde dentro de una jailroot con chroot. Cualquier duda o inconveniente, ¡no duden en dejar un comentario!

Actualización 12 de Diciembre, 2007: Acabo de enterarme que en Backports.org existe un paquete de Pidgin. !Felicitaciones al equipo de Backports por incluirlo!. Para más información visitar Backports.org.

English readers: Now there’s an non-official-sort-of-official Pidgin Debian Backport at Backports.org! Check it out at PDO.

Debido a problemas legales con AOL, Pidgin es el nuevo nombre de Gaim. Y yo quería usarlo en mi nuevo y brillante Debian Etch, pero el comando:

$ apt-get -t testing install pidgin

Solo trae problemas. Siendo así, me decidí a compilar mi propio backport del Pidgin y generar un hermoso paquete .deb para poder instalarlo y usarlo. Pero no siempre es tan fácil o evidente como a uno le gustaría, así que paso a contarles cómo hacer.

La idea es muy simple: hay que bajar los paquetes fuentes de Pidgin desde los repositorios testing de Debian, instalar las dependencias de compilación, compilar, generar los .deb y por último instalar los paquetes generados.

Les recomiendo que, si quieren compilar el backport del pidgin, lo hagan en un entorno jailroot. De esta forma si instalan algo que no deberian instalar, o borran algo que no deberian borrar, el daño va a ser mínimo (tiempo perdido) y no van a tener que preocuparse por tener que reinstalar todo. Para esto, hace falta el paquete debootstrap:

$ apt-get -t stable install debootstrap

Luego, como root, crear un directorio donde instalar la jailroot:

# su
password:
$ cd /var
$ mkdir jailroots
$ chmod 700 jailroots
$ cd jailroots
$ mkdir jail1
$ debootstrap –arch i386 etch jail1 file:///media/cdrom

El comando debootstrap crea dentro del directorio jail1 una instalación minima de un sistema Debian. En este caso, un Etch. Cuando digo minimo quiero decir que solamente se instalan los paquetes absolutamente esenciales. Ni siquiera se instala un Kernel. Con el parámetro “–arch” estoy indicando la aquitectura a usar (i386 en mi caso). Si están usando alguna otra, cámbienla apropiadamente (amd64, por ejemplo?).

También hace falta indicar desde donde instalar los paquetes básicos. En mi caso lo estoy haciendo desde el CDROM de instalación de Debian Etch. Les recomiendo tener siempre uno a mano.

Habiendo creado la jailroot con debootstrap, usando chroot se puede trabajar ahi dentro sin problemas:

$ chroot /var/jailroots/jail1 /bin/su -

Eso les inicia sesión en la jailroot con el usuario root. Para salir, usan Cotrol-D o el clásico exit. Por último, van a tener que crear un nuevo usuario dentro de la jailroot:

$ chroot /var/jailroots/jail1 /bin/su -
$ adduser builder
pasword: …

Y para logearse dentro de la jail con el nuevo usuario, hay que hacer desde fuera de la jail:

chroot /var/jailroots/jail1 /bin/su - builder

Donde builder es el nombre del usuario que crearon.

Dado que la estructura que debootstrap les crea es muy reducida, capaz tengan que instalar muchos paquetes que ya tenian instalados en su sistema real. Siempre es bueno tener a mano un par de ventanas abiertas con p.d.o abierto :)

En adelante, se asume que todas las instrucciones se ejecutan dentro de la jailroot creada.

Antes de empezar hay que tener configurados los repositorios stable, testing y unstable dentro del archivo /etc/apt/sources.list. El mío lo tengo así:

deb http://mirrors.kernel.org/debian stable main contrib non-free
deb-src http://mirrors.kernel.org/debian stable main contrib non-free

deb http://mirrors.kernel.org/debian testing main contrib non-free
deb-src http://mirrors.kernel.org/debian testing main contrib non-free

deb http://mirrors.kernel.org/debian unstable main contrib non-free
deb-src http://mirrors.kernel.org/debian unstable main contrib non-free

Si tienen a mano un DVD con Debian Etch, pueden indicarlo agregando:

deb file:///media/cdrom stable main contrib

Si están desde dentro de la jail no van a poder montar la lectora ya que /dev está vacío. Tienen que montarlo desde afuera de la jail.

También hace falta indicarle al apt-get que ignore los repositorios testing y unstable a menos que se lo digamos explícitamente porque, si no lo hacemos, vamos a tener un pequeño gran problema en el proximo upgrade ya que va a intentar actualizar los paquetes hacia la rama unstable, y eso es solo para aquellos valientes e intrépidos hackers de Debian. En el archivo /etc/apt/apt.conf tengo lo siguiente:

APT
{
Cache-Limit “41943040″;
Default-Release “stable”;
};

La primer opción le indica el tamaño de cache a usar. El valor por defecto no alcanza ya que el apt-get necesita guardar información de tres repositorios: stable, testing y unstable. La segunda opción le indica que, por defecto, todas las operaciones que hagamos son sobre los repositorios de la rama stable. De esta forma vamos a poder conservar nuestro Etch en buen estado sin generar conflictos. Luego, actualizamos la información de los paquetes de los repositorios con el siguiente comando:

# apt-get update

El siguiente paso es crear un directorio temporal dentro de nuestro home, y allí descargarnos los paquetes fuente de Pidgin. En mi caso hice:

$ cd ~
$ mkdir pidgin-tmp
$ cd pidgin-tmp/
$ apt-get -t testing source pidgin
Leyendo lista de paquetes… Hecho
Creando árbol de dependencias… Hecho
Necesito descargar 10,9MB de archivos fuente.
Des:1 http://mirrors.kernel.org testing/main pidgin 2.0.1-1 (dsc) [1234B]
Des:2 http://mirrors.kernel.org testing/main pidgin 2.0.1-1 (tar) [10,8MB]
Des:3 http://mirrors.kernel.org testing/main pidgin 2.0.1-1 (diff) [37,4kB]
Descargados 10,9MB en 3m28s (52,2kB/s)
dpkg-source: extracting pidgin in pidgin-2.0.1
dpkg-source: unpacking pidgin_2.0.1.orig.tar.gz
dpkg-source: applying ./pidgin_2.0.1-1.diff.gz

La opción source del comando apt-get indica que queremos descargar en el directorio actual los fuentes de ese paquete (casi) listos para compilar, y la opcion -t testing le indica cuál rama del repositorio usar. Hay que tener mucho cuidado cuando se usa este argumento ya que tener un sistema con paquetes de ramas mezcladas ¡es para problemas!

El mayor problema son los conflictos de dependencias que pueden aparecer, ya que algunos paquetes de testing/unstable no están totalmente probados con el apt-get y puede darse el caso que instalando un paquete se nos borre otro más importante (¡por ejemplo el init o el kernel mismo!). En nuestro caso no va a ser así y todo lo que instalemos va a ser de la rama stable o “Etch”.

Paso siguiente, hay que instalar las dependencias de compilación del paquete para poder compilarlo apropiadamente. El comando:

$ apt-get -t testing build-dep pidgin

¡no lo ejecuten nunca! (never, ever execute that single command). Hay que instalar las dependencias manualmente ya que de otra forma, tendremos un sistema con paquetes de varias ramas. Por suerte lo más complicado es copiar y pegar los nombres de los paquetes, ya que por lo general son más de los que uno acostubra usar. Ejecutando el comando:

$ apt-cache showsrc pidgin | grep Build-Depends:

Obtendremos una larga lista de los nombres de los paquetes que necesitaremos instalar antes de poder compilar Pidgin. Junto a cada paquete y entre paréntesis aparece la versión mínima necesaria para poder compilarlo. En nuestro caso ignoraremos completamente la versión ya que Todo Debería Funcionar Sin Problemas ®, y procederemos a instalar los paquetes.

Al día de la fecha (18 Jun, 2007) el comando para instalarlos es:

$ apt-get -t stable install cdbs debhelper libgtk2.0-dev libxss-dev libmeanwhile-dev libgadu-dev libnss3-dev tcl8.4-dev tk8.4-dev libgstreamer0.10-dev libgtkspell-dev libltdl3-dev libperl-dev libstartup-notification0-dev libzephyr-dev libxml2-dev libebook1.2-dev libedata-book1.2-dev libcamel1.2-dev libdbus-glib-1-dev dbus python libavahi-compat-howl-dev libxml-parser-perl libncursesw5-dev libsasl2-dev doxygen

Como pueden ver, todos los paquetes que instalaremos son de la rama stable. Solo para estar seguros, instalaremos los siguientes paquetes adicionales:

$ apt-get -t stable install autotools-dev debhelper devscripts dh-make build-essential fakeroot debian-keyring

Los cuales son paquetes clásicos para compilar y generar otros paquetes.

Si por alguna de esas casualidades de la vida algun paquete que necesitan instalar no se encuentra dentro de stable, van a tener que (recursivamente) realizar todo este mismo procedimiento pero, primero, para ese otro paquete. Como siempre, se aconseja primero leer toda esta guía y luego de entender (mas o menos) qué hace, realizarla.

Ahora si, ¡llegó el momento de compilar! Dentro del directorio pidgin-tmp del $HOME deberíamos tener uno llamado pidgin-2.0.1 o similar, en donde estarán los fuentes del programa. Lo único que deberemos hacer es ejecutar el siguiente comando siendo un usuario normal (no root):

$ cd pidgin-2.0.1
$ fakeroot debian/rules binary

… y esperar. Luego de unos minutos terminará de compilar, y en el directorio padre tendremos cuatro archivos .deb:

$ cd …
$ ls *deb
pidgin_2.0.1-1_i386.deb
pidgin-dbg_2.0.1-1_i386.deb
pidgin-data_2.0.1-1_all.deb
pidgin-dev_2.0.1-1_all.deb

El paquete -dbg se usa para instalar los símbolos de depuración para el gdb, y el paquete -dev para poder compilar librerías adicionales para usar en el programa. Por último, como root (¡ahora si, egocéntricos administradores viciosos del root!) y fuera de la jail, instalaremos el pidgin-2.0.1 de la siguiente forma:

# dpkg -i pidgin-data_2.0.1-1_all.deb pidgin_2.0.1-1_i386.deb

Y para desinstalar Pidgin hacemos:

# dpkg -r pidgin

pidgin-corrector

Instalación completa

Sunday, June 17th, 2007

¡Hola! Hace un par de horas terminé de instalar Debian “Etch” GNU/Linux. Resulta que lo tenía en otro disco dentro de una partición de 11 GB, y siempre había poco espacio libre. Ahora tengo un disco mas grande :)

Experiencia de la instalación:

Reinicié, apreté enter en el momento que el disco de instalación arrancó, y aprete algunas teclas más para elegir idioma, teclado y cual de mis 3 placas de red usar. Lo único realmente loco que hice durante la instalación fué configurar a mano las particiones porque las quería de una forma muy particular (100MB para /boot, 4GB para swap y 50GB para el resto). Por último me fui a mirar dos películas.

Me llamó mucho la atención que, a diferencia de las versiones anteriores de Debian, no hubo que reiniciar para terminar de instalar.

Después de reiniciar arrancó directamente el gdm a 1600×1200 24bits (alabado sea el SyncMaster 997MB) listo para usar, y me propuse a instalar KDE con el synaptic. Buscar: kde, doble click, aplicar, listo.

Con respecto a los drivers de vídeo: otra cosa bastante “loca” (ohhh, viejas épocas de Slackware…). Luego de instalar los drivers non-free de nVidia tuve que configurar el X.Org para que me use los nuevos drivers (como root):

# apt-get install nvidia-kernel-2.6-k7 nvidia-glx-dev nvidia-settings mesa-utils
# dpkg-reconfigure xserver-xorg
# grep -q ^nvidia /etc/modules || echo nvidia >> /etc/modules
# modprobe nvidia
# invoke-rc.d gdm restart

Las instrucciones las saqué del wiki de Debian y en mi caso en el último comando usé kdm en vez de gdm porque lo elegí como manager por defecto. Ni siquiera hubo que reiniciar para poder tener 100% aceleración 3D (ni mucho menos compilar nada):

alejo@Atucha64:~$ glxinfo | grep rendering
direct rendering: Yes
alejo@Atucha64:~$ glxgears -printfps
36845 frames in 5.0 seconds = 7368.958 FPS
36240 frames in 5.0 seconds = 7247.989 FPS
36223 frames in 5.0 seconds = 7244.494 FPS
36878 frames in 5.0 seconds = 7375.490 FPS

glxgears

Capaz sea engorroso hacer todo eso, pero solo hay que hacerlo una vez y luego dejar al apt-get que se encargue de las actualizaciones.

Con respecto al sonido salió funcionando automáticamente sin tener que tocar nada. ¡No tuve que bajarme los drivers de la página de nForce! Lo primero que hice fue ponerme a escuchar una radio por internet.

Operating System: Reconfiguration

Saturday, June 16th, 2007

instalar-debian

win2003update

El comando del dia: du

Monday, June 11th, 2007

du es un comando que te calcula el espacio en disco utilizado por los archivos/directorios indicados por parametro:

$ du -shx /*
3.6M /bin
34M /boot
0 /cdrom
112K /dev
37M /etc
5.2G /home
4.0K /initrd
0 /initrd.img
0 /initrd.img.old
163M /lib
48K /lost+found
52K /media
32K /mnt
390M /opt
898M /proc
4.5M /root
3.7M /sbin
4.0K /srv
0 /sys
100K /tmp
5.0G /usr
2.0G /var

El argumento -shx indica:

-s Muestra un sumario de los archivos, sin mostrar los directorios en forma recursiva.

-h Muestra los valores en un formato que los humanos puedan leerlo

-x se mantiene dentro de un mismo filesystem. De esta forma, si tenemos varios discos, algun CD-ROM montado o alguna unidad de red, los archivos dentro de esos otros filesystem no los tiene en cuenta.

En mi caso, /boot lo tengo en una partición aparte pero me lo muestra igual ya que se lo estoy indicando como parámetro al llamar al comando:

$ echo /*
/bin /boot /cdrom /dev /etc /home /initrd /initrd.img /initrd.img.old /lib /lost+found /media /mnt /opt /proc /root /sbin /srv /sys /tmp /usr /var

Como siempre, para más información pueden hacer:

man du

LAM MPI en Debian Etch

Monday, June 11th, 2007

Dado el siguiente código:

#include <stdio.h>
#include “mpi.h”
int main(int argc, char **argv)
{
int taskid, numtasks;


MPI_Init(&argc, &argv);
MPI_Comm_rank(MPI_COMM_WORLD, &taskid);
MPI_Comm_size(MPI_COMM_WORLD, &numtasks);

printf("Soy %d y hay %d tareas en total\n", taskid, numtasks);

MPI_Finalize();
return 0;
}

Cómo compilar programas y ejecutarlos con LAM MPI en Debian Etch:

1. Instalar paquetes LAM:

apt-get install lam4c2 lam4-dev lam-runtime

2. Iniciar el servicio lamd. Esto hay que hacerlo una sola vez, cada vez que se reinicia la PC:

lamboot

3. Compilar el programa:

hcc -Wall -o programa programa.c

4. Ejecutar el programa en 4 nodos:

# mpirun.lam -np 4 programa -- "parametros"
Soy 0 y hay 4 tareas en total
Soy 1 y hay 4 tareas en total
Soy 2 y hay 4 tareas en total
Soy 3 y hay 4 tareas en total