Microsoft Logo outiside Office Al finalizar la gran demostración de Windows 8 (Windows 7 con una interfaz mas avanzada de lo que existe para Windows phone) se hablo de la posibilidad de crear aplicaciones para este sistema operativo usando HTML5 y JavaScript. Como HTML5 tiene una gran lista de características que amenazan la continuidad de Flash y Silverlight las especulaciones crecieron de manera exponencial, el pánico se extendió a través de comentarios por muchos de los foros de la comunidad de terceros y todo lo que se puede “escuchar” es rumores acerca de la muerte de Silverlight y de la plataforma .NET en favor a HTML5/Javascript.

Lo más curiso es que toda esta novela se genero luego de un comentario tal vez inofensivo de mano Julie Larson-Green quien mientras demostraba la nueva interfaz cargando una aplicacion que mostraba indicaciones del tiempo y sus pronosticos esbozo las palabras en ingles “This is written with our new development platform, which is based on HTML5 and JavaScript” ahora en español “Esta aplicación esta escrita en nuestra nueva plataforma de desarrollo que esta basada en HTML5 y Javascript” lo que ella no menciono fue que esta plataforma sera el remplazo a futuro de .NET (que quizas lo sea dependiendo de como evolucione el Internet) lo que tampoco dijo es que sera la plataforma preferida para programar en Windows 8, solo que la aplicacion que estaba mostrando fue desarrollada usando la nueva plataforma en la que estan trabajando y que entre las nuevas caracteristicas del Sistema Operativo ahora puedes usar la tecnologia web para crear aplicaciones de escritorio.

Luego de esto se han desentrañado muchas opiniones tanto oficiales como de parte de empleados de Microsoft, entre tanto la gente detras del Proyecto Jupiter ha comentado que todavia estan vigientes y trabajando para salir a la luz una vez Windows 8 salga al mercado.

Para los que no están enterados, Jupiter es una nueva librería de interfaz para Windows 8 que permitirá a los desarrolladores crear aplicaciones “inmersivas” (ni idea a que se refieren con este termino) usando un enfoque basado en XAML proveniente de las nuevas herramientas de Microsoft. Jupiter permitirá elegir varios lenguajes de programación entre ellos: C Sharp, Visual Basic, C++ y por supuesto tendrá soporte para aplicaciones nativas desarrolladas con Silverlight.

Basado en lo que pude ver de la presentación de Windows 8, Microsoft quiere competir con Google en el Nicho de los sistemas operativos basados en Web sin perder el chivo o el mecate, entre otras palabras ofrecerá soporte con esta nueva UI basada en Mango, ofrecerá esta nueva plataforma de desarrollo que permitirá Unificar el escritorio con Aplicaciones de Tecnología Web (HTML 5 / Javascript) y a su vez ofrecerá soporte a aplicaciones que no estén diseñadas con tanta novedad (En el vídeo se puede observar como Windows 8 hace un fall-back para ser compatible con aplicaciones “viejas” hasta muestra la barra del menu de inicio una vez ejecutada la aplicación) o que simplemente no compitan en este nicho definiendolo mejor como aplicaciones cuya disposición o paradigma sea imposible tener una presentación web.

Es claro que hay muchas opiniones al respecto y de gente importante en el nicho de bloggers sobre Microsoft, tambien estan las de muchos otro grupos cuyas interrogantes son validas y lamentablemente ocasionadas por la falta de comunicación que proviene desde las mas altas esferas de Microsoft, en mi opinión y dado a lo que he estado observando desde que Bill Gates dejo su puesto de CEO para dedicarse a la filantropía es que la Compañía ya no esta en postura de ataque o con rodilla en tierra como dicen por aquí, las estrategias han cambiado a patrones desconocidos y quizás pueda aceverar que dichas estrategias se han basado ultimamente en confunsión en vez de atracción por nuevos desarrollos y características de sus nuevos productos. Es lamentable ver al que una vez fue el mas grande y feroz adversario perder terreno por otras opciones, a la vez me alegro que este perdiendo terreno gracias a al impulso del Sofware Libre, es hora de aprovechar que el gigante esta tambaleando para acestar golpes que lo debiliten aun mas.

