Fortaleciendo nuestras contraseñas

Si una de las promesas que tiene para este cierre de año es fortalecer las contraseñas en sus equipos personales, cambiarlas mensualmente y no repetir la misma contraseña en al menos doce cambios. En este artículo se le explicará como hacerlo sin tener que invertir una uva en ello, todo esto gracias al paquete libpam-cracklib en Debian, el procedimiento mostrado debe aplicarse a otras distribuciones derivadas de Debian.

Pareciese lógico que algunas de las mejores prácticas para el fortalecimiento de las contraseñas son las siguientes:

  • Cambiar las contraseñas periódicamente.
  • Establecer una longitud mínima en las contraseñas.
  • Establecer buenas reglas para las nuevas contraseñas, es decir, mezcla entre letras mayúsculas, minúsculas, dígitos y caracteres alfanuméricos.
  • Mantener un histórico de las contraseñas usadas previamente, de ese modo, alentamos a los usuarios establecer nuevas contraseñas.
  • Indicarle a los usuarios que es inaudito que se anoten las contraseñas en un post-it y se dejen pegadas en los monitores o incluso en las gavetas de sus archivadores.

El primer paso es instalar el paquete libpam-cracklib

# apt-get install libpam-cracklib

A partir de la versión 1.0.1-6 de PAM se recomienda manejar la configuración vía pam-auth-update. Por lo tanto, por favor tome un momento y lea la sección 8 del manual del comando pam-auth-update para aclarar su uso y ventajas.

$ man 8 pam-auth-update

Ahora establezca una configuración similar a la siguiente, vamos primero con la exigencia en la fortaleza de las contraseñas, para ello edite o cree el fichero /usr/share/pam-configs/cracklib.


Name: Cracklib password strength checking
Default: yes
Priority: 1024
Conflicts: unix-zany
Password-Type: Primary
Password:
	requisite			pam_cracklib.so retry=3 minlen=8 difok=3
Password-Initial:
	requisite			pam_cracklib.so retry=3 minlen=8 difok=3

NOTA: Le recomiendo leer la sección 8 del manual de pam_cracklib para encontrar un mayor numero de opciones de configuración. Esto es solo un ejemplo.

En versiones previas el modulo pam_cracklib hacia uso del fichero /etc/security/opasswd para conocer si la propuesta de cambio de contraseña no había sido utilizada previamente. Dicha funcionalidad ahora corresponde al nuevo modulo pam_pwhistory

Definamos el funcionamiento de pam_pwhistory a través del fichero /usr/share/pam-configs/history.


Name: PAM module to remember last passwords
Default: yes
Priority: 1023
Password-Type: Primary
Password:
	requisite			pam_pwhistory.so use_authtok enforce_for_root remember=12 retry=3
Password-Initial:
	requisite			pam_pwhistory.so use_authtok enforce_for_root remember=12 retry=3

NOTA: Para mayor detalle de las opciones puede revisar la sección 8 del manual de pam_pwhistory

Seguidamente proceda a actualizar la configuración de PAM vía pam-auth-update.

Una vez cubierta la fortaleza de las contraseñas nuevas y de evitar la reutilización de las ultimas 12, de acuerdo al ejemplo mostrado, resta cubrir la definición de los periodos de cambio de las contraseñas.

Para futuros usuarios debemos ajustar ciertos valores en el fichero /etc/login.defs


#
# Password aging controls:
#
#       PASS_MAX_DAYS   Maximum number of days a password may be used.
#       PASS_MIN_DAYS   Minimum number of days allowed between password changes.
#       PASS_WARN_AGE   Number of days warning given before a password expires.
#
PASS_MAX_DAYS   30
PASS_MIN_DAYS   0
PASS_WARN_AGE   5

Las reglas previas no aplicaran para los usuarios existentes, pero para este tipo de usuarios podremos hacer uso del comando chage de la siguiente manera:

# chage -m 0 -M 30 -W 5 ${user}

Donde el valor de ${user} debe ser reemplazo por el username.

Instalando dependencias no-libres de JAVA en ambientes pbuilder

