viernes, julio 18, 2008

las malas noticias terrenales son buenas noticias de la vida eterna

Si bien me prometí no volver a escribir un tema personal en éste blog. Los eventos ocurridos hoy necesito escribirlos en algún lugar, pues claramente marcarán para siempre mi estadía en la universidad. Todo marchaba como un día normal de clases, yo trabajaba en mis cosas, cuando un amigo se me acerca y me dice con un tono algo exaltado una noticia que me dejó en shock. La verdad no sé que pasó por mi mente, se me puso en blanco, y quien sabe cual fue la cara que puse, pero inmediatamente cambiaron mis pensamientos, y mi trabajo pasó a la última prioridad. Al ser comprobar la trágica noticia, tuve que empezar a transmitirla a mis amigos. Es terrible ser el mensajero de las malas nuevas, pues notas como se transforma la cara de las personas en una que rara vez tienes la oportunidad de ver, esa transformación de cara es la peor experiencia que puedes tener., pero alguien tiene que hacerlo. Me trataron de frío, o que no sirvo para dar esa clase de noticias, pero mis acciones fueron así en el transcurso del día, y sólo logré expresar mi pena cuando quedé solo.

Este post no trata de mí, sino de mi amigo Raúl Ortega, Raulito para los amigos, Darth debian en la internet. No puedo evitar dedicarle unas palabras a quien amaba la computación más que nadie. Él era un fanático de todo lo relacionado con las artes de los bits. Fanático de Opensolaris, Linux, aparatos raros, redes, java, sun, etc. Nunca le negó ayuda a alguien, incentivó a sus amigos a participar de la causa que él creía era la mejor, participaba de una causas solidarias, y siempre estaba dispuesto a cooperar, incluso en las tareas voluntarias de operaciones, lugar donde trabajabamos juntos como ayudantes.

Su sonrisa era constante, incluso cuando relataba malos momentos como la falla fatal de su laptop el día de la flisol. Quien hubiera imaginado que dicha muerte era un cruel presagio de lo que sucedería sólo un par de meses después. De haberlo sabido, no nos hubiéramos reído de ti. Sino que compartiríamos tu pena, y te habríamos invitado a una cerveza a celebrar por la amistad, a
disfrutar la vida al máximo, a reírse de las historias y locuras compartidas mientras formamos parte de nuestro grupo de software libre, y ¿porque no?, a burlarnos del "bando contrario", una de las clásicas conversaciones que teníamos cuando sacábamos a la luz nuestro lado friki.

Si bien no conversáramos en exceso, era un buen amigo, y nos unía nuestro hobby favorito. Precisamente la última conversación con él la tuve éste fin de semana, cuando además de saludarme, me preguntó acerca de un emulador x86 que pudiera limitar la velocidad de ejecución. Me pareció rara la pregunta y le pregunté porqué quería hacer eso. Me explicó que pretendía recuperar unos computadores antiguos para instalarle debian, con el fin de darselos a los niños pobres o algo así, queda demostrado que siempre pensaba en los demás.

Para terminar, necesito escribir éstas palabras, y de la siguiente forma, como probablemente te hubiera gustado:
LinuxDiinf fue más que un grupo de compañeros de universidad en unión por la difusión del software libre, ha sido la interfaz para que implementemos cada uno la función amistad. A pesar de que tu corazón no late, siempre estarás referenciado en nuestra memoria. Además, estoy seguro que ahora resides en un espacio reservado sólo a la gente buena, y no me cabe duda que estás allí, instalando opensolaris a los sistemas de registro del cielo.

Este post va en tu honor raulito!
Tus amigos no te olvidarán.

jueves, junio 19, 2008

mi hd muere; pequeño truco para locale

Hoy en la mañana mi notebook no partió como debía, el motivo era el acuse de S.M.A.R.T. acerca del fallo inminente de mi disco duro.

me pregunté ¿que rayos pasa?, así que procedí a averiguar cual era el motivo de la falla. Tras un breve uso de google, di con la utilidad smartctl, la cual era parte del paquete smartmontools en archlinux. Luego de instalarlo ejecuté el comando