Me preocupa que dicha debilidad nos produzca retraso y quizás dirán “WTF!!”, pero mucho del impulso que ha tenido el Software Libre no solo proviene de las malas políticas de Microsoft y sus compañeros privativos, si no también por ser un adversario excelente, si somos un adversario pequeño solo nos importa mejorar y salir adelante para vencer, ahora es un tanto difícil saber que pasara una vez que hallamos derrotado al adversario y faltan algunos años para que esto sea una realidad pero lo que me no me gustaría es que se perdiera el ritmo por exceso de confianza.

Viendo esto desde otro punto de vista, si Microsoft y su equipo logran salir adelante con esto (Porque son conocidos por anunciar una cosa y publicar otra) tendrán una unificación con mucha cohesión, mayor inclusive de la que Google ha logrado con sus productos, es una batalla admirable la que estos contendientes están luchando (Google, Apple y Microsoft), con algunos anuncios de adquisiciones y modificación de posturas, Microsoft esta dejando por sentado que no quiere cometer los mismos errores que en el pasado y quiere tener posición a todo nivel ofreciendo productos de calidad y compitiendo con bajos precios (como Apple con su nueva versión de MacOS 10.7) tomando el control de todos los procesos.

Para finalizar les dejo unos videos de la Integración de estas plataformas:

Otro artículo Interesante sobre la Integración de XBox Live y Windows 8

Para reflexionar sobre todo esto, ¿Qué alternativas existen que se adapten a las 4 Libertades Básicas de la GPL que nos permitan unificar nuestra plataforma GNU/Linux con algún sistema operativo Móvil y/o plataforma de juegos o para DVR’s?, son libres de comentar al respecto.

Esta publicación toma mucho del contenido del post del amigo y entusiasta por Haiku-os Thom Holwerda en osnews acompañáda de mi opinion y otras adiciones sobre el tema.

Well, I booked my plane tickets on March, but there was some $JOB related problems, since the company where I work is facing a merge(and I was pretty sure that I will finish being unemployed), so I was really sad that I’ll have to drop my plans and loose some money, but so far everything looks ok, I’m lucky  and the government  did not approve the merge and asked for more bureaucratic  documents, this give us one year more, so I can finally say that I’ll go to DebConf11 :)

This year I’m planning to came a bit early and stay at least two days on DebCamp, my work plan is to work on pkg-boinc’s long TODO list, I’m really happy since I missed DebConf10, long time without see some Debian friends faces :)

Mi presentación ante el Grupo de Usuarios de Linux de South MIami Dade

A finales del 2006 fue la ultima vez que asistí a una reunión del grupo de usuarios de Linux (LUG por su siglas en ingles) de Miami hasta este pasado fin de semana. El grupo es un poco mas pequeño de lo que recuerdo pero las intenciones y la motivación siguen siendo las mismas.

Mi participación este pasado 11 de Junio no se limito a ser oyente, por el contrario, di una corta charla que consistió en un recuento del FUDcon de Panamá, Un servidor casero económico y diagnosticar problemas usando strace.

El tema que mas genero preguntas fue el del "Un servidor casero económico" especialmente sobre un NSLU2 que lleve para que lo vieran, algunos de los participantes no podían creer que esa cosa tan pequeña con un costo menor de $30 pudiese convertirse en un servidor web. Parte de mi charla consistió en demostrar lo que es capaz de hacer este mini NAS hackeado a mini server, así que les mostré el blog http://www.linuxevolution.org que esta corriendo sobre mi NSLU2 y además les hice una demostración de transmisión de imágenes en vivo con fotos del evento.

La charla cerro con el tema de 'Diagnosticar problemas con strace' fue la siguiente y aunque cubrí todo lo básico, me hubiese gustado haber hecho una practica sobre este tema.

Aquí les dejo un video de parte de mi presentación donde le explico a un miembro del LUG sobre el NSLU2. Me despido muy agradecido con Jonathan Respeto del southdadelug.org por su invitación a este evento y pueden descargar aqui mi presentación en formato PDF.

Si te pareció interesante este articulo, tal vez este otro también te interese: Reunión de septiembre en el LUG de Miami