El día de hoy asumí la construcción de unos paquetes internos compatibles con Debian 5.0 (a.k.a. Lenny) que anteriormente eran responsabilidad de ex-compañeros de labores. El paquete en cuestión posee una dependencia no-libre, sun-java6-jre. En este artículo se describirá como lograr adecuar su configuración de pbuilder para la correcta construcción del paquete.

Asumiendo que tiene un configuración similar a la siguiente:

$ cat /etc/pbuilderrc
MIRRORSITE=http://example.com/debian
DEBEMAIL="Maintainer Name <mail@example.com>"
DISTRIBUTION=lenny
DEBOOTSTRAP="cdebootstrap"
COMPONENTS="main contrib non-free"

Para mayor información sobre estas opciones sírvase leer:

$ man 5 pbuilderrc

Mientras intenta compilar su paquete en el ambiente proporcionado por pbuilder el proceso fallará ya que no se mostró la ventana para aceptar la licencia de JAVA. Podrá observar en el registro de la construcción del build un mensaje similar al siguiente:

Unpacking sun-java6-jre (from .../sun-java6-jre_6-20-0lenny1_all.deb) ...

sun-dlj-v1-1 license could not be presented
try 'dpkg-reconfigure debconf' to select a frontend other than noninteractive

dpkg: error processing /var/cache/apt/archives/sun-java6-jre_6-20-0lenny1_all.deb (--unpack):
subprocess pre-installation script returned error exit status 2

Para evitar esto altere la configuración del fichero pbuilderrc de la siguiente manera:

$ cat /etc/pbuilderrc
MIRRORSITE=http://example.com/debian
DEBEMAIL="Maintainer Name <mail@example.com>"
DISTRIBUTION=lenny
DEBOOTSTRAP="cdebootstrap"
COMPONENTS="main contrib non-free"
export DEBIAN_FRONTEND="readline"

Una vez alterada la configuración podrá interactuar con las opciones que le ofrece debconf.

Ahora bien, si usted constantemente tiene que construir paquetes con dependencias no-libres como las de JAVA, es probable que le interese lo que se menciona a continuación.

Si lee detenidamente la página del manual de pbuilder en su sección 8 podrá encontrar lo siguiente:

$ man 8 pbuilder
...
--save-after-login
--save-after-exec
Save the chroot image after exiting from the chroot instead of deleting changes.  Effective for login and execute session.
...

Por lo tanto, usaremos esta funcionalidad que ofrece pbuilder para insertar valores por omisión en la base de datos de debconf para que no se nos pregunte si deseamos aceptar la licencia de JAVA:

# pbuilder login --save-after-login
I: Building the build Environment
I: extracting base tarball [/var/cache/pbuilder/base.tgz]
I: creating local configuration
I: copying local configuration
I: mounting /proc filesystem
I: mounting /dev/pts filesystem
I: Mounting /var/cache/pbuilder/ccache
I: policy-rc.d already exists
I: Obtaining the cached apt archive contents
I: entering the shell
File extracted to: /var/cache/pbuilder/build//27657

pbuilder:/# cat > java-license << EOF
> sun-java6-bin shared/accepted-sun-dlj-v1-1 boolean true
> sun-java6-jdk shared/accepted-sun-dlj-v1-1 boolean true
> sun-java6-jre shared/accepted-sun-dlj-v1-1 boolean true
> EOF
pbuilder:/# debconf-set-selections < java-license
pbuilder:/# exit
logout
I: Copying back the cached apt archive contents
I: Saving the results, modifications to this session will persist
I: unmounting /var/cache/pbuilder/ccache filesystem
I: unmounting dev/pts filesystem
I: unmounting proc filesystem
I: creating base tarball [/var/cache/pbuilder/base.tgz]
I: cleaning the build env
I: removing directory /var/cache/pbuilder/build//27657 and its subdirectories

Configurando el sonido (HDA Intel) en Lenovo 3000 c200 en Debian GNU/Linux