# smartctl -H /dev/sda
smartctl version 5.37 [i686-pc-linux-gnu] Copyright (C) 2002-6 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: FAILED!
Drive failure expected in less than 24 hours. SAVE ALL DATA.
Failed Attributes:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
5 Reallocated_Sector_Ct 0x0033 132 132 140 Pre-fail Always FAILING_NOW 538

Wow, ¿como puede diagnosticar un error fatal en menos de 24 horas? según leí Reallocated_Sector_Ct son los sectores remapeados debido a fallas, según entiendo los discos duros traen algunos sectores de reserva para dicho fin. Leía por ahí que un valor aceptable es un sector por mes de uso, sin embargo yo tengo 132! eso es claramente una sentencia de muerte., y por algo smart te avisa encarecidamente salvar tus cosas ahora ya!

Luego de entender el mensaje, obviamente respaldé la información mas vital para mi: mis material de la universidad, cosas personales, y , por suerte tenía casi 50G no particionados en un equipo de la casa. Ahora debo cambiar el disco duro, cuidando de no comprar nuevamente wd. Increíble que cada disco duro que me ha fallado en la vida lleva ese nombre. Anteriormente pudo ser por el tiempo, pero éste no alcanza a tener 1 año de uso.

Bueno, para que sea útil éste post, luego del respaldo, decidí eliminar mi partición de ubuntu, motivo por el que usé cfdisk. Dejo un pequeño tip para evitar las molestias que posee el locale de éste programa.

Mini tip
Esto no es precisamente un truco, pero es típico que cuando intentamos usar cfdisk en español, no podamos escribir sí con acento, y tengamos que recurrir a otras formas. Como era de esperarse, ésto ocurre sólo con el locale en español.

Para evitarlo, basta ejecutar la aplicación en inglés, cambiando el locale. Para basta ejecutar el siguiente comando:

export LANG=""; cfdisk /dev/sda

voilá, en lugar de sí, pedirá yes, absolutamente tecleable.



P.D: Si alguien conoce de ésta infomación, y puede interpretarla, dejo la salida completa:

# smartctl -a /dev/hda
smartctl version 5.37 [i686-pc-linux-gnu] Copyright (C) 2002-6 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

Smartctl open device: /dev/hda failed: No such file or directory
[root@jpmovil ~]# smartctl -a /dev/sda
smartctl version 5.37 [i686-pc-linux-gnu] Copyright (C) 2002-6 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

=== START OF INFORMATION SECTION ===
Model Family: Western Digital Scorpio family
Device Model: WDC WD1200BEVS-00LAT0
Serial Number: WD-WXE207C29
Firmware Version: 01.06M01
User Capacity: 120,034,123,776 bytes
Device is: In smartctl database [for details use: -P show]
ATA Version is: 7
ATA Standard is: Exact ATA specification draft version not indicated
Local Time is: Thu Jun 19 12:16:31 2008 CLT
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: FAILED!
Drive failure expected in less than 24 hours. SAVE ALL DATA.
See vendor-specific Attribute list for failed Attributes.

General SMART Values:
Offline data collection status: (0x00) Offline data collection activity
was never started.
Auto Offline Data Collection: Disabled.
Self-test execution status: ( 0) The previous self-test routine completed
without error or no self-test has ever
been run.
Total time to complete Offline
data collection: (6360) seconds.
Offline data collection
capabilities: (0x7b) SMART execute Offline immediate.
Auto Offline data collection on/off support.
Suspend Offline collection upon new
command.
Offline surface scan supported.
Self-test supported.
Conveyance Self-test supported.
Selective Self-test supported.
SMART capabilities: (0x0003) Saves SMART data before entering
power-saving mode.
Supports SMART auto save timer.
Error logging capability: (0x01) Error logging supported.
General Purpose Logging supported.
Short self-test routine
recommended polling time: ( 2) minutes.
Extended self-test routine
recommended polling time: ( 82) minutes.
Conveyance self-test routine
recommended polling time: ( 6) minutes.

SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x000f 200 200 051 Pre-fail Always - 0
3 Spin_Up_Time 0x0003 188 187 021 Pre-fail Always - 1583
4 Start_Stop_Count 0x0032 100 100 000 Old_age Always - 766
5 Reallocated_Sector_Ct 0x0033 132 132 140 Pre-fail Always FAILING_NOW 538
7 Seek_Error_Rate 0x000f 100 253 051 Pre-fail Always - 0
9 Power_On_Hours 0x0032 099 099 000 Old_age Always - 957
10 Spin_Retry_Count 0x0012 100 100 051 Old_age Always - 0
11 Calibration_Retry_Count 0x0012 100 100 051 Old_age Always - 0
12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 763
192 Power-Off_Retract_Count 0x0032 200 200 000 Old_age Always - 742
193 Load_Cycle_Count 0x0032 196 196 000 Old_age Always - 14174
194 Temperature_Celsius 0x0022 115 102 000 Old_age Always - 32
196 Reallocated_Event_Count 0x0032 172 172 000 Old_age Always - 28
197 Current_Pending_Sector 0x0012 200 200 000 Old_age Always - 0
198 Offline_Uncorrectable 0x0010 100 253 000 Old_age Offline - 0
199 UDMA_CRC_Error_Count 0x003e 200 200 000 Old_age Always - 0
200 Multi_Zone_Error_Rate 0x0009 100 253 051 Pre-fail Offline - 0

SMART Error Log Version: 1
No Errors Logged

SMART Self-test log structure revision number 1
No self-tests have been logged. [To run self-tests, use: smartctl -t]


SMART Selective self-test log data structure revision number 1
SPAN MIN_LBA MAX_LBA CURRENT_TEST_STATUS
1 0 0 Not_testing
2 0 0 Not_testing
3 0 0 Not_testing
4 0 0 Not_testing
5 0 0 Not_testing
Selective self-test flags (0x0):
After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.

miércoles, junio 04, 2008

¿Archlinux se está haciendo conocida?

Desde que me hablaron de Archlinux años atrás describiéndolo como "una bala" que me interesó dicha distribución. La he usado desde entonces, y gran parte del conocimiento que tengo de linux proviene de dicha distro. Sin embargo, siempre he considerado a mi distribución como marginal, pues además de algunos amigos que son usuarios, es común que cuando me piden ayuda o me comentan de una distribución, se trate de ubuntu, fedora, o la infaltable debian. Sin embargo, en el último tiempo he notado un leve aumento en la cantidad de usuarios, los cuales aprecian la supuesta ganancia de velocidad, y el hecho de estar siempre actualizados con las últimas versiones estables (hay excepciones, kde4 no se ha incluido por no ser considerada suficientemente estable. Estoy de acuerdo con eso)