El modo de single user (usuario individual) un modo en el cual un sistema operativo multi-usuarios es iniciado en modo de super usuario. Por lo general se usa para mantenimientos. En Linux es muy popular iniciar en este modo para cambiar el password del usuario.

Aquí les dejo los pasos para arrancar Fedora (y la mayoría de las distribuciones de linux) en modo single user.

  1. Al momento de arrancar presiona 'TAB' y seleccionamos el kernel desde el cual queremos arrancar en caso de que tengamos varios. deberías de ver una pantalla como esta: Seleccionamos la primera opción de arranque de Fedora Linux y presionamos la tecla e para editarla

  2. Presiona la tecla E para editar esta entrada en el menú de grub y selecciona la segunda linea, la que comienza con la palabra kernel.

    Es esta segunda linea que vamos a editar

  3. Presiona E para que puedas editar esa linea y agregar la palabra single al final de la linea.

    Asi se ve el inicio de la linea que vamos a editar en la configuración de grub

    Aquí vamos a editar los parámetros que se le pasa al kernel, podemos borrar quiet y rhgb

    Aquí vamos a editar los parámetros que se le pasa al kernel, podemos borrar quiet y rhgb

    Le pasamos el parámetro single al kernel en el grub

    Le pasamos el parámetro single al kernel en el grub

  4. Presiona ENTER para finalizar la edición de parámetros del kernel. Seguidamente presiona la tecla B para arrancar esa entrada del grub en modo single user. Como ven, ejecutando el comando who -r muestra en que nivel estamos, en este caso estamos en single.

    who -r nos muestra que estamos en single user mode

Una vez que iniciamos bajo modo single user, podemos iniciar el servicio de red ejecutando /etc/init.d/network start. Suficiente para usar fpaste y irssi y consultar cualquier duda que tengamos en el canal #fedora del servidor irc.freenode.net.

Supongamos que necesitamos soporte por que nuestra laptop no termina de iniciar. Algo que podemos hacer es iniciar en mode single user, arrancar el servicio de red y ejecutar cat /var/log/messages | fpaste luego ejecutamos irssi -c irc.freenode.net y nos unimos al canal de Fedora LATAM con el comando /j #fedora-latam, allí podemos compartir la URL que nos dio como resultado el comando fpaste.

Existe aun un nivel mas bajo que single user mode donde no se montan particiones en modo escritura. Es un nivel mucho mas básico. Para entrar en este nivel es necesario pasarle al kernel el parámetro init=/bin/bash en vez de pasarle single. Le pasamos el parámetro init con el valor /bin/bash al kernel en el grub

Un nivel mas bajo que single. Bajo init=/bin/bash el comando who no reporta en que nivel estamos. Un nivel mas bajo que single. Bajo /bin/bash el comando who no reporta en que nivel estamos


Domingo, uno de los dias de la semana que mas me gusta porque paso el tiempo dedicado a varias de mis cosas favoritas: dormir, leer, ver series / peliculas y algunas veces programo si me entusiasmo lo suficiente. Lo mejor del domingo es que no hay calendarios ni listas de tareas a seguir, el dia se toma como va llegando (1-5) y queria escribir sobre varias cosas que he venido realizando en la semana, nada estructurado o logicamente aplicable a un patron, solo aleatoriedad absoluta.

Desde el fin pasado he estado religiosamente viendo Capitulos de Haven, ya habia hablado de esto en posts anteriores y hace rato pude ver el capitulo 13 y final de la Primera temporada y quede deslumbrado por su calidad, definitivamente valido para terminar una temporada por buen camino, fue un placer ver a personajes de naturaleza pasiva revelelar su lado oscuro, asi como tambien encontrar respuestas a preguntas que desde el primer capitulo me venia haciendo, claro todo este esclarecimiento de misterios trajo a la vida a otros de mayor tamaño e intensidad, lo mejor de todo fue el final del capitulo, como audry parker reconoce quién es o quien cree ser y es abordada por otro agente del FBI quien dice ser ella misma, si este ultimo spoiler te parece totalmente incoherente te recomiendo que descargues toda la serie y mires detenidamente cada capitulo, pues si te pierdes un solo segundo tal vez quedes sin preguntas por responder.

