Mostrando entradas con la etiqueta Pandaboard. Mostrar todas las entradas
Mostrando entradas con la etiqueta Pandaboard. Mostrar todas las entradas

martes, 24 de septiembre de 2013

Ubuntu en Pandaboard II


Problemas con las tarjetas SD en Pandaboard

En una entrada anterior explique las vicisitudes a la hora de instalar y configurar Ubuntu en Pandaboard. En un principio, las instrucciones ofrecidas resultaron ser las adecuadas, o al menos eso pude comprobar en mi caso. Todo funciono a la perfección hasta que me puse a compilar el núcleo, modificar la configuración del arranque y otros experimentos "peligrosos". Como no podía ser de otra forma, no tarde en descabalar el sistema, viéndome obligado a instalar de nuevo el sistema operativo. Fue precisamente en ese momento en el que empezaron a surgir los verdaderos problemas. La primera tarjeta que empleé, una SD de 8 Gb y que había funcionado perfectamente en una primera instalación, ahora no era ni tan siquiera detectada. El proceso que había seguido era el recomendado empleando el comando:
 

Pero por mucho que repitiera el proceso, la tarjeta no era reconocida y no se iniciaba ni tan siquiera el arranque (led STATUS1 encendido y STATUS2 apagado, en Pandaboard). El led denominado STATUS1 debería parpadear con frecuencia fija indicando 'heartbeat', mientras que el segundo debería parpadear mostrando actividad en la SD. Como es lógico intente formatear la SD con gparted y también con fdisk antes de realizar la orden dd, pero los resultados fueron igual de frustrantes. En la sección de resolución de problemas de la página de Pandaboard se nos ofrece una posible solución. En resumen, lo que nos viene a decir es que cuando aparecen problemas en la SD, lo mejor es conseguir una tarjeta nueva y empezar de cero. Al probar con una nueva tarjeta,  en este caso una de 4 Gb, la instalación funciono perfectamente. Tarde un día en cargarme la nueva instalación al intentar pasar el sistema a una memoria USB y como era previsible la nueva tarjeta SD dejo de funcionar como sustrato para una nueva instalación. Para ser exactos, hay que decir que la tarjeta dejo de funcionar solo para el propósito de instalación de la imagen prinstalada de ubuntu en Pandaboard, ya que como sistema de almacenamiento en una cámara o desde el lector de tarjetas del ordenador seguía funcionando como era de esperar.        

Después de varias horas de búsqueda había recopilado algunas de las causas comunes que podrían provocar el fallo:

  1. Insuficiente amperaje de la fuente: No es mi caso, debería funcionar con 3 amperios, la mía es de 3.8.
  2. SD incompatible: Se ha reportado cierta sensibilidad de Pandaboard con respecto al modelo de SD empleado. En principio podría ser el origen del problema que me afecta, aunque resulta extraño que funcionen bien en la primera instalación. 
  3. Imagen incorrecta: Tampoco es el caso, ya que el checksum se verificaba en  todas las imágenes.
 Siempre quedaba la posibilidad de que existiera algún daño físico, pero este caso resultaba remoto debido al comportamiento regular del fallo directamente relacionado con las tarjetas. 

Existe una asociación de empresas que establece el estándar en las tarjetas SD. Si visitamos  la página de la asociación, leeremos que los formateos ofrecidos por los distintos sistemas operativos no están optimizados para este tipo de tarjetas, pudiéndose dar "perdidas de rendimiento".  Desde la página de la asociación se ofrece un software apropiado para un correcto formateo. Por desgracia, el software solo corren bajo Windows o Mac, así que he tenido que instalarlo en una máquina virtual y formatear las tarjetas desde ella. No he podido realizar pruebas sistemáticas, pero tres tarjetas inutilizadas han sido perfectamente rehabilitadas después de formatearlas con el software mencionado.       

