Archivo de la categoría: Temas HW

Truco: Solucionar error rtorrent en Raspberry Pi

Estos días atrás estuve trasteando, al fin, con mi Raspberry Pi.

El puente y el post que Javier Pastor publicó en su blog, Incognitosis, me animó a dedicar un rato a montar el Raspberry Pi con un cliente Torrent, además de un MySQL para usarlo como pequeño (muy pequeño) servidor casero.

Pero tras ponerlo en funcionamiento, aprovechando un viejo disco por USB de 2.5″ que tenía por casa, terminé encontrándome con un problema al cabo de un tiempo, que provocaba que el cliente de Torrent (rtorrent) terminase fallando.

rtorrent: page allocation failure: order:3, mode:0x20

Con el problema añadido de dejar el fichero de sesiones bloqueado y no permitiendo que el script de reinicio pudiese volver a arrancarlo.

Tras investigar un poco, encontré un foro donde un usuario indicaba que el problema parecía estar en la activación (en el fichero de configuración .rtorrent.rc) del uso de DHT.

Así que ayer procedí a cambiarlo y hoy he podido comprobar, tras más de 24h encendido, que de momento el problema no se ha vuelto a reproducir.

Por cierto, acaban de anunciar que el modelo B de Raspberry Pi ha sufrido una ampliación de RAM de los 256MB a los 512MB, manteniendo el precio de 35$, lo que lo hace aún más apetecible.

Actualización: pues el error se ha reproducido, es menos habitual pero aún hay fallos. Toca seguir investigando.

 

Edito: 06 noviembre 2012

Tras investigar un poco por los foros de Raspberry, el error apunta a un problema en el kernel de linux que estamos usando o un problema con los drivers USB, que provocaría un error ante condiciones de carga de CPU y uso intensivo del disco duro:

Kernel paging error during heavy network and disk load

 

I have an external, self powered 300gb NTFS drive mounted using ntfs-3g to /mnt/sda1. I am also running rtorrent in a background screen session using the recommended init.d startup script. rtorrent is configured to use ~/rtorrent/watch and ~/rtorrent/session as it’s watch and session directories (which are located on the sd card), and /mnt/sda1/rtorrent/downloads as the primary download directory.

After 30 mins or so of downloading a single torrent at ~1MB/s,
the Raspi crashes and I get the message:

Unable to handle kernel paging request at virtual address 8e78b8a2
pgd =cb9e4000
*pgd=00000000
Internal error: Oops: 805 [#1] PREEMPT
Entering kdb (current0xca4ec520, pid 1313 Oops: (null) due to oops @ 0xc024d3d4

Incluso algún usuario apuntaba al modo ‘Turbo’ habilitado en la última versión, que haría que se usara más CPU para mejorar el tráfico de red:

setting to stabilize the official image

Please add «smsc95xx.turbo_mode=N» to /boot/cmdline.txt in the official image, it prevents the rpi from crashing under load.
Also prevents the log from filling with this:

CODE: SELECT ALL

smsc95xx 1-1.1:1.0: eth0: kevent 2 may have been dropped

by El_Presidente » Thu Aug 16, 2012 5:13 pm
OK – so I’ve done my own Googling and find that the turbo mode is meant to make the Ethernet more efficient but at the cost of using more Kernel memory. Putting this together with comments from around the Pi forum, it looks like the turbo mode grabs too much resource when heavily using the network, leading to kevent drops and page allocation issues. Others believe that because the Ethernet is effectively a port off the USB 3-port hub built into the Pi, it is flooding the whole USB subsystem, thus being a contributor to overall crap USB experience as well as kernel panic/crash.

Lo cierto es que con unas opciones u otras los errores se siguen produciendo, aunque al menos en esta última ocasión parece que con modo turbo anulado ha sido más estable y ha aguantado más tiempo en ejecución.

Virtualización (I) – Introducción & Hypervisor

Si hay un tema que en los últimos años ha ido en auge y poniéndose de moda, este ha sido el de la Virtualización y el Cloud Computing.

Primero en entornos empresariales, y desde hace unos años entornos PC para permitir que cualquier usuario doméstico pueda disfrutar de las ventajas que proporciona.

Por ello, con esta primera entrada dedicada al tema, intentaremos ofrecer una visión sobre qué es, para qué utilizarlo e incluso una guía de cómo adentrarnos en este mundillo.

1. Introducción.

La virtualización consiste en la emulación por software de un recurso físico, que puede ser una plataforma física, un dispositivo de almacenamiento o un recurso de red.

Mediante la virtualización, podemos gestionar los recursos hardware de una máquina (RAM, disco, interfaces de red, CPU…) y repartirlos entre las distintas máquinas virtuales que podamos crearnos y tener arrancadas en un equipo.

La forma de llevar a cabo esto es a través del uso de Máquinas Virtuales, que se crean y gestionan a través del software específico de virtualización ya sea en entornos PC o para entornos Servidor.

En el entorno PC el software de virtualización nos permite emular máquinas físicas, siempre con características inferiores a las de la máquina que las aloja, donde podemos instalar el mismo u otros Sistemas Operativos. De esta forma, podemos emular dentro del mismo PC segundas máquinas totalmente funcionales, con las que hacer pruebas, probar software no compatible con el sistema anfitrión, como si dispusiéramos así de más máquinas o para asegurarnos de que cualquier prueba no pueda afectar al sistema que las aloja.

Para los entorno Servidor, los objetivos principales de la virtualización son:

  • Poder crear múltiples entornos controlados y aislados, que coexistan de forma independiente.
  • Aprovechar el HW de servidores potentes, que de otra forma se verían no utilizado, al disponer múltiples máquinas sobre la misma plataforma hardware anfitriona.
  • Resolver el problema de acoplamiento entre Sistema Operativo y Hardware.
  • Proporcionar mayor flexibilidad, ya que las máquinas virtuales puede ser movidas de una máquina física a otra según las necesidades existentes en cada momento.
  • Mejorar la disponibilidad de las máquinas, ya que en caso de fallo hardware se pueden desplegar en un nuevo servidor de una forma más rápida.
  • Reducir los costes de mantenimiento, al haber menor número de servidores físicos.

¿Y cuál es el Software responsable de proporcionar esta funcionalidad en uno u otros entornos?

Al software se le conoce como Hypervisor y actualmente existen dos tipos que nos proporcionan formas distintas de llevar a cabo la virtualización.

Actualmente la virtualización se realiza mayoritariamente sobre plataforma x86, lo que ha llevado a Intel (Intel VT) y AMD (AMD-V) a optimizar sus procesadores incluyendo instrucciones orientadas a optimizar la virtualización.

2. Hypervisor

El Hypervisor es la plataforma software que nos permite crear y gestionar las máquinas virtuales, que pueden alojar distintos sistemas operativos ejecutándose de forma aislada sobre la misma plataforma hardware.

Su nombre viene del hecho de que se considera que su ejecución se realiza un nivel por encima del software supervisor, ofreciendo una plataforma hardware virtual a los SSOO huéspedes.

Es importante tener claro esto, puesto que una de sus funciones es aislar a los SSOO del hardware real y controlar el acceso a dichos recursos.

Y dentro de los Hypervisores existentes, podemos distinguir entre dos tipos, en función de cómo se ejecutan.

2.1 Tipo 1: nativounhosted o bare metal

Los Hypervisores de este tipo se ejecutan directamente sobre el hardware, con el apoyo de un SO preparado para poder iniciarse y acceder a los recursos hardware.

Dentro de este tipo podemos encontrar VMware ESXi (gratis), VMware ESX (de pago), Xen (libre), Citrix XenServer (gratis), Microsoft Hyper-V Server (gratis).

2.2 Tipo 2: hosted

En este caso, el Hypervisor requiere de un SO completo ya instalado y en ejecución.

Aquí podemos encontrar Oracle: VirtualBox (gratis), VirtualBox OSE (libre), VMware: Workstation (de pago), Server (gratis), Player (gratis), QEMU (libre), Microsoft: Virtual PC, Virtual Server.

Como podéis ver, cada tipo implica distinto funcionamiento y distintas necesidades a la hora de virtualizar, dependiendo de qué es lo que necesitemos en cada momento.

Así, el tipo 2 sería más apropiado para virtualizar en el PC de nuestra casa, pudiendo de esta forma alojar otro SO dentro de un Windows o un Linux, sin tener para ello que hacer nada más que instalar VirtualBox o VirtualPC.

Sin embargo, el tipo 1 sería más apropiado si lo que buscamos es preparar un servidor que alojará nuestras máquinas virtuales en un entorno empresarial, o como viene siendo habitual en la actualidad, para plataformas VPS de Hosting.

Más adelante hablaremos sobre estas opciones y veremos ejemplos de cómo montar nuestra plataforma de virtualización.

Configurar el TL-WA901ND en modo repetidor WIFI

Edito 2014-03-10: Este vídeo es muy ilustrativo: http://www.youtube.com/watch?v=svPB8aBXI4w

Antes de explicar como configurar el punto de acceso TL-WA901ND, vamos a ver que uso le queremos dar.

En mi casa recibo una señal wifi gratuita, del ayuntamiento, pero solo llega a una habitación. En el resto de la casa no hay forma y en los móviles, ni siquiera hay suficiente señal en esa habitación.

Así que, necesitaba un repetidor, algo que recibiese la señal y la emitiese de nuevo con mas potencia:

Esta funcionalidad es una de la que nos aporta el TP-LINK TL-WA901ND:

Es un cacharro versátil (Punto de acceso, Cliente, Universal / Repetidor WDS, Puente Inalámbrico), con una velocidad de transmisión inalámbrica de 300 Mbps, muy fácil de configurar y que incorpora PoE.

Es importante entender que lo que va a hacer este cacharro es repetir la señal de forma idéntica a la que recibe: tendrá el mismo SSID y deberemos configurar la seguridad de forma idéntica. La forma en que veremos que está funcionando será por el nivel de potencia de la señal. Si queremos ver realmente que estamos recibiendo dos señales con el mismo SSID, podemos usar la herramienta inSSIDer, que nos mostrara cada señal y la mac y marca del cacharro que la envía.

Las instrucciones son muy simples de seguir (ver el manual):

  1. Primero tendremos que ponernos con un equipo/portátil en la zona donde se recibe la señal. Podemos usar la herramienta inSSIDer para comprobar la señal que recibimos así como la marca del moden que la envía.
  2. Conectamos por cable con el TPLink.
  3. Ponemos en nuestro adaptador de red, la IP 192.168.1.100 y 255.255.255.0 como mascara.
  4. Con esto ya podemos entrar a configurarlo, poniendo en un navegador la dirección 192.168.1.254 con admin/admin
  5. En la configuración, seleccionamos el modo repetidor universal.
  6. Cambiamos el país.
  7. Le damos a «survey».
  8. Elegimos la señal a repetir.
  9. Le damos a guardar.
  10. Vamos a seguridad y ponemos la configuración necesaria para poder recibir la señal. La señal repetida usará esa misma clave para dar acceso, digamos que hace un puente, simplemente. Si la que recibimos es WPA, tendremos que configurarla en modo WPA y con la misma clave.
  11. Y ya está. Ya podemos soltar el cable de red, volver a poner la ip que tuviesemos en nuestro adaptador e irnos a la habitación a la que no llegaba la wifi para disfrutar de toda la potencia de este cacharro.

Aunque tambien te puede ocurrir que lo hayas comprado en marzo de 2012 mas o menos y no te funcione. Puede que no veas mas nivel de señal que antes, puede que con el inSSIDer no veas una wifi emitida por un TP-LINK….

Es lo que me pasó a mi. Después de hacer lo típico: reset y repetir, salir y volver a entrar, ir a tomar unas cañas a ver si a la vuelta se había arreglado solo, etc., me puse a buscar por internet.

Las respuestas mas lógicas hablaban de cambiar la configuración de la IP del cacharro, concretamente cambiando el Gateway por la ip del router que emite la señal que queremos repetir.

Esta IP suele ser la 192.168.1.1, pero se puede ver con el IP config, será de la puerta de enlace de la wifi que me esta dando IP.

Pero, esto no sirvió de nada.

Siguiente paso, el soporte y las FAQ de TP-LINK. El soporte fué rapidisimo, era un domingo y el lunes a primera hora ya me habia contestado, aunque lo habia arreglado el domingo.

Después de no encontrar nada en las FAQ, dí por hecho que algo estaba mal en el router… y me fui a mirar los firmware publicados para mi cacharro, y el último, que no era el que traía mi cacharro, pone esto:

Modifications and Bug Fixes
  1. Fixed the bug that it can’t forward multicast packets when it works in AP Client/Universal Repeater mode;
  2. Fixed the bug that only when 4 SSID are used can VLAN function take effort;
  3. Added more IGMP group to support more applications.

Seguí el procedimiento de actualización:

  1. Bajar el ficherito y descomprimirlo
  2. Volver a conectar por cable con el TPLink y volver a poner la IP en mi adaptador
  3. Entrar como admin/admin
  4. Ir a actualizar el firmware
  5. Indicarle donde esta el fichero y darle a actualizar asegurándonos que no se vaya luz durante el proceso.
  6. Por ultimo, lo resetee y repetir los pasos del 1 al 11 del principio y…
  7. Perfecto. Una señal bestial en toda la casa.

Pues ese fue todo el proceso. Con esto, ahora mismo tengo señal en todos los móviles y en el portátil, en cualquier parte de la casa.

Ah, el cacharrito cuesta unos 48€.