Es realmente grato que Haven halla llenado el vacio que Stargate Universe dejo, pero no niego que me encantaria volver a ver cualquier cosa de franquicias como stargate, starwars y startrek. Cambiando el tema, otra de las actividades que ha tomado centro en mi esta semana es la creacion de Pradolabs, el blog promete, yo estoy bastante motivado a seguir escribiendo a diario para generar mas contenido que sirva para otros y el sitio promete en aceptación ya que en 3 dias de vida ha logrado ya una audiencia de Visitas diarias, poco, pero mucho para haber comensado solo hace 3 dias.

Hoy decidi tomarmelo un poco a la ligera en cuanto a la escritura, puesto que amaneci sufriendo con una vieja lecion en mi hombro lo que imposibilita un movimiento comodo a la hora de mover el mouse o simplemente pisar alguna teclas en el teclado, mi madre tambien ha comparecido ante el malestar de los riñones y segun me dice mi hermana esta confinada a su cama por el resto del dia y espero que no la semana completa, la idea de no poder salir, manejar y poder verla me entristece un poco, espero poder mover lo suficiente el hombro mañana para poder llegar a la oficina y taclear trabajo atrazado que tengo.

Dejando de lado el rant personal y dando vueltas por el internet me encontre con links interesantes, algunos videos impresionantes de la mano de THRU YOU, Noticias sobre Haven y su segunda temporada, blogs interesantes como makeusof, Electric Duncan y algunas noticias locas como que Microsoft gana mas por ingresos relacionados con Android que por su Windows Phone 7, bueno mejor dejo de escribir y me despido para darle descanso al hombro.

RVM (Ruby Version Manager) es una fantástica herramienta que te permite gestionar muchas versiones de Ruby (y de sus gemas) en un mismo equipo. Las gemas se manejan mediante contenedores (gemsets), allí puedes instalar lo que desees sin afectar el resto de los componentes. Es un principio muy parecido al de las máquinas virtuales.

La receta es para Debian pero se puede aplicar para cualquier distro, solo hay que tener en cuenta los nombres de los paquetes a instalar.

Comencemos entonces con las dependencias. Necesitamos git, las herramientas básicas para compilar, los fuentes del readline y del ssl:

# aptitude install libreadline5-dev git curl build-essential libssl-dev

Luego, como usuario ejecutamos el siguiente script:

$ bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)

Ese script descarga rvm de git, lo compila y lo instala. Antes de usarlo debemos agregar una línea a nuestro .bash_profile, para eso ejecutamos:

$ echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function' >> ~/.bash_profile

Hacemos un:

$ source ~/.bash_profile

Y verificamos que todo haya salido bien:

$ type rvm | head -1

El resultado de ese comando debería ser: rvm es una función. Si no obtenemos ese resultado algo ha ido mal. Les recomiendo entonces revisar la documentación de instalación o la página de problemas solucionados.

Ahora podemos ejecutar rvm como un comando más de consola. Instalemos un par de paquetes que nos harán falta antes de instalar una versión de Ruby:

$ rvm package install openssl
$ rvm package install readline


Instalamos una versión de Ruby (por ejemplo: 1.8.7):

$ rvm install 1.8.7

Y configuramos la versión que deseamos usar por defecto en el sistema:

$ rvm use 1.8.7 --default
Using /home/tu_usuario/.rvm/gems/ruby-1.8.7-p334


Ahora podemos crear gemsets a placer, por ejemplo:

$ rvm gemset create pruebas1
'pruebas1' gemset created (/home/tu_usuario/.rvm/gems/ruby-1.8.7-p334@pruebas1).


Notese que el @ en el mensaje anterior nos indica que el gemset ha sido asociado a la versión 1.8.7 de Ruby que habíamos instalado (y seleccionado para usar) previamente. Ahora instalemos otro gemset de pruebas para entender la magia del asunto.

$ rvm gemset create pruebas2
'pruebas2' gemset created (/home/tu_usuario/.rvm/gems/ruby-1.8.7-p334@pruebas2).


