Diez sistemas operativos en una netbook

Mi buen amigo Efraim es de esos informáticos que la tienen muy pero muy clara. Es de los administradores que hacen su trabajo con seriedad, pero de forma casi imperceptible para que las redes de las organizaciones sigan funcionando a pesar de las barbaridades que se ven en los desarrollos que corren sobre ellas (y de esas anécdotas hay para hacer un libro). Tiene, eso sí, la costumbre de exprimir al máximo todo hardware que pasa por sus manos; de hecho más de una vez lo he encontrado dejado procesando equipos una semana entera para entrenar redes neuronales.

Entre esos arranques -que a mi no se me ocurren ni por casualidad- se preguntó que tal andaría una netbook con diez sistemas operativos corriendo a la vez. Nueve Ubuntu(s), para ser preciso, virtualizados con KVM + KSM sobre un Debian que actúa de host, y todos al mismo tiempo y todos en una netbook. Contrario a lo que uno hubiera esperado, la verdad se la bancó muy bien, manteniendo responsivo el escritorio, como pueden ver por la captura de pantalla (de paso, con compiz). Allí está ingresando en uno de los virtualizados, mientras los restantes aún muestran la pantalla de inicio de sesión.

Por supuesto que no es cualquier netbook; de todas las que hay en el mercado, esta belleza de Asus [ver reviews 1 y 2] tiene un procesador de 64 bits y virtualización por hardware, lo que hace posible semejante comportamiento.

Tres soluciones al hilo

Desde hace varios días vengo anotando algunas dificultades que he tenido con linux y el hardware y que soluciones aporta la gente en foros, blogs y otros espacios (que afortunadamente google indexa). Como es de costumbre, para quedar tranquilo prefiero, antes de olvidarlas, dejarlas registradas acá.

1. En Debian/Ubuntu de 64 bits (amd64) no incia Skype, o bien el nuevo plugin de Google Talk para linux se instala pero no funciona, dando el siguiente (o similar) mensaje de error:

Inconsistency detected by ld.so: dl-open.c: 611: _dl_open: Assertion 
`_dl_debug_initialize (0, args.nsid)->r_state == RT_CONSISTENT' failed!

Esto probablemente surge debido a una incompatibilidad entre arquitecturas de las librerías de pulseaudio y puede solucionarse quitando el permiso de lectura en los archivos de 32 bits de tal librería, como se detalla en los comentarios de este post de skype. Con el plugin de google talk ocurre lo mismo, salvo que no estalla sino que “no permite usar el chat de voz y video” aunque esté instalado correctamente. Los pasos son sencillos:

# chmod a-r /usr/lib32/libpulse.so*
# chmod a-r /usr/lib32/libpulse-simple.so*

Hecho esto, es cuestión de cerrar y volver a abrir la sesión de usuario para que salgan andando ambos programas.

2. Siguiendo con temas de sonido, en equipos Dell Studio 1558 y similares con Debian/Ubuntu no funcionan las salidas de auriculares y/o el micrófono incorporado en las aplicaciones de captura de sonido (léase skype, google-talk, etc.).

En el blog stfunoob y en sathyaphoenix dan como solución especificar un parámetro adicional en la carga del módulo que controla la placa de sonido. En estas portátiles, específicamente, conviene hacer:

# echo "options snd-hda-intel model=dell-m6-dmic" > /etc/modprobe.d/alsa-dell.conf

y reiniciar el equipo o volver a cargar los módulos de sonido, lo que sea más sencillo. Con eso es posible utilizar el micrófono incorporado en la laptop en aplicaciones de voip y con la calidad que corresponde.

3. Y también en portátiles Dell Studio 1558 y similares, el cargador de arranque GRUB2 se instala correctamente, pero falla luego del reiniciar en Windows Vista/7 e impide iniciar cualquiera de los sistemas operativos instalados, dejando el equipo inutilizado con el siguiente mensaje de error:

GRUB loading.
no module name found
Aborted. Press any key to exit.

Inicialmente es posible recuperar el inicio restaurando el cargador desde un disco de Ubuntu, de rescate de Debian (el mismo disco de instalación tiene un modo “rescue”) o bien utilizando SuperGrubDisk para volver a grabar el cargador en el MBR.

Lo que ocurre aquí es una incompatibilidad entre la aplicación de copia de seguridad Dell DataSafe Backup, según está registrado en varios foros y en los bugs 441941, 482757 y 551721 de Ubuntu. Con cada reinicio de Windows, la aplicación sobreescribe cierta parte inicial del disco corrompiendo el arranque de GRUB. Hay varias alternativas de solución:

a. Generar y grabar los discos de recuperación de Dell y luego eliminar la aplicación DataSafe Backup, según lo documentado en este blog, y finalmente reinstalar GRUB2.

o bien, si no desean desinstalar el programa de backup,

b. Instalar el cargador de arranque BURG.

o bien, si no queda otra,

c. Agregar una entrada para el sistema operativo linux en el gestor de arranque de Windows Vista/7 utilizando EasyBCD.

Bien, como siempre, espero que les sea de utilidad como para mi lo han sido estas soluciones aportadas por la comunidad.

Como la vida misma

 Original de The Bizarre Cathedral por Ryan Cartwright.

tvtime + xmltv + tv_grab_ar.py

En lo que ha sido del año pasado he dedicado poco tiempo a la TV, tras advertir como se viene abajo la calidad de la programación (o como cada vez uno se pone más exquisito), me da menos ímpetu. Veo la “caja boba” por la PC, como todo el que quiere ahorrar espacio, mediante una pequeña y económica placa sintonizadora (Encore ENLTV-FM) que funciona muy bien en Linux, incluso con control remoto.

Tratando de encontrar alguna emisión como la gente por el canal de cable, hace unos meses me dediqué a hacer funcionar la información en pantalla de tvtime. Básicamente, tvtime obtiene la información de programación a partir de un archivo con formato estándar XMLTV, por lo que del lado del software de visualización está todo hecho, lo que falta es conseguir una fuente desde la cual obtener la información y entregársela de la forma adecuada (es decir, generar el archivo XML).

De eso se encargan los scripts del paquete xmltv-util. En particular, el script tv_grab_ar toma la información de mi proveedor de cable en argentina, amasa los datos y escupe un xml que se puede pasar directo a tvtime. Lamentablemente no logré hacer funcionar la versión 1.6 de tv_grab_ar tal cual viene en el paquete, y tras varios minutos haciendo debugging sobre las líneas decidí dejar de descifrar perl y comenzar a escribir un nuevo script en python.

Las primeras versiones fueron bastante sencillas, la librería BeautifulSoup lxml (BeautifulSoup ya no funciona correctamente) facilita mucho nadar en el HTML del sitio web de MC. En versiones siguientes añadí la posibilidad de descargar la reseña de cada programa de TV, una funcionalidad que según creo no estaba en el paquete original.

Básicamente los pasos son: obtener la grilla de programación de la semana actual para cada canal, y luego para cada programa obtener el título, horario, descripción, género, etc. Como la descarga de descripciones es muy tediosa y lenta (es como mínimo una petición HTTP por programa) y como muchas veces los programas se repiten (en la misma semana o entre semanas) aproveché el módulo pickle para almacenar el diccionario de emisiones entre invocaciones al script, agilizando de esta manera la actualización de los datos.

Finalmente terminé con este script que dejo en el blog por si a alguien le sirve. Las capturas de pantalla son un indicio de como tvtime presenta la información. Como siempre, cualquier consulta, sugerencia, crítica o mejora es bienvenida.

Descarga: tv_grab_ar.py [ver. 2015.03.02-1]

Últimos cambios: Fix sutil por problemas en la codificación de los títulos. Reincorporación del caché y de la descarga de descripciones de los shows. Sean pacientes pues la descarga ahora demora bastante más tiempo que antes. Si quieren la programación rápidamente, aunque no tenga las descripciones, usen –skip-descriptions. Como no tengo forma de probarlo localmente, Please Test & Give Feedback!

Instalación:

  1. Descargar tv_grab_ar.py y mover el archivo al directorio de tvtime:
    mv tv_grab_ar.py ~/.tvtime/tv_grab_ar.py
  2. Instalar la librería beautifulsoup:
    apt-get install python-beautifulsoup
  3. Instalar la librería python lxml:
    apt-get install python-lxml
  4. Ejecutar:./tv_grab_ar.py --configuree indicar la zona y los canales para los cuales se desea obtener la información. El valor de zone determina la grilla de canales según la localidad.
  5. Ejecutar:
    ./tv_grab_ar.py --verbose --output=programacion.xml

    para obtener la programación y las descripciones de los programas. Este proceso demora varios minutos, sean pacientes.

  6. Iniciar tvtime e indicar que obtenga la programación desde el archivo:
    tvtime --xmltv=programacion.xml

Para finalizar, lo ideal es colocar en el cron de usuario una entrada para ejecutar la actualización al menos una vez por semana.

usage: tv_grab_ar.py [-h] [--days N] [--offset N] [--skip-descriptions]
                     [--output FILE] [--configure] [--config-file FILE]
                     [--quiet] [--verbose] [--list-channels] [--zone N]
                     [--capabilities] [--describe] [--description]
                     [--cache FILE] [--version]

Get Argentinian television listings in XMLTV format

optional arguments:
  -h, --help           show this help message and exit
  --days N             Grab N days. The default is 3.
  --offset N           Start N days in the future. The default is to start
                       from today.
  --skip-descriptions  Do not download program descriptions.
  --output FILE        Write to FILE rather than standard output.
  --configure          Prompt for which channels and write the configuration
                       file.
  --config-file FILE   Set the name of the configuration file, the default is
                       </home/maurom/.xmltv/tv_grab_ar.conf>. This is the file
                       written by --configure and read when grabbing.
  --quiet              Suppress the progress messages normally written to
                       standard error. [not implemented]
  --verbose            Display additional information.
  --list-channels      Display only the channel listing.
  --zone N             Override user location for retrieval of channels.
  --capabilities       Show which capabilities the grabber supports. For more
                       information, see
                       <http://wiki.xmltv.org/index.php/XmltvCapabilities>
  --describe           Show a brief description of the grabber.
  --description        Show a brief description of the grabber.
  --cache FILE         Cache description data in FILE. The default is 
                       </home/maurom/.xmltv/tv_grab_ar.db>.
  --version            show program's version number and exit

Cero planificacion

Por si quedaban dudas de que estamos en un país bananero, el gobierno ahora no sabe si va a cambiar la hora este domingo 18 de octubre de 2009, pasando de GMT-3 a GMT-2. Y hoy es viernes 16. Ya el año pasado los que mantenemos sistemas informáticos aquí en Argentina tuvimos bastantes dolores de cabeza con la indecisión gubernamental, lo que llevó a una gran discusión respecto de la falta de certezas en el cambio horario. Se ve que fueron, por decirlo así, al cuete.

Pero… ¡a ver si se dejan de joder de una buena vez y ponen las cosas en claro!

Yo creo que las opciones ser dos: o mantener siempre GMT-3, o bien usar GMT-3 y pasar a GMT-4 en el otoño.

Si toca mantener un Debian/Ubuntu/loquesea, y si el gobierno decide que SI habrá cambio de huso horario, las opciones son variadas:

  • En Debian 4.0 Etch (que ya no debiera estar en producción), hasta la versión 2008e-1etch3 del paquete tzdata, no está contemplado el cambio de huso horario el domingo. El paquete del repositorio volatile, versión 2009g-0etch1, sí contempla el cambio horario a GMT-2 del domingo 18 de octubre.
  • En Debian 5.0 Lenny, hasta la versión 2009l-0lenny1, sí contempla el cambio horario el domingo.
  • En Debian Squeeze (que tampoco debiera estar en producción), hasta la versión 2009n-1, sí contempla el cambio horario el domingo.

Por otro lado, si el gobierno decide que NO habrá cambio, lo más sencillo es establecer en el servidor, mediante dpkg-reconfigure tzdata, un huso horario fijo tal como ETC/GMT+3 (sí, es +3), que corresponde al huso horario fijo constante GMT-3.

En cuanto se sepa alguna decisión coherente, actualizo el post.

Update 1: ahora me dicen que quizá el cambio se postergue… incompetencia não tem fim.

Update 2: Vuelta atrás. Ahora no hay cambio de huso horario.

Mil gracias a Marga que se encargó de corregir los paquetes tzdata para las releases etch (2009g-0etch1), lenny (2009g-0lenny1), y la rama inestable (2009n-2) de Debian.

Los improperios, como corresponde, diríjanlos a nuestros gobernantes.

X -configure

Lo olvido constantemente:

X -configure

porque tener un xorg.conf en blanco no siempre facilita las cosas.

Especialmente cuando la intención es usar una resolución específica en openbox sin depender de xrandr.

Implementación de Servidores Linux 2009

Leo en Kriptópolis que ya está disponible para descarga desde el sitio de Alcance Libre la edición de agosto septiembre del libro “Implementación de Servidores Linux 2009” de Joel Barrios Dueñas, compartido bajo licencia Creative Commons Reconocimiento – NoComercial – CompartirIgual 2.1.

El contenido del libro está basado en CentOS 4 y 5 y en sus 600 páginas comprende:

  • ¿Que es GNU/Linux?
  • Estándar de Jerarquía de Sistema de Ficheros
  • Instalación en modo texto de CentOS
  • Instalación en modo gráfico de CentOS
  • Cómo iniciar el modo de rescate en CentOS
  • Iniciando el sistema en nivel de ejecución 1 (nivel mono-usuario)
  • Cómo compilar el núcleo (kernel) de GNU/Linux en CentOS
  • Cómo gestionar espacio de memoria de intercambio (swap) en GNU/Linux
  • Procedimientos de emergencia
  • Cómo optimizar el sistema de archivos ext3
  • Cómo configurar y utilizar Sudo
  • Cómo crear cuentas de usuario
  • Breve lección de mandatos básicos
  • Funciones básicas de vi
  • Introducción a sed
  • Introducción a AWK
  • Permisos del Sistema de Ficheros
  • Cómo utilizar el mandato chattr
  • Creando depósitos yum
  • Uso de yum para instalar y desinstalar paquetería y actualizar sistema
  • Cómo utilizar RPM
  • Cómo crear paquetería con rpmbuild
  • Cómo asignar cuotas de disco
  • Introducción a TCP/IP
  • Introducción a IP versión 4
  • Cómo configurar correctamente los parámetros de red
  • Cómo configurar acoplamiento de tarjetas de red (bonding)
  • Cómo conectarse a una red Wifi desde la terminal
  • Cómo utilizar lsof
  • Cómo utilizar Netcat (nc)
  • Como utilizar Netstat
  • Cómo utilizar ARP
  • Introducción a IPTABLES
  • Cómo utilizar CBQ
  • Introducción a SELinux en CentOS 5 y Fedora
  • Cómo configurar un servidor DHCP en una LAN
  • Cómo configurar vsftpd (Very Secure FTP Daemon)
  • Cómo configurar pure-ftpd
  • Cómo configurar OpenSSH.
  • Cómo utilizar OpenSSH con autenticación a través de clave pública
  • Cómo configurar OpenSSH con Chroot
  • Cómo configurar NTP
  • Cómo configurar Clamd.
  • Cómo configurar el sistema para sesiones gráficas remotas
  • Cómo configurar un servidor NFS
  • Cómo configurar Samba básico
  • Cómo configurar Samba denegando acceso a ciertos ficheros
  • Cómo configurar Samba con Papelera de Reciclaje
  • Cómo instalar y configurar Samba-Vscan en CentOS 5
  • Cómo configurar Samba como cliente o servidor WINS
  • La ingeniería social y los [incorrectos] hábitos del usuario
  • Configuración básica de Sendmail
  • Opciones avanzadas de seguridad para Sendmail
  • Cómo configurar Sendmail y Dovecot con soporte SSL/TLS
  • Cómo configurar Cyrus IMAP
  • Instalación y configuración de SquirrelMail (correo a través de interfaz HTTP )
  • Cómo instalar GroupOffice en CentOS
  • Apéndice: Enviar correo a todos los usuarios del sistema
  • Cómo configurar clamav-milter
  • Cómo configurar spamass-milter
  • Cómo configurar un servidor NIS
  • Cómo configurar OpenLDAP como servidor de autenticación
  • Cómo configurar OpenLDAP como libreta de direcciones
  • Cómo configurar OpenLDAP con soporte SSL/TLS
  • Cómo instalar y configurar MySQL
  • Configuración básica de Apache
  • Cómo habilitar los ficheros .htaccess y SSI )Server Side Includes) en Apache
  • Cómo configurar Apache con soporte SSL/TLS
  • Cómo configurar un servidor de nombres de dominio (DNS)
  • Cómo configurar Squid: Parámetros básicos para Servidor Intermediario Proxy
  • Cómo configurar Squid: Acceso por autenticación
  • Cómo configurar Squid: Restricción de acceso a Sitios de Red
  • Cómo configurar Squid: Restricción de acceso a contenido por extensión
  • Cómo configurar Squid: Restricción de acceso por horarios
  • Cómo configurar squid con soporte para direcciones MAC
  • Apéndice: Listas y reglas de control de acceso para Squid
  • Cómo configurar un muro cortafuegos con Shorewall y tres interfaces de red
  • Cómo configurar un servidor de OpenVPN en CentOS 5
  • Cómo configurar SNMP
  • Cómo configurar MRTG
  • Cómo instalar Java 1.5 en CentOS 5
  • Cómo instalar la complemento (plug-in) Flash Player para Firefox y otros
  • Cómo configurar escáner en red
  • Usando Smartd para anticipar los desastres de disco duro
  • Cómo crear un disco con instalación personalizada de CentOS 5
  • Glosario de mandatos básicos
  • Ejercicios

En resumen: un libro más que completo.

Para quien lo desea en papel, se pueden adquirir copias impresas en Lulu.com.

Modem adventures

Dispositivos soportados en esta laptop (ECS/Uniwill L41II):

[x] Host Bridge: Intel Corporation Mobile 945GM/PM/GMS Express Memory Controller Hub... 
[x] VGA compatible controller: Intel Corporation Mobile 945GM/GMS Express IGP... 
[x] Display controller: Intel Corporation Mobile 945GM/GMS/GME, 943/940GML Express IGP... 
[x] Audio device: Intel Corporation 82801G (ICH7 Family) HDA Controller... 
[x] PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 1/2/3... 
[x] USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #1/2/3/4... 
[x] IDE interface: Intel Corporation 82801G (ICH7 Family) IDE Controller... 
[x] IDE interface: Intel Corporation 82801GBM/GHM (ICH7 Family) SATA IDE Controller... 
[x] Network controller: Intel Corporation PRO/Wireless 3945ABG [Golan]...
[x] FireWire (IEEE 1394): O2 Micro, Inc. Firewire (IEEE 1394)...
[x] SD Host controller: O2 Micro, Inc. Integrated MMC/SD Controller...
[x] Mass storage controller: O2 Micro, Inc. Integrated MS/xD Controller...
[x] Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+... 
[x] DVD-RAM writer: MATSHITADVD-RAM UJ-850S...

y ahora también:

Welcome to minicom 2.3

OPCIONES: I18n
Compilado en Feb 24 2008, 16:35:15.
Port /dev/ttySL0
Presione CTRL-A Z para obtener ayuda sobre teclas especiales
AT S7=45 S0=0 L1 V1 X4 &c1 E1 Q0
OK
ATI0
SmartLink Soft Modem
OK
ATI1
SmartLink Soft Modem, 2.9.11 Smart Link Ltd.
OK
ATI2
SmartLink Soft Modem, 2.9.11 Smart Link Ltd.
OK
ATI3
hw:0,6 alsa modem driver 
OK
ATI7
Country: ARGENTINA
OK

Efectivamente, tras una actualización de sl-modem-daemon (2.9.11~20090222-1), el modem on-board ahora funciona correctamente. No es que necesite conectarme por dial-up, pero nunca viene mal un medio de comunicación adicional.

Con esta actualización, el último dispositivo que quedaba sin funcionar en Debian ahora tiene soporte, por lo que es posible decir que, muy afortunadamente, Linux soporta ahora todos los dispositivos de esta laptop. \o/

Kernel Mode-Setting con Intel 945GM en Debian

Hoy dediqué unos minutos a probar Kernel Mode-Setting en el Debian de la laptop, aprovechando que tiene una placa de video Intel Mobile 945GM/PM/GM, que según dicen funciona razonablemente bien para KMS.

El sistema operativo de la laptop es casi en su totalidad Debian Lenny, salvo por OpenOffice, que es el 3.1 de experimental, por lo que no quería meter demasiados paquetes de otros repositorios.

Para arrancar, hace falta un kernel bastante nuevo. En inestable está el 2.6.29 que para esto viene muy bien. De paso trae soporte para ext4 y btrfs.

Posteriormente, algún servidor X.org más o menos reciente: xorg, xserver-xorg 7.4 y xserver-xorg-core 1.6.1 de unstable, más las dependencias que correspondieron (xserver-xorg-input-*, xserver-xorg-video-*, hal, console-setup, etc.).

También es necesario un driver de video intel actualizado: xserver-xorg-video-intel 2.7.0, con libdrm-intel1 y libdrm2, todo de sid. Y finalmente, para no perder la aceleración 3d, hay que actualizar libgl1-mesa-glx, libgl1-mesa-dri, libglu1-mesa y mesa-utils a la versión 7.4.

Luego de reiniciar con kernel 2.6.29 (aunque no es necesario, conviene para ver que todo ande correctamente) el pegamento que une a toda esta mezcla es crear un nuevo initrd con KMS habilitado desde el inicio, para ello, en el archivo /etc/initramfs-tools/modules hay que agregar.

# Enable Kernel Modesetting
intel_agp
drm
i915 modeset=1

Y luego regenerar el initramfs:

# update-initramfs -k `uname -r` -u

tal como se especifica en la Debian Wiki.

Como ultimo paso antes de reiniciar con KMS activado hay que editar el archivo de configuración xorg.conf, comentando todas las líneas (todas) o directamente creando un archivo xorg.conf de tamaño cero (previo backup por supuesto) pues ahora el servidor X trata de autodetectar los dispositivos existentes.

# cp /etc/X11/xorg.conf /etc/X11/xorg.conf.pre-kms
# rm /etc/X11/xorg.conf

Y listo. Reinicio y arriba KMS.

Con aceleración UXA, compiz y todo, la interfaz gráfica se siente realmente mucho más liviana, incluso mejor que sin compiz en el driver anterior, y el cambio entre terminales y la gráfica es casi imperceptible.

La verdad, es una maravilla. Mis felicitaciones a todos los que metieron código para hacer posible este avance. Esperemos que llegue pronto a las restantes placas de video.

Festival de Instalación de Software Libre FLISoL 2009

El Festival Latinoamericano de Instalación de Software Libre (FLISoL) es el evento de difusión de Software Libre más grande en Latinoamérica. Se realiza desde el año 2005 y su principal objetivo es promover el uso del software libre, dando a conocer al público en general su filosofía, alcances, avances y desarrollo. Para tal fin, las diversas comunidades locales de software libre (en cada país, en cada ciudad/localidad), organizan simultáneamente eventos en los que se instala, de manera gratuita y totalmente legal, software libre en las computadoras que llevan los asistentes. Además, en forma paralela, se ofrecen charlas, ponencias y talleres, sobre temáticas locales, nacionales y latinoamericanas en torno al Software Libre, en toda su gama de expresiones: artística, académica, empresarial y social.

El FLISOL 2009 se llevará a cabo el sábado 25 de abril. Por cuarta vez consecutiva, el UNLUX organizara la actividad en la ciudad de Luján. Este evento está dirigido a todo público, sin importar el nivel de conocimientos técnicos que se posea. Hay para todos los gustos, cultura y arte libre, licencias y derecho de autor, etc.

Este año la jornada comprenderá la instalación de software libre y se ofrecerán las charlas

  • “Instalación del sistema operativo GNU/Linux Ubuntu”
  • “Un tipo común tambien puede usar Linux”
  • “Vi/Vim no come dedos, es sólo un mito” (Vi/Vim para principiantes)
  • “Cómo meter cuatro elefantes en un fitito” (Virtualización)
    * Los títulos de las charlas pueden no ser los oficiales, sepa ud. disculpar

Agendando…

Más Info en www.installfest.info/FLISOL2009/Argentina/Lujan

Copyright © All Rights Reserved · Green Hope Theme by Sivan & schiy · Proudly powered by WordPress