La situación poco común se presentó con un portátil Lenovo, específicamente un 3000 c200; el computador en cuestión mostraba la tarjeta funcionando, como si estuviera todo normal, pero sucede que no había sonido en lo absoluto por más altos que estuvieran los indicadores gráficos del volumen. Indagando por Google me encontré que ya han habido muchos casos similares, no solamente para laptops Lenovo, sino para la mayoría que incluye ese tipo de tarjetas y me encontré con una solución en un foro que me funcionó perfecto. Acá voy a tratar de explicar paso a paso todo lo que hice para que funcionara como debe ser.

Lo primero que se hizo fué asegurarse que se trata realmente de una tarjeta HDA Intel, con la siguiente línea de comandos:

$ lspci | grep High

…a lo que se obtuvo la siguiente respuesta:

00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 02)

…donde se puede verificar que se trata de la HDA de la familia ICH7 de la Intel. Una vez verificado ésto, se procede a instalar algunos paquetes necesarios para que todo funcione de manera correcta, que son los siguientes:

  • build-essentials
  • gettext
  • libncurses5-dev

Ésto se logró con el aptitude, con la siguiente línea de comandos:

$ sudo aptitude install el_paquete_que_quiero_instalar

Luego hay que descargar las cabeceras del kernel que se está usando. Para ésto, la manera más fácil de hacerlo fué instalando el paquete module-assistant y haciendo lo siguiente en una terminal:

$ sudo m-a update
$ sudo m-a prepare

Y el programa automáticamente va a saber cuáles cabeceras descargar y el directorio donde ponerlas. Cuando estén instalados éstos tres paquetes también se va a necesitar descargar de la página del Proyecto Alsa tres archivos necesarios y que son nombrados a continuación:

Se pueden descargar con un gestor de descargas preferido, ésto se hizo con wget, utilizando la línea de comandos:

$ wget -c http://www.alsa-project.org/alsa-driver-1.0.14.tar.bz2

…y así para cada uno de los archivos. Cuando se tengan los tres archivos, se copian a la carpeta /usr/src/alsa/ la cual, probablemente no existe todavía en el sistema y por lo tanto tendrá que ser creada; ésto se puede lograr con la siguiente línea de comandos:

$ sudo mkdir /usr/src/alsa

…cuando se tenga el directorio, se copian los tres archivos tar.gz al mismo; ésto se puede lograr con:

$ sudo cp alsa* /usr/src/alsa/

Luego hay que descomprimir los ficheros tar.gz con:

$ sudo tar xvf el_archivo_que_vamos_a_descomprimir.tar.gz

Una vez descomprimidos nos ubicamos en la primera carpeta que va a ser alsa-driver-1.0.14/ y compilamos el alsa para las tarjetas HDA Intel con las siguientes líneas de comandos:

$ sudo ./configure --with-cards=hda-intel
$ sudo make
$ sudo make install

Luego vamos a necesitar compilar los otros 2 paquetes restantes, para ello, nos ubicamos en la carpeta correspondiente y hacemos en una terminal lo siguiente:

$ sudo ./configure
$ sudo make
$ sudo make install

Ésto se va a hacer tanto para alsa-lib como para alsa-utils, pues el procedimiento es el mismo. Cuando se hayan compilado los tres paquetes el sistema ya debería ser capaz de reconocer correctamente la tarjeta y por lo tanto debe haber sonido; Ésto puedes ser verificado (1) Abriendo un reproductor de preferencia y reproduciendo algo de musica ó (2) Se puede hacer con la siguiente línea:

$ cat /dev/urandom >> /dev/dsp/ 

Con lo cual se obtendrá un sonido algo parecido a unos aplausos, pero en realidad son sonidos producidos aleatoriamente.

Ésto debería ser todo. En las máquinas que se configuraron, cuando se conectaban los audífonos en el panel lateral, el sonido salía tanto por los audífonos como por las cornetas y al parecer se solucionó con una reiniciada, pero sino quieres reiniciar entonces lo que tienes que hacer es tumbar los módulos que se crearon y volverlos a cargar, tal cual reiniciaras el sistema:

$ sudo modprobe -r snd_hda_intel652145
$ sudo modprobe -r snd_pcm
$ sudo modprobe -r snd_page_alloc

Luego para cargarlos hacemos las mismas línea, pero sin la opción -r.

Transmission 0.72 en Debian y Ubuntu GNU/Linux AMD64

Bien, en realidad, no he podido esperar a tenerlo trabajando al 100%, se trata de la versión 0.72 de Transmission, el que a mi parecer, es el mejor cliente BitTorrent que jamás haya existido. Según lo describen en la página, cito textualmente: “Transmission has been built from the ground up to be a lightweight, yet powerful BitTorrent client. Its simple, intuitive interface is designed to integrate tightly with whatever computing environment you choose to use. Transmission strikes a balance between providing useful functionality without feature bloat. Furthermore, it is free for anyone to use or modify“. Su instalación es muy fácil, ya que lo único que tenemos que hacer, es bajarnos el .deb (sí, el .deb, imagínense lo fácil que nos va a resultar) de la página de nuestros amígos de GetDeb y luego usar una terminal ó el instalador de paquetes GDebi (aún más fácil) para instalar el paquete.

En el primer de los casos, usando la terminal, lo único que tenemos que hacer en escribir la siguiente línea de comandos:
$ sudo dpkg -i transmission_0.72-0~getdeb1_amd64.deb


…esperar a que termine el proceso de instalación y ya podrás ejecutar el Transmission desde Aplicaciones –> Internet –> Transmission.

Para el segundo de los casos, usando el instalador GDebi, tan sólo hay que hacer click encima del .deb con el botón derecho del ratón y seleccionamos la opción Abrir con “Instalador de paquetes GDebi” y luego click en el botón Instalar el paquete, finalmente esperar a que finalice la instalación del paquete y listo!. Una de las cosas que, debo admitir, más me gusta de ésta nueva versión, es que ahora podemos minimizar la aplicación en la bandeja del sistema :) .

Para más información de Transmission, visite su Página Oficial.

Actualizado Planeta #ubuntu-es

El hecho de haber dejado de utilizar ubuntu, como lo he manifestado en entradas anteriores, no implica que deba dejar de lado a los amigos del canal #ubuntu-es en el servidor Freenode, además, tampoco debo dejar de cumplir mis deberes de administrador del Planeta #ubuntu-es, por ello, he realizado los siguientes cambios:

  • Se actualiza WordPress a su versión 2.0.2.
  • Se actualiza el plugin FeedWordPress, basicamente este plugin es un agregador de contenidos Atom/RSS.
  • Ahora el dominio principal del Planeta #ubuntu-es es http://www.ubuntuchannel.org/, aunque se han establecido reglas de redirección en el fichero .htaccess para hacer el cambio lo menos traumático posible.

Aún faltan muchos detalles, en este preciso instante no puedo resolverlos debido a un viaje que debo realizar fuera del estado dentro de una hora, el lunes cuando regrese a casa continuare la labor, mientras tanto, le agradezco que si percibe algún error en el nuevo sitio o tiene alguna sugerencia en particular, por favor deje un comentario en esta entrada.

Para quienes deseen suscribirse al Planeta #ubuntu-es, el URI del feed ha cambiado a http://www.ubuntuchannel.org/feed/. Para aquellas personas que estaban suscritas, este cambio no debería afectarles, puesto que se han establecido reglas de redirección.

Si deseas ser miembro, por favor envia un mensaje a través de la sección de contacto del Planeta #ubuntu-es.

Creando listas de reproducción para XMMS y MPlayer

Normalmente acostumbro a respaldar toda la información que pueda en medios de almacenamiento ópticos, sobretodo audio digital, ya sea en ficheros Ogg Vorbis o en MPEG 1 Layer 3. Desde hace poco más de un año hasta la actualidad me he acostumbrado a mantener una estructura lógica, la cual es más o menos como sigue:

/music/<nombre_artista>/<título_album>/<título_pista

Pero hace mucho tiempo no era tan organizado en cuanto a la estructura de los respaldos, entonces, la pregunta en cuestión es, ¿cómo lograr detectar la presencia de ficheros de audio digital almacenados de manera persistente en un dispositivo óptico de manera automática?