Podemos movernos a través de los gemsets usando el comando use con la siguiente forma:

$ rvm use 1.8.7@pruebas1
Using /home/tu_usuario/.rvm/gems/ruby-1.8.7-p334 with gemset pruebas1


Ahora probemos instalar una gema en el contenedor 'pruebas1':

$ gem install xml-simple --no-rdoc --no-ri
Fetching: xml-simple-1.0.15.gem (100%)
Successfully installed xml-simple-1.0.15
1 gem installed


Particularmente uso los argumentos --no-rdoc --no-ri para evitar la instalación de la documentación y otros archivos adicionales que no utilizo y demoran considerablemente la puesta a punto de la gema.

Veamos entonces qué tenemos ahora en 'pruebas1':

$ gem list --local

*** LOCAL GEMS ***

rake (0.8.7)
xml-simple (1.0.15)


Una nueva gema instalada en nuestro gemset. Y en 'pruebas2' ¿qué tenemos?:

$ rvm use 1.8.7@pruebas2
Using /home/tu_usuario/.rvm/gems/ruby-1.8.7-p334 with gemset pruebas2

$ gem list --local

*** LOCAL GEMS ***

rake (0.8.7)


¡Oh! No tenemos nada instalado. Eso quiere decir que nuestros contenedores están aislados uno del otro y que podemos instalar cosas que cada uno de ellos sin temor a romper algo en el otro (siempre teniendo cuidado del gemset que está en uso).

Si en algún momento dañamos un gemset basta con ejecutar:

$ rvm gemset delete pruebas1
WARN: Are you SURE you wish to remove the entire gemset directory 'pruebas1' (/home/tu_usuario/.rvm/gems/ruby-1.8.7-p334@pruebas1)?
(anything other than 'yes' will cancel) >


Respondemos yes y listo, desaparece el gemset con todo lo que tenía adentro.

Muy bonito todo, pero se preguntarán ¿Cómo le digo a un determinado proyecto que use un gemset específico? ¿O es que debo especificarle manualmente que gemset utilizará cada vez que vaya a ejecutarlo?

Pues la respuesta es muy simple, basta con crear un archivo .rvmrc en la raíz del proyecto con algo parecido a esto:

rvm use 1.8.7@pruebas2

Y desde ese momento, todo lo que está dentro de esa carpeta usará la versión del Ruby y el gemset especificado en el archivo.


NOTA: Es importante aclarar que Ruby, RubyGems, las gemas o cualquier otras cosa relacionada NO debe instalarse usando la paquetería de la distribución. TODO debe manejarse a través RVM, de lo contrario corromperemos toda la instalación.

Espero que esta receta les sea de utilidad, a mi me ha cambiado la vida xD

Me encanta dar buenas noticias y aprovecho para informar que ha visto la luz el blog Prado Labs. Partiendo de una iniciativa propia y por razones diversas decidi crear este espacio para dar a conocer a la comunidad de software libre hispana (o por lo menos para los que no tenian ni idea de que esta herramienta existe) las bondades del PHP Framework Prado, sus excelentes prestaciones, su facilidad de uso, su excelente documentación y las grandes cosas que se pueden hacer con el.

No me voy a dedicar explicar aquí para que sirve Prado, diríjanse al sitio y día a día (la cual es la frecuencia que estaré publicando Posts mientras la Familia/Trabajo me lo permita) para ir enterándose de sus amplias capacidades. La comunidad detrás de Prado es pequeña comparándose con otros Frameworks y busco incorporar nuevos usuarios hispano-parlantes a la mezcla, ayudar a este proyecto crecer es uno de mis objetivos de aquí en adelante porque para mi es importante ayudar compartiendo esta herramienta que me ha dado bastante de comer.

Prado no es un Framework nuevo, esta vivo desde el 2004 y ha sufrido muchos cambios en el camino así como ha superado muchos obstaculos, colaboremos y compartamos las herramientas que nos facilitarán el desarrollo del futuro. Si alguno de ustedes tiene conocimientos sobre Prado y lo ha utilizado en proyectos diversos y tiene el espiritu, las ganas y el tiempo para echarme una manito eres bienvenido, solo dejame un comentario y conversaremos. Gracias.