Doy por solucionado el problema, deduciendo que de alguna manera el formateo realizado mediante gparted o fdisk no resultan del todo adecuados para configurar una tarjeta SD y prepararla para realizar una instalación en Pandaboard. Sin miedo a tener que comprar una nueva tarjeta con cada cagada he empezado a probar distintas distros (Linaro, Kubuntu, Lubuntu)... ya solo queda configurar la pantalla táctil y empezar con las pruebas.

martes, 3 de septiembre de 2013

Ubuntu en Pandaboard







Actualmente estoy trabajando en un proyecto de desarrollo que no está directamente relacionado con la visión artificial. He tenido la fortuna de encontrar un una especie de business angel que esta apostando por algunas de mis ideas y tiene la intención de montar un pequeño departamento de I+D alrededor de algunas de ellas. De momento está afrontando todos los gastos de hardware para una idea que poco tiene que ver con la visión artificial, pero que me va a resultar muy útil para otros proyectos que sí tiene que ver con ella. Como no dispongo de tiempo para escribir, voy a utilizar el blog a modo de apunte, de esta manera dejo escrita mi experiencia que podré recuperar con solo leer el blog, si por añadidura resulta útil para alguien, pues miel sobre hojuelas. 

No puedo explicar en detalle en que consiste el proyecto, mi bussines angel esta pensando en una posible patente, por lo solo tratare temas generales. La idea incluye una parte de hardware y otra de software. Para el prototipo he decidido usar, entre otras piezas, un pandaboard que tendrá que correr con Ubuntu 12.04. Primeramente, permítanme explicar que es pandaboard y la razón de elegir esta plataforma:

Hoy en día están de moda las plataformas de bajo coste para desarrollo de hardware y software, algunos ejemplos los encontramos en Raspberry Pi, BeagelBoard o en otra línea, el famoso Arduino. PandaBoard es una más pero con unas características que la hacen más interesante para mis propósitos. Primeramente esta basada en la arquitectura OMAP 4460 que incluye un procesador doble núcleo Cortex-A9 y una GPU PowerVR SGX540. Esto le concede cierta potencia para ser un procesador encaminado a dispositivos móviles. Para conocer más detalles sobre rendimiento un buen punto de partida es la comparativa de phoronix. Como puede comprobarse, es lento comparado con la plataformas Atom de Intel pero muestra un brillante futuro para la plataforma ARM. No obstante, las pruebas realizadas en phoronix instalan el sistema en la tarjeta SD, y según parece mejora la velocidad si esto último se realiza sobre una memoria USB.  En principio, la potencia es suficiente para el propósito que me ocupa y al mismo tiempo me permitirá comprobar su uso en aplicaciones de visión artificial. No obstante, en función de los resultados, es posible que construya un segundo prototipo basado en Intel Atom ya que su eficiencia energética esta mejorando considerablemente.

El primer paso consiste en instalar Ubuntu 12.04 en PandaBoard, pero antes de nada hay que tener en cuenta que esta la plataforma no incluye fuente de alimentación. Por tanto, hay que buscar una fuente de 5 voltios y un mínimo de 3 amperios. Como es evidente, hay que tener precaución con el voltaje, un exceso podría dañar la placa, otra cosa es el amperaje, del que no debemos preocuparnos, siempre y cuando supere el mínimo, 6 amperios es recomendable si se desean usar todos los USB. No obstante hay que decir que la placa esta protegida, de tal manera que voltajes superiores a 5.35 V impiden su encendido e ilumina un led de color rojo advirtiéndonos del sobrevoltaje. 

  

 Antes de ponerse manos a la obra he necesitado los siguientes elementos:
  1. Una placa pandaboard.
  2. Una fuente de alimentación de 5V y 3.8 A.
  3. Una tarjeta SD de 8 Gb.
  4. Una pantalla/monitor con entrada HMDI.
  5. Un cable HMDI.
  6. Un cable de red.
  7. Un teclado usb.
  8. Un ratón usb.
  9. Un ordenador con lector de tarjetas SD con linux instalado.  
Mi primera intención era usar mi nuevo Acer V3-571G al que he instalado Kubuntu 13.04. Por desgracia, el lector de tarjetas no funciona bien bajo Linux, parece un bug que afecta al kernel. En cualquier caso, haciendo lspci me sale la siguiente información para el lector de tarjetas.