El ejemplo máximo de la consideración que le esta dando la distribución de la punta de fecha, es lo que me noté hoy, al intentar crear una nueva maquina virtual en VirtualBox 1.6.0, buscando la clásica opción Linux 2.6 noté la existencia de una opción especifica para Archlinux, junto a las distribuciones "mayores", o mejor dicho populares, como ubuntu, debian y fedora. Me pareció extraño que consideraran a una distribución no popular (#20 en distrowatch).


Las distribuciones linux incluidas son las siguientes:
  • Archlinux
  • Debian
  • OpenSUSE
  • Fedora
  • Gentoo
  • Mandriva
  • Red Hat
  • Ubuntu
  • Xandros
Si bien es una gran variedad, me sorprende la ausencia de un importante veterano del ejercito del pingüino: Slackware.

¿Los motivos?
Una puede ser porque la estructura de archlinux se aleja de las demás, al "no estar basada en..." (si bien se dice que arch está basada en crux, en realidad la primera ha sido construida desde cero tomando como base las ideas de crux). Por ello quizás se ignoró el millar de distribuciones basadas en debian, pero por el mismo motivo, se debió incluir a slackware, quien tampoco está basada en alguna de las de la lista.

Quizás porque archlinux se comporta excelente en ambientes virtuales. Lo digo por experiencia: El año pasado en sistemas distribuídos ĺlegue a tener 5 archlinux corriendo simultáneamente, algunos de ellos con sun application server.
¿lo anterior no le sorprende? Es que olvide agregar que mi procesador es un humilde celeron m410. mononúcleo, sin extensiones de virtualización, etc. El que cuenta con 1.25G de memoria ram.
Recuerdo que sucedían cosas raras, como que las maquinas se colgaban en el grub si se iniciaban simultáneamente, lo que me obligaba a ejecutarlas en secuencia. Sin embargo, luego en ejecución se portaban excelentes, eran rápidas y simples de configurar, sin consumir excesivamente recursos de hardware.

Acerca de la popularidad para ser considerada, podemos experimentar con Google, donde realicé búsquedas a diversos nombres de distros, obteniendo los siguientes resultados:
1.140.000 de archlinux. (0,22 segundos)
11.100.000 de slackware. (0,17 segundos)
94.000.000 de ubuntu. (0,19 segundos)
101.000.000 de debian. (0,14 segundos)
39.600.000 de fedora. (0,12 segundos)
36.100.000 de "red hat". (0,28 segundos)
63.100.000 de solaris. (0,24 segundos)
4.610.000 de opensolaris. (0,17 segundos)
3.670.000 de xandros. (0,16 segundos)
190.000.000 de "windows vista". (0,22 segundos)
268.000.000 de "windows xp". (0,26 segundos)

Claramente las menciones en la web hacia archlinux son considerablemente menores a las de sus pares, lo que afirma la poca popularidad de la distribución. Además, hay resultados curiosos, por ejemplo podríamos concluir que Debian mas popular que Ubuntu, lo cual evidentemente no es cierto. Quizás esto se puede explicar debido a que la primera tiene muchos años de ventaja)

En fin, la pregunta queda abierta: ¿Archlinux se hace mas conocida o popular? o quizás ¿tiene una reputación que hace que se considere cada vez mas?

jueves, mayo 22, 2008

Dispositivos Bluetooth

Hace poco más de un mes recibí un presente con motivo de mi cumpleaños número 26. Éste era un teléfono movil que llego a reemplazar a mi viejo y maltratado nokia 1100. La gracia del nuevo teléfono, es que además de tener la posibilidad de ejecutar aplicaciones java para móviles, posee servicios de conectividad mediante bluetooth. El motivo de éste artículo es relatar mi experiencia al intentar utilizar el teléfono con linux, además de dar alguna ayuda a los novatos en el tema. No pretendo ahondar profundamente en conceptos técnicos, sino que lo relataré desde el punto de vista de un usuario normal de kde.

Al adquirir el teléfono, desconocía el mundo del bluetooth, sabía de la existencia de la tecnología, sus alcances, la forma en que se transmite, sin embargo desconocía los protocolos usados, y como experiencia empirica sólo tenia una partida de mario kart ds, lo cual no fue para nada suficiente para ganar conocimiento. (Maldita transparencia al usuario!). Además, como mi computadora no poseía soporte para dicha tecnología, decidí comprar un dongle usb.

La desición no fue fácil, pues a pesar de que un amigo me mencionó que la cantidad de proveedores de chipset para estándar era limitada (lo que probablemente asegurara un completo soporte por los sistemas del pingüino), no estaba seguro sobre cual comprar. Finalmente, tras una búsqueda, dí con un producto en mercado libre que mencionaba el soporte en linux. Decidí comprar éste, a pesar de ser un poco mas caro (alrededor de 12 dólares). Poseía una característica particular: Una antena, por lo cual fue fácil encontrarla en el comercio. Desconozco como soporte para otros dispositivos. Buscando en internet me enteré de la existencia de una lista de dispositivos soportados, la cual por motivos legales fue quitada (es algo extraño el mundo del estándar bluetooth). En fin, mi dispositivo es reportado así
ID 1131:1001 Integrated System Solution Corp. KY-BT100 Bluetooth Adapter y la salida de dmesg es la siguiente:
usb 1-2: new full speed USB device using ohci_hcd and address 4

usb 1-2: configuration #1 chosen from 1 choice Bluetooth: HCI USB driver ver 2.9
usbcore: registered new interface driver hci_usb