Hoy quiero retomar el tema del NSLU2, el tema de un servidor casero, silencioso y económico. El NSLU2 es un dispositivo que Linksys saco al mercado como un simple NAS sin muchas funciones que se diga pero gracias a esfuerzos de la comunidad se ha podido convertir en un servidor completo. Para Nosotros, los que nos gusta meterle Linux a cualquier cosa que consuma electricidad y tenga conectividad a internet le llamamos de cariño "Slug".

El Slug es una solución completa, barata para jugar con Linux embebido y lo mejor de todo es que el firmware original de Linksys usas el Kernel de Linux por lo tanto liberan el código fuente. Hoy en día aunque ya no tienen tanta actividad Unslung y OpenSlug siguen siendo las principales comunidades orientadas al NSLU2.

Debido a que ya esta descontinuado el NSLU2 no se puede comprar directo en las tiendas si en las que se puede lo cobran excesivamente caro. La solución es comprarlo por vías alternas como eBay, craigslist, etc.

Mi experiencia con el NSLU2 en cuanto a sistemas operativos se limita a Gentoo y Debian, particularmente prefiero Gentoo para este dispositivo ahora que Fedora esta empezando a desarrollar para ARM seria interesante intentar compilarlo para el NSLU2.

El NSLU2 viene limitado a correr a 133MHz pero su procesador en realidad es de 266MHz, para liberarlo es necesario eliminar un transistor. Así que sin miedo desconecten el cable de poder, abran la carcasa y eliminen este transistor:

Como servidor web con sus 266MHz (liberado desde 133MHz) y tan solo 32MB de RAM no es exactamente el tipo de servidores que usaríamos en para hostear el landing page de fedoraproyect.org o el wiki de Fedora pero si podemos tener nuestro blog personal corriendo en conjunto con otros servicios.



El NSLU2 no es la única opción en el mercado, pero es la mejor si tomamos en consideración el costo, al cabo de un anho de estar prendido 24/7 y los beneficios que obtenemos a cambio. Entre las alternativas que les puedo comentar están el DSM-G600 de D-LINK que cuesta alrededor de $50 y la primera versión del Apple TV por $110.


El DSM-G600 es rápido, tiene un procesador de 266MHZ al igual que el NSLU2 pero tiene 64MB de RAM y el almacenamiento es vía IDE en vez de USB 2.0. Lo malo de este dispositivo es que requiere de un ventilador para mantenerlo fresco y sacar el calor que genera el CPU y el disco duro en la carcasa.

La primera versión del AppleTV debería de ser mas rápida aun con su procesador de 1 GHz Intel "Crofton" Pentium M, 256 MB a 400 MHz DDR2 de memoria RAM y almacenamiento mas rápido que el NSLU2. No tengo mas que comentarles respecto a este candidato para servidor porque lo tengo corriendo con XBMC y lo tengo como media center hasta que le consiga remplazo (un google tv?).

Se le puede montar wordpress, joomla o algo así? No, créanme intente correr wordpress con 3 plugins distintos para la DB, intente usar sqlite3 y otros plugins para minimizar la carga de la DB pero no logre correr el blog que soportara mas de 3 conexiones simultaneas.

La buena noticia es que existen alternativas, en mi caso termine por usar Nanoblogger. Nanoblogger es un manejador de contenido que genera contenido estático esto reduce bastante la carga en el NSLU2.

CGI en BASH? No es tan halado de los cabellos como muchos piensan. Yo lo uso para cosas puntuales como una interfaz web para agregar artículos a Nanoblogger o mantener una URL (por ejemplo orvtech.com/ultima.bash siempre apuntando a la ultima URL que ya publicamos).