Como no tengo ganas de pegarme con este asunto, uso mi viejo Acer para preparar la tarjeta SD.   

 Una vez preparados todos estos elementos hay que seleccionar el sistema operativo que deseamos instalar. Para esta plataforma podemos instalar:

  • Android
  • Linux Minimal Filesystem (distribución para embebidos basada en Angström)
  • Ubuntu (a partir de la versión 10.10)
  • Linaro
Antes de continuar me gustaría comentar algo sobre Linaro. En realidad Linaro no es una distribución, sino un grupo de trabajo que intenta definir el futuro de Linux sobre ARM. A partir de Ubuntu, Android o Fedora realizan adaptaciones de dichas distribuciones para incorporar mejoras para la arquitectura de ARM. Después de echar un vistazo a su página, me queda claro que tarde o temprano tendré que probar su versión de Ubuntu. No será en esta ocasión, ya que por problemas de agenda prefiero la versión Ubuntu.

Una vez seleccionado el sistema operativo, Ubuntu en este caso, descargamos la versión que deseamos instalar en versión pre-construida, a elegir entre la dos siguientes.
La versión servidor no incluye entorno gráfico, en mi caso este es imprescindible, por lo que descargo la versión desktop. 

Realizada la descarga, hay que pasar la imagen correctamente a la tarjeta SD. Este paso, así como el previo de preparar la tarjeta, es sumamente importante. Pandaboard no dispone de memoria no volátil, no contando con ningún tipo de BIOS. Por tanto, una SD mal preparada impide el arranque del sistema. He sabido, a través de varios foros, de gente que mando su pandaboard  al fabricante pensando que estaba defectuosa, resultando finalmente producto de una tarjeta SD mal configurada que no lograba arrancar el sistema.

Yo he seguido los siguientes pasos:

  1. Primeramente, y tras introducir la tarjeta SD en el lector, averiguar cual es el dispositivo. En mi caso /dev/sdb, para tal fin se puede sacar una lista de los dispositivos con sudo fdisk -l.
  2. Mediante gparted borrar todas las particiones de la tarjeta.
  3. A continuación, ir al directorio donde descargamos la imagen de ubuntu y descomprimir la imagen. Una vez descomprimida, escribir el siguiente comando:   



Dos apuntes importantes, logicamente /dev/sdb podrá variar de un ordenador a otro. El segundo apunte quiere hacer hincapié en el echo de que debe escribirse /dev/sdb y no /dev/sdb1 o /dev/sdb2 o cualquier otro número.

 Una vez introducido el comando debemos esperar unos instantes para que la imagen se copie correctamente. Este proceso tarda unos minutos, en mi caso entre diez y quince. Finalmente la salida al comando fue:



Ahora, tan solo nos queda extraer la tarjeta e introducirla en la ranura correspondiente en nuestra Pandaboard. Antes de conectar la fuente, nos aseguramos de tener conectados los siguientes elementos:
  1. Un teclado a un puerto USB.
  2. Un cable de red ethernet a la conexión RJ45 de Pandaboard.
  3. Un ratón USB.
  4. Una pantalla con entrada HDMI.
En algunos casos puede que la pantalla no funcione, en ese caso hay una solución que debería funcionar en cualquier circunstancia. Para ello nos debemos hacer con un cable convertido USB/Serial para conectar por un Pc con nuestro pandaboard. A continuación, en el Pc se instala minicom, lo que nos permite entrar en nuestra Pandaboard

Suponiendo que la pantalla sea la adecuada, lo único que queda por hacer es conectar la fuente de alimentación y esperar. En la placa se sitúan dos leds, uno indica la actividad en la tarjeta SD, si no parpadea es que algo no esta funcionando correctamente.  Tras unos minutos deberíamos tener el sistema arrancado, luego, en modo gráfico, solo hay que seguir las sencillas instrucciones para instalar el sistema en la tarjeta SD.  

En una próxima entrada explicaré como dejar más fina la instalación.