Al igual que lo expresado en la entrada Eliminando ficheros inútiles de manera recursiva, haremos uso del comando find.

Antes de entrar en detalle debo aclarar que voy a realizar una búsqueda recursiva de ficheros en el path correspondiente a mi unidad lectora de CDs. Usted debe ajustar el path por uno apropiado en su caso particular.

Si solo desea buscar ficheros MPEG 1 Layer 3:

find /media/cdrom1/ -name \*.mp3 -fprint playlist

Pero si usted acostumbra a almacenar ficheros Ogg Vorbis en conjunto con ficheros MPEG 1 Layer 3, debería proceder así:

find /media/cdrom1/ \( -name \*.mp3 -or -name \*.ogg \) -fprint playlist

El comando anterior también es aplicable para generar listas de reproducción de video digital, en cuyo caso lo único que debe cambiar es la extensión de los ficheros que desea buscar. El fichero que contendrá la lista de reproducción generada en los casos expuestos previamente será playlist.

Reproduciendo la lista generada

Para hacerlo desde XMMS es realmente sencillo, acá una muestra:

xmms --play playlist --toggle-shuffle=on

Si usted no desea que las pistas en la lista de reproducción se reproduzcan de manera aleatoria, cambie el argumento on de la opción --toggle-shuffle por off, quedando como --toggle-shuffle=off.

Si desea hacerlo desde MPlayer es aún más sencillo:

mplayer --playlist playlist -shuffle

De nuevo, si no desea reproducir de manera aleatoria las pistas que se encuentran en la lista de reproducción, elimine la opción del reproductor MPlayer -shuffle del comando anterior.

Si usted desea suprimir la cantidad de información que le ofrece MPlayer al reproducir una pista le recomiendo utilizar alguna de las opciones -quiet o -really-quiet.

Ubuntu Dapper Drake Flight 6

Flight 6, es la última versión alpha disponible de Ubuntu Dapper Drake, esta versión ha sido probada razonablemente, pero recuerde que a pesar de ello todavía es una versión alpha, así que no se recomienda su uso en medios en producción. Esta versión puede descargarla desde:

Europa:
Ubuntu.
Edubuntu.
Kubuntu.
Reino unido y el resto del mundo:
Ubuntu.
Edubuntu
Kubuntu
Bittorent
Se recomienda su uso si es posible.
Sitios Espejos
Una lista de sitios espejos puede encontrarse en: Ubuntu Mirror System.

Una lista con los cambios notables en esta sexta versión alpha pueden ser encontrados en Dapper Flight 6.

Breve reseña del FLISOL 2006, Capítulo Mérida-Venezuela

Al llegar a eso de las 9:30 a.m. (hora local) estaban transmitiendo el video Trusted Computing (subtítulos español), un excelente video en donde nos muestran cuan peligroso puede ser la “mala interpretación” que tiene la industria acerca del concepto “Trusted Computing”, modelo en el cual la industria no le permite a los usuarios (comunidad) elegir entre lo que ellos consideran malo o nó, el problema es que ya deciden por tí, simplemente porque la industria no confía en nosotros.

Después de mostrar el video, Hector Colina, uno de los coordinadores del evento, procedió a dar la bienvenida a los asistentes al II Festival Latinoamericano de Instalación de Software Libre, capítulo Mérida, Venezuela. De inmediato, Hector continúo hablando y nos sorprendió con una charla denominada Software Libre y Libre Empresa, en donde nos hablaba de la interesante filosofía detrás del modelo de Software Libre, algunos piensan equivocadamente que bajo el esquema de Software Libre no se es posible generar ganancias, se demostró que es posible hacerlo. También hablo sobre las ventajas técnicas que brinda el Software Libre frente al Software Privativo.

