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.

ata3: SRST failed (errno=-16)

Recientemente ingresó a la rama experimental de Debian el kernel 2.6.33, y aprovechando la novedad, uno de los cambios que recomiendan en la distribución es dejar los viejos drivers ide y comenzar a utilizar libata tanto para dispositivos Serial ATA (SATA) como Parallel ATA (PATA).

En la mayoría de los equipos en los que lo instalé, la transición a libata no me ha dado inconvenientes mayores más que los cambios de nombre en dispositivos (en discos, de /dev/hd* a /dev/sd*, y en dvd/cd de /dev/hd* a /dev/sr*), que normalmente no necesitan modificaciones por el usuario siempre que se utilicen etiquetas o uuid para identificar las particiones.

Sin embargo en el equipo de escritorio encontré que el arranque demoraba demasiado y devolvía errores tales como:

...
ata2: SATA link down (SStatus 0 SControl 300)
ata3: link is slow to respond, please be patient (ready=0)
ata3: SRST failed (errno=-16)
ata3: link is slow to respond, please be patient (ready=0)
ata3: SRST failed (errno=-16)
ata3: link is slow to respond, please be patient (ready=0)
ata3.01: link status unknown, clearing UNKNOWN to NONE
...

continuando luego con el inicio tradicional. En tales situaciones, utilizando libata, el sistema no reconocía la unidad de dvd. Utilizando los viejos drivers ide, sin embargo, el sistema iniciaba bien y la unidad era reconocida correctamente.

Algunos foristas recomiendan cambiar parámetros de kernel, como libata.dma y otros. Sin embargo, la única solución que me ha dado resultado fue establecer las unidades PATA en modo cable-select, como lo apuntan en el 2do post de este bug report de Ubuntu. Sólo eso basta para que el sistema inicie y detecte correctamente los dispositivos.

Curioso, cuanto menos.

Cliff Click’s Crash Course in Modern Hardware

Esta presentación de Cliff Click se me había pasado, pero como la publicaron de vuelta en Slashdot, no quiero dejarla pasar otra vez.

En el JVM Languages Summit 2009, Cliff cuenta en forma amena y tocando temas de procesadores multinúcleo, ILP, pipelining y cachés, por qué la arquitectura Von Neumann ha pasado a ser una sobre-simplificación de los procesadores actuales, y cuales son los puntos clave a tener en cuenta en lo que respecta al rendimiento del código que se ejecuta. SPOILER: ya no interesa contar los ciclos por instrucción, todo se reduce a caché misses.

Las slides en InfoQ van al compás del video, una buena idea.

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/

Fabricantes de software y hardware van de la mano, por desgracia

Directo de Barrapunto:

Un usuario ha estado analizando las tablas DSDT que ofrece la BIOS dependiendo del sistema operativo que consulta. Ofrecen distintas tablas para XP/Vista, Windows 2000, 98/95… y Linux. Desafortunadamente, la que se ofrece para Linux viola la especificación de ACPI, lo que hace que las funciones de suspensión, hibernación, reinicio y otras se comporten erráticamente e incluso se produzcan bloqueos, checksum no válidos, bips continuos y kernel panics variados. Lo grave es que con un pequeño cambio para que a Linux utilice las tablas DSDT simulando ser Windows XP o Vista, el ACPI funciona casi al completo. ¿La respuesta de Foxconn? Sus productos no están certificados para Linux. Eso sí, presumen de cumplir las especificaciones ACPI y haber recibido una certificación de Microsoft.

El intercambio de emails con el fabricante de la bios no tiene desperdicio. El informe del bug en launchpad.

Slashdot también se hizo eco, aunque algunos minutos después.

Update 04/08/2008: Al final resulta que no era Foxconn la culpable! Sino la gente de AMI que les mandó un BIOS con defectos. Según el artículo, algunas placas madre de MSI y ASUS también comparten el mismo problema. Además, Foxconn ya publicó una actualización del BIOS que resuelve varios de los problemas detectados. Y, convenientemente, lo hizo en relativamente poco tiempo…

...
bad_hardware_vendors.append("foxconn")
...
bad_hardware_vendors.remove("foxconn")
bad_bios_vendors.append("ami")

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