Ok, el kernel lo soporta, vamos a lo bueno: El software
Mi experiencia ha sido utilizando mi distribución oficial: Archlinux, y mi distribución de pruebas, y plataforma que me permite fácilmente satisfacer mi nuevo fetiche: las transiciones OpenGL en openoffice. Claramente hablo de Ubuntu.
En ubuntu venía casi todo el software instalado. Bastó conectar el dispositivo móvil, acoplarlo, y voilá, tenía transferencia de archivos.
En archlinux tuve que instalar el paquete kdebluetooth, el cual como dependencias instaló todo el software necesario (openobex obexftp bluez-utils). Por ésto, el procedimiento descrito es utilizando kde.
kdebluetooth es una colección de utilidades que, entre otras funciones, permite acoplar y desacoplar los dispositivos bluetooth, cambiar la visibilidad del computador, enviar archivos de forma sencilla al teléfono móvil y definir el nivel de confianza de los dispositivos. En realidad es un frontend que utiliza las herramientas de bluez, el stack del protocolo bluetooth para linux. Además de las de obex (protocolo para el intercambio de datos en dispositivos móviles)

Para acoplar el dispositivo, basta clickear en el ícono de la barra de notificicación, y luego intentar acceder al dispositivo. Al hacerlo el teléfono avisará de un intento de conexión, por lo que solicitará autorización, además de definir una contraseña llamada PIN. Al hacerlo, el sistema detecta dicha solicitud y solicita el emparejamiento mediante el ingreso del mismo PIN. Luego de ésto el dispositivo está emparejado. Algo muy agradable es que KBluetooth guarda ésta información, por lo que no será necesario volver a acoplar el sistema en usos posteriores.

Transferencia de archivos
La transferencia de archivos debiera ser la motivación principal de un usuario. En el caso de los teléfonos móviles, el protocolo que utilizan es OBEX. Existe un kioslave que transparenta el acceso mediante éste protocólo. Como ya se mencionó, al clickear en el ícono de KBluetooth, se abrirá konqueror. Si se desea utilizar otra aplicación (que soporte kioslaves) como dolphin, el método de acceso es mediante la dirección obex://[DIRECCION_DEL_DISPOSITIVO]/


Control remoto
Ok, es divertido transferir música y fotos al teléfono móvil, puede ser útil también, pero lo interesante es hacer otras gracias. Al querer un teléfono con soporte Blutetooth y JAVA, una aplicación lógica y necesaria es tener un control remoto. Nuevamente gracias al consejo de Felipe, instalé anyremote. Una aplicación que habilita un servidor en nuestro computador que escucha los comandos enviados por el cliente java (en la página web puede ser descargado dentro de un rpm).
Anyremote funciona con perfiles de aplicaciones, y vía de comandos. Pero además provee de 2 frontends escritos en python para KDE y Gnome.
KAnyRemote es el frontend para KDE, es idéntico al de gnome, lo noté porque no quería partir la versión de kde, me bajé la de gnome, la ejecuté, creó la configuración local, y luego mágicamente la versión de kde funcionó (viva la reutilización de código!). Cosas del python.
En un inicio es algo complicado de entender, pero rápidamente te das cuenta que para cambiar el perfil de la aplicación que escucha, se debe detener el servicio, seleccionar dicha aplicación, y luego encenderlo nuevamente. La gracia está en la versatilidad de la aplicación, pues además de ejecutar comandos (por ejemplo llamadas dcop), también envía "tecleos", lo que permite controlar aplicaciones como impress.
Un problema frecuente al usar éste programa por primera ves, es cuando se intenta buscar el servicio, sin éxito. Ésto se debe a que el equipo servidor debe estar visible para los demás dispositivos (se puede habilitar temporalmente habilitando el modo descubrible desde kbluetooth/configuracion/dispositivos, kbluetooth por defecto asigna 3 minutos en modo descubrible, los cuales pueden ser modificados). Luego de realizar la conexión exitosa, ésta queda guardada en el dispositivo móvil.

El control remoto en pantalla es sencillo, asociando a cada número una función, asi como modos especiales, como el de amarok, el cual muestra la carátula del disco que actualmente se reproduce, dando la posibilidad de controlar las funciones mediante el uso del pad.