Posteriormente se dió comienzo a las demostraciones de LTSP (Linux Terminal Server Project) por parte de José David Gutierrez, quien también coordinó el evento y es miembro de la Cooperativa AndiNuX, no recuerdo en este instante cuales eran las características que poseía el servidor, pero recuerdo que el cliente sobre el cual se hizo la demostración tenía apenas 40 MB de RAM (sí, leyo bien, 40 MB) y se logró levantar el entorno de escritorio KDE y ejecutar algunas aplicaciones, José comentaba que los requisitos mínimos de memoria RAM eran 16, mientras que lo óptimo erán 32 MB de RAM, así que amigo, si usted esta leyendo esto, no bote su potecito (equipo de bajo recursos de hardware), bajo el esquema de Software Libre podemos recuperarlo, quizá podría donarlo y regalarle una sonrisa a un niño que reciba educación en una escuela con pocos recursos.

Posteriormente comenzaron a colocar algunos videos a los asistentes, entre los cuales recuerdo haber visto Revolution OS, en paralelo, se realizaba el proceso de instalación desde tempranas horas de la mañana, al final de la jornada se lograron contabilizar más de 20 máquinas a las cuales se instaló GNU/Linux, incluyendo potecitos de 32 MB de RAM hasta máquinas de escritorio con procesadores de 64 bits, por supuesto, a una que otra portátil también se le instaló GNU/Linux, además, se regalaron CDs de Debian, Ubuntu, entre otros.

En la tarde el profesor Francisco Palm comenzó su charla Carpintería del Software Libre: un enfoque desde el lenguaje de Programación Python, en ella se nos hace reflexionar acerca de nuestra realidad actual en Venezuela, presentamos poca penetración de internet en nuestra sociedad. Bajo el esquema de Software Privativo, no se le brinda apoyo a la comunidad, no se presenta una innovación alguna.

El profesor Palm también converso sobre puntos interesantes acerca de la Ingeniería de Software Libre, como la Fundación Apache, Debian o Mozilla no presentan certificaciones y no les importa éste hecho en particular, puesto que su desarrollo es robusto, de hecho, muestran como funcionan por dentro. Entre otras cosas bastante interesantes.

Enseguida comenzaron otra charla 2 pupilos del profesor Palm, Diego Díaz y Freddy López, en donde se expuso el Proyecto SIGMA: Soluciones Libres para el mundo Científico, en esta charla pudimos observar una serie de demostraciones del sistema estadistico R. El proyecto SIGMA resulta de una iniciativa de los miembros de la Escuela de Estadística y el Instituto de Estadística Aplicada y Computación (IEAC) de la Universidad de Los Andes.

Sin mucho receso, Leonardo Caballero comenzó su charla acerca de Desarrollo Web con Mozilla FireFox, aca se explicó acerca de las extensiones que resultan muy útiles al desarrollador de páginas web, como por ejemplo, la extensión Web Developer, de manera adicional, se demostró cuan personalizable (desde utilizar temas hasta incluso simular comportarse como otro navegador) puede ser Firefox para un usuario particular, desde extensiones para el clima (ForecastFox) hasta herramientas de blogging.

Particularmente, para el desarrollo web utilizo más extensiones de las que mencionó Leonardo, entre ellas puedo mencionar: CSS Validator, ColorZilla, entre otras. Prefiero no continuar mencionando la lista de extensiones que poseo, se supone que sea una breve reseña, quizá en otro artículo hablaremos acerca de las extensiones de Firefox.

Un poco más tarde, el licenciado Axel Pizzi, quien pertenece a la agencia de traducción y servicios lingüisticos translinguas, conversó acerca del uso de herramientas CAT (Computer aided Translation) bajo el esquema de Software Libre, simplemente se mostraba las bondades de la traducción asistida por computadora, es una manera de traducir contenido en donde el ser humano (traductor) utiliza software diseñado para brindar soporte y facilitar ésta ardua tarea.

Algo nervioso se encontraba Jesús Rivero (no confundir con neurogeek, ok?), pues se estaba haciendo tarde para su charla, Cooperativismo y Software Libre, en donde Jesús mostró como el esquema de desarrollo colaborativo es sumamente útil en las Cooperativas.