El limite de lo que puedes hacer con el NSLU2 es como el de Linux, te lo pones tu. Para mi no tiene limites, siempre hay una alternativa a lo que se puede hacer con maquinas potentes, para muestra aquí les dejo una lista de cosas interesantes que he hecho con el NSLU2:

  • Transmisión en vivo de imágenes: Con una demora de tres a cinco minutos un conjunto de scripts corriendo en el NSLU2 puede ser usado para cubrir eventos como el FLISOL, FUDcon, Google IO, eventos deportivos y convenciones en genera. La cobertura puede ser hecha por cualquiera con un dispositivo capaz de tomar fotos y enviarlas por email. Estos scripts manipulan estas imágenes insertando información relevante al evento, por ejemplo mis scripts para cubrir carreras de carros generan imágenes como esta:

    Como ven, en la parte superior tengo la fecha, hora, temperatura y presión atmosférica así como el logo en la parte inferior derecha. Puedes leer mas de este tema pinchando aquí.

  • Un puente de last.fm a gNewBook: Con un script hecho en BASH el NSLU2 puede actualizar nuestro estado en gNewBook.org con la ultima canción escuchada en nuestro perfil de last.fm. Si quieres ver el script, pincha aqui.

  • Comparte archivos vía torrents con tu propio tracker en el NSLU2: Usando bittornado podemos configurar el NSLU2 para que sea un torrent tracker. Para leer mas del tema puedes leer este articulo.

  • Un reproductor de música inalámbrico: Este articulo es una traducción de una mini-guia publicada por "POTUS Camacho", basicamente te explica como usar el NSLU2 y una tarjeta USB de bluetooh para convertir el NSLU2 en un MP3 player inalámbrico. La traducción de este articulo puede ser leída aqui.

Me ocurrió hace unos días que actualicé mi Debian y repentinamente me quedé sin conexión inalámbrica. Uso Debian Testing (Wheezy para la fecha) en una HP Pavilion dv2000 y la tarjeta de red inalámbrica es una Intel PRO/Wireless 4965 AG.

Leyendo y leyendo diferentes manuales todos afirmaban que con solo instalar el paquete firmware-iwlwifi del repo non-free la cosa funcionaba a la perfección y me constaba porque así lo había hecho en un principio. Sin embargo, luego de actualizar no anduvo más y lo curioso es que el lspci me devolvía señales de vida:

07:00.0 Network controller: Intel Corporation PRO/Wireless 4965 AG or AGN [Kedron] Network Connection (rev 61)

El paquete en efecto estaba instalado:

$ aptitude search iwl | grep ^i
i firmware-iwlwifi - Binary firmware for Intel Wireless 3945, 4


El lsmod me mostraba los módulos cargados y todo estaba bien:

$ lsmod | grep iwl
iwlagn 122417 0
iwlcore 50368 1 iwlagn
mac80211 160285 2 iwlagn,iwlcore
cfg80211 106889 3 iwlagn,iwlcore,mac80211


Incluso, los binarios del firmware también parecían estar en orden:

# find / -name "*ucode*"
/sys/module/iwlagn/parameters/ucode_alternative
/lib/firmware/iwlwifi-6050-5.ucode
/lib/firmware/iwlwifi-3945-2.ucode
/lib/firmware/iwlwifi-6000g2b-5.ucode
/lib/firmware/iwlwifi-5000-5.ucode
/lib/firmware/iwlwifi-5000-1.ucode
/lib/firmware/iwlwifi-4965-2.ucode
/lib/firmware/iwlwifi-5000-2.ucode
/lib/firmware/iwlwifi-4965-1.ucode
/lib/firmware/iwlwifi-6000-4.ucode
/lib/firmware/iwlwifi-6000g2a-5.ucode
/lib/firmware/iwlwifi-1000-3.ucode
/lib/firmware/iwlwifi-6050-4.ucode
/lib/firmware/iwlwifi-3945-1.ucode
/lib/firmware/iwlwifi-5150-2.ucode
/lib/firmware/iwlwifi-100-5.ucode


Luego intento ver el log del kernel y me encuentro con algo que me dio algunas pistas:

# tail -f /var/log/syslog
May 24 23:03:31 mpn82 kernel: [ 6214.119061] iwlagn: Intel(R) Wireless WiFi Link AGN driver for Linux, in-tree:
May 24 23:03:31 mpn82 kernel: [ 6214.119064] iwlagn: Copyright(c) 2003-2010 Intel Corporation
May 24 23:03:31 mpn82 kernel: [ 6214.119140] iwlagn 0000:07:00.0: PCI INT A -> GSI 19 (level, low) -> IRQ 19
May 24 23:03:31 mpn82 kernel: [ 6214.119153] iwlagn 0000:07:00.0: setting latency timer to 64
May 24 23:03:31 mpn82 kernel: [ 6214.119187] iwlagn 0000:07:00.0: Detected Intel(R) Wireless WiFi Link 4965AGN, REV=0x4
May 24 23:03:31 mpn82 kernel: [ 6214.157779] iwlagn 0000:07:00.0: device EEPROM VER=0x36, CALIB=0x5
May 24 23:03:31 mpn82 kernel: [ 6214.157782] iwlagn 0000:07:00.0: Device SKU: 0Xb
May 24 23:03:31 mpn82 kernel: [ 6214.157979] iwlagn 0000:07:00.0: Tunable channels: 11 802.11bg, 13 802.11a channels
May 24 23:03:31 mpn82 kernel: [ 6214.158062] iwlagn 0000:07:00.0: irq 46 for MSI/MSI-X
May 24 23:03:31 mpn82 NetworkManager[1140]: found WiFi radio killswitch rfkill4 (at /sys/devices/pci0000:00/0000:00:1c.3/0000:07:00.0/ieee80211/phy2/rfkill4) (driver )
May 24 23:03:31 mpn82 kernel: [ 6214.161805] iwlagn 0000:07:00.0: loaded firmware version 228.61.2.24
May 24 23:03:31 mpn82 kernel: [ 6214.162128] ieee80211 phy2: Selected rate control algorithm 'iwl-agn-rs'
May 24 23:03:31 mpn82 NetworkManager[1140]: SCPlugin-Ifupdown: devices added (path: /sys/devices/pci0000:00/0000:00:1c.3/0000:07:00.0/net/wlan0, iface: wlan0)
May 24 23:03:31 mpn82 NetworkManager[1140]: SCPlugin-Ifupdown: device added (path: /sys/devices/pci0000:00/0000:00:1c.3/0000:07:00.0/net/wlan0, iface: wlan0): no ifupdown configuration found.
May 24 23:03:31 mpn82 NetworkManager[1140]: (wlan0): driver supports SSID scans (scan_capa 0x01).
May 24 23:03:31 mpn82 NetworkManager[1140]: (wlan0): new 802.11 WiFi device (driver: 'iwlagn' ifindex: 6)
May 24 23:03:31 mpn82 NetworkManager[1140]: (wlan0): exported as /org/freedesktop/NetworkManager/Devices/3
May 24 23:03:31 mpn82 NetworkManager[1140]: (wlan0): now managed
May 24 23:03:31 mpn82 NetworkManager[1140]: (wlan0): device state change: 1 -> 2 (reason 2)
May 24 23:03:31 mpn82 NetworkManager[1140]: (wlan0): bringing up device.
May 24 23:03:31 mpn82 NetworkManager[1140]: (wlan0): deactivating device (reason: 2).


1.- El firmware se estaba cargando con la versión más actualizada según la página de Intel
May 24 23:03:31 mpn82 kernel: [ 6214.161805] iwlagn 0000:07:00.0: loaded firmware version 228.61.2.24

2.- Por alguna razón la interfaz se estaba apagando luego que cargaba el NetworkManager

Decidí buscar un poco en internet y me conseguí con este reporte de bug en Red Hat que involucraba al NetworkManager, la interfaz wireless y un mensaje de error muy similar al mío.

Probé entonces con:

# rfkill list
0: hp-wifi: Wireless LAN
Soft blocked: yes
Hard blocked: no
2: hp-bluetooth: Bluetooth
Soft blocked: yes
Hard blocked: no
4: phy2: Wireless LAN
Soft blocked: yes
Hard blocked: yes


Jum... phy2 y hp-wifi bloqueados por software, adicionalmente phy2 bloqueado por hardware. Raro, raro.

Hago un:

# rfkill unblock 0 && rfkill unblock 4

Y voilá, volvió a enceder el led de la interfaz inalámbrica e inmediatamente se conectó a internet :D

Cosas tontas pero que te salvan la vida. Espero que les sea de utilidad