En arch, conseguí anyremote mediante la compilación de los paquetes de aur: anyremote y kanyremote. En ubuntu, bastó utilizar alien para convertir los paquetes rpm proveídos en la página oficinal en .deb.


Esto fue mi breve artículo acerca de las impresiones que tengo utilizando el bluetooth. La verdad no tengo quejas, todo funciono a la primera, y rápido, sin ralentizar mi sistema, como es en el caso de windows, donde el driver es algo molesto, y la aplicación de administración que instalé es algo grande.

consejos útiles:

Si deseamos conocer todos los servicios disponibles podemos utilizar el comando
sdptool browse

Enláces útiles
Anyremote Software de control remoto
Bluez La pila oficial para el protocolo bluetooth en linux

lunes, mayo 05, 2008

todo cambió desde que llegó windows vista

¿porqué misteriosamente desde la llegada de windows vista el soporte de hardware nuevo para linux ha empeorado? ¿que característica nueva incluía dicho sistema operativo que hizo que los fabricantes cambiaran la forma de tratar su hardware?

Cuando compré mi computador, éste venía con una copia de windows xp home, me salvé por poco, porque justo ese mes empezaron a salir los computadores con vista. Curioseando por la red, encontré una nueva versión de la bios, en la cual su principal característica era que "daba soporte a windows vista" ¿porqué una bios tiene que dar soporte a un sistema operativo me pregunté? Debido a esa duda, y como todo me funcionaba bien, opté por no actualizar la bios. Sólo un tiempo después descubrí que había tomado una excelente decisión. La historia cuenta mas o menos así: Durante el año, Roberto se compró un computador acer, y a pesar de que venía con limpus linux, apenas instaló su computador, descubrió que, además de los típicos problemas de sonido, linux no monitoreaba la batería, y que tenía problemas con el acpi. El motivo: Su equipo traía una "bios vista". ¿como lo solucionó? hizo un "downgrade" de bios. Él tuvo la suerte que su computador había estado a la venta desde antes de la salida del infame sistema operativo, ¿pero que sucede con los demás?
Esa respuesta la conoció eduardo, quien luego de comprar con esfuerzo su flamante compaq serie v3000, descubrió que luego de instalarse no le funcionaba el teclado con su fedora 7. Probó con fedora 6, y al menos logró que reconociera su teclado. Recuerdo que instentamos con arch, y teníamos problemas con la X y el teclado. En fin puros problemas. Como es embajador fedora, eduardo conoce muy bien los sitios de soporte. En esos lugares, preguntó porqué le funcionaba el computador sólo con un kernel de fedora 6, y que podía hacer para utilizar el 7 (y el 8 que salía por esos tiempos). La respuesta fue que le diera un parámetro al kernel: nohz=off. A partir de ese momento, todo fue cool para él.

Me han tocado casos raros, como el computador de carolina, donde archlinux no funciona, pues no reconoce el teclado en una sesión de X, y sólo le funciona ubuntu. ¿Que rayos está pasando con el soporte de hardware que no reconoce ni los teclados? ¿es vista el responsable? ¿que demonios cambiaron que causa que no funcionen ni los teclados en linux? Sería una buena respuesta eso.

El motivo de ésta entrada, es contestarle al amigo que comentó en mi entrada entrada anterior, y dar un par de consejos que recibí de mi amigo eduardo.

El primero, y algo obvio, es consultar la internet por información acerca del soporte del hardware. Hay muchos sitios, por ahora recomiendo 2. Si conoces más, y mejores, por favor, indícalo en los comentarios, y con gusto los agrego.
Para empezar, dejaré 2 sitios, conocía otro, pero lamentablemente perdí la dirección:
http://www.linux-laptop.net/
http://smolts.org/

bonus track: La biblia :D
http://gentoo-wiki.com/Index:Hardware

De mi experiencia con hardware raro, sólo puedo aconsejar probar el paso de parámetros al kernel. Algunos parámetros útiles que me han ayudado en diferentes tipos de computadores son:

  • nohz=off
  • acpi=off
  • noapic
  • acpi=noirq