Y ya para finalizar la jornada, comence mi charla sobre Desarrolo Web en Python utilizando el framework Django, a manera de introducción, comence a hablar del lenguaje de programación Python, sus bondades, que empresas le utilizan actualmente y que proyectos han desarrollado, entre dicha lista se incluyen las siguientes: Google, Yahoo!, empresas farmacéuticas (AstraZeneca) de gran escala mundial, Industrial Light & Magic (sí, esa misma que está pensando, es la empresa iniciada por George Lucas en el año de 1.975, la encargada de los efectos especiales de la saga “Star Wars”, no solo eso, en su lista se incluyen películas como “Forrest Gump”, “Jurassic Park”, “Terminator 2”, entre otros).

Posteriormente comence a adentrarme ya en el tema que me interesaba, Desarrollo Web, en mi caso particular, hable sobre como utilizar el framework Django, desde la instalación del framework, la instalación de PostgreSQL (recomendada) y del adaptador a dicha base de datos en python, psycopg, hasta la construcción de la aplicación. Para mayor detalle acerca de esta presentación solo esperen un próxima entrada, quisiera ampliar algunos tópicos para dejarlos un poco más claros.

Si desean ver algunas fotos que logré tomar del II Festival Latinoamericano de Instalación de Software Libre (FLISOL), Capítulo Mérida – Venezuela, pueden revisar el set de fotos FLISOL 2006 de mi cuenta en flickr.

Debo confesar que estaba bastante nervioso al principio porque era mi primera charla. Espero que todo haya salido bien y les haya gustado.

Bueno, finalizamos las actividades como a las 7:30 p.m. (hora local), luego de ello ayudamos a los muchachos a acomodar las cosas y guardarlas en las oficinas de Fundacite Mérida.

Desde mi punto de vista, ha sido una grata experiencia, cualquier corrección a la reseña es bienvenida, pido disculpas si he dejado a alguien por fuera, esta reseña no estaba anotada en ningún medio escrito, solo he comenzado a describir las situaciones que recuerdo, lo más seguro es que olvide algún detalle importante, andaba un poco distraído instalando Debian y Ubuntu en el Festival.

Por supuesto, cualquier corrección, crítica constructiva acerca de la charla que dí se los agradecería, todo sea por mejorar dicho material y publicarlo, por supuesto, manteniendo una licencia libre.

Libro oficial de Ubuntu

La primera edición del libro The Official Ubuntu Book estará lista para el día 4 de Agosto de este mismo año y contará con 320 páginas; la información anterior puede encontrarse en la preventa del libro realizada en Amazon.

Los autores del libro The Official Ubuntu Book son los siguientes:

Benjamin Mako Hill
Autor del famoso libro Debian GNU/Linux 3.x Bible, desarrollador debian/ubuntu.
Jono Bacon
Co-autor del libro Linux Desktop Hacks, publicado por O’Reilly, entre otras cosas, Jono colabora con el proyecto KDE.
Corey Burger
Administrador del proyecto Ubuntu Documentation Project.
Otros autores
Entre ellos se encuentran Ivan Krstic y Jonathan Jesse.

Este libro tendrá una licencia Creative Commons.

nVIDIA en Ubuntu 6.04

Hace unos días actualicé mi Ubuntu 5.10 a una de sus últimas versiones de testing: Flight 5. Debo admitir que quedé anonadado por lo cambios en la distribución, ya que con todas las mejoras que tiene parece que hubiera pasado, no sólo 6 meses sino años. El Dapper Drake (Flight 5, Ubuntu 6.04) es mucho mejor que sus antecesores. Pero la razón por la cual me decidí a escribir éste artículo es otra: la instalación de los drivers de mi tarjeta nVIDIA y su puesta en funcionamiento a punto.

Cuando actualicé mi sistema no hubo ningún problema, y lo digo en serio, ningún problema de ninguna índole. Toda mi configuración de escritorio quedó intacta; pero empecé a notar que la configuración de la tarjeta de video no se cargaba con el sistema. Entonces supe que, por alguna razón, los drivers de la tarjeta habían cambiado, es decir, el sistema asignó el driver por defecto para la tarjeta, más no los drivers de la tarjeta misma. Entonces tuve que ponerme a configurar la tarjeta.

Lo primero que hice fué verificar que los drivers vinieran con la distribución. Lo hice con la siguiente línea:

$ sudo aptitude search nvidia

Con lo cual obtuve lo siguiente:

i  nvidia-glx                      - NVIDIA binary XFree86 4.x/X.Org driver
v  nvidia-kernel-1.0.7174          -
v  nvidia-kernel-1.0.8178          -
i  nvidia-kernel-common            - NVIDIA binary kernel module common files

Entonces ya sabía que los drivers venían con la distro, lo cual me pareció fascinante, ya que en realidad el Flight 5, no es la versión definitiva del Dapper Drake. Luego procedí a verificar la documentación de dicho paquete. Ésto lo hice con la siguiente línea de comandos:

$ sudo aptitude show nvidia-glx

Esto lo hice para verificar que no haya alguna clase de conflictos con otros paquetes, pero en realidad no es un paso necesario, ya que aptitude resuelve todo tipo de conflictos y dependencias. Después de verificar que todo estaba en orden me decidí a instalar los drivers. Ésto lo hice con la siguiente linea de comandos:

$ sudo aptitude install nvidia-glx

Con lo cual quedaron instalados los drivers de la tarjeta de manera trasparente y rápida. Lo siguiente que debía hacer, era activar la configuración de la tarjeta. Lo cual hice con la siguiente línea de comandos:

$ sudo nvidia-glx-config enable

Una vez hecho ésto ya podía configurar la tarjeta. Algo que hay que hacer notar es que, para las distribuciones anteriores de Ubuntu, había que instalar de manera separada el paquete nvidia-glx y el nvidia-settings, sin embargo, aquí queda todo instalado de una vez. Lo que sigue es iniciar la configuración de la tarjeta, lo cual hice con la siguiente línea de comandos:

$ nvidia-settings

Y ya tenía acceso a la configuración de mi tarjeta. Sin embargo, al hacer todo ésto, la configuración no se carga al iniciar el sistema, pero no fué problema, porque lo solucioné colocando en los programas de inicio del gnome-session-manager los siguiente:

nvidia-settings -l

Este comando carga la configuración de nvidia-settings que tengamos actualmente. Es lo mismo que, una vez que haya cargado el sistema, ejecutemos en la consola éste comando, sólo que ahora se va a ejecutar apenas inicie el sistema operativo.

Otros ajustes…

Si quieren colocar un lanzador en los menús del panel de gnome deben hacer los siguiente:

$ sudo gedit /usr/share/applications/NVIDIA-Settings.desktop

Y luego insertar lo siguiente en dicho fichero:

[Desktop Entry]
Name=Configuración nVIDIA
Comment=Abre la configuración de nVIDIA
Exec=nvidia-settings
Icon=(el icono que les guste)
Terminal=false
Type=Application
Categories=Application;System;

Y ya tendrán un lanzador en los menús del panel de gnome. Una opción sería utilizar el editor de menús Alacarte.

nvidia-xconf

nvidia-xconf es una utilidad diseñada para hacer fácil la edición de la configuración de X. Para ejecutarlo simplemente debemos escribir en nuestra consola lo siguiente:

$ sudo nvidia-xconfig

Pero en realidad, ¿qué hace nvidia-xconfig? nvidia-xconfig, encontrará el fichero de configuración de X y lo modificará para usar el driver nVIDIA X. Cada vez que se necesite reconfigurar el servidor X se puede ejecutar desde la terminal. Algo interesante es que cada vez que modifiquemos el fichero de configuración de X con nvidia-xconfig, éste hará una copia de respaldo del fichero y nos mostrará el nombre de dicha copia. Algo muy parecido a lo que sucede cada vez que hacemos:

dpkg-reconfigure xserver-xorg

Una opción muy útil de nvidia-xconfig es que podemos añadir resoluciones al fichero de configuración de X simplemente haciendo:

$ sudo nvidia-xconfig --mode=1280x1024

…por ejemplo.