Compre una Raspberry Pi ¿Ahora que?

Hace tiempo compre una Raspberry Pi (de ahora en más: RPi) para mis proyectos IoT y a medida que leía sobre el tema, iban surgiendo cambios en la configuración por defecto que son necesarios, sobre todo si están conectadas al mundo exterior.

Conexiones

La Raspberry Pi (modelo B), tiene conexiones para Video (compuesto y HDMI), audio (Jack de 3.5mm), USB (x2), RJ45 (Ethernet 10/100), alimentación (microUSB) y por supuesto, los respectivos pines GPIO.

Para la alimentación, es recomendable usar una buena fuente switching de al menos 700/800 mA (reales). Los cargadores de celular pueden servir, pero la mayoría son de 500 mA y es insuficiente, causando problemas de estabilidad e incluso que la RPi directamente no encienda.

Para la salida de video se usa el conector HDMI. Si no disponemos de un monitor con esta entrada, un simple adaptador HDMI a VGA como este funciona:

Adaptador HDMI a VGA

El teclado tiene que ser USB. En este punto no hay otra opción y creo que hoy día no se venden más los teclados con ficha PS/2. En lo particular, voy a usar la RPi desde una terminal via SSH, con lo cual el teclado solo lo necesito para la configuración inicial e instalación del sistema operativo.

Instalar sistema operativo

Lo primero que hay que decidir es qué distribución de sistema operativo queremos usar. En mi caso, uso Raspbian (derivado de Debian), pero hay otras como Arch, OpenELEC, OSMC, etc. Algunas son más orientas o tienen paquetes preconfigurados para otras funciones (HTPC por ejemplo), yo solo necesito una buena distro de Linux, sólida, estable y con una excelente comunidad que la soporte.

Existe una herramienta que se llama NOOBS para los que no se animen a instalar una u otra distro por su cuenta. Lo que agrega NOOBS es una interfase gráfica en donde se puede elegir que distro instalar y luego la descarga y realiza la instalación.

Instrucciones de instalación

Tene en cuenta que el uso de la herramienta “dd” puede sobrescribir cualquier partición. Si especifica el dispositivo equivocado en las instrucciones a continuación, se puede borrar la partición primaria de Linux. Por favor, cuidado!

  • Correr df -h para ver qué dispositivos están montados actualmente.
  • Si tu computadora dispone de una ranura para tarjetas SD, inserta la tarjeta. Si no es así, inserta la tarjeta en un lector de tarjetas SD y conecta el lector a la computadora.
  • Ejecutar df -h nuevo. El nuevo dispositivo que ha aparecido es tu tarjeta SD. La columna de la izquierda da el nombre de dispositivo de la tarjeta SD; que se mostrará como /dev/mmcblk0p1 ó /dev/sdd1. La última parte (p1 o 1, respectivamente) es el número de partición pero desea escribir en toda la tarjeta SD, no sólo una partición. por lo tanto, tenés que sacarla del nombre. Por ejemplo: /dev/mmcblk0 ó /dev/SDD como el nombre del dispositivo para toda la tarjeta SD. Tené en cuenta que la tarjeta SD puede aparecer más de una vez en la salida del comando df; esto pasa si ya tenés una imagen Raspberry Pi anterior en esta tarjeta SD.
  • Ahora que anotaste lo que el nombre del dispositivo, es necesario desmontarlo para que los archivos no pueden ser leídos o escritos en la tarjeta SD mientras está copiando la imagen de la SD.
  • Ejecutar umount /dev/sdd1, reemplazando sdd1  con el nombre de dispositivo tu tarjeta SD (incluyendo el número de partición). Si tu tarjeta SD aparece más de una vez en la salida de df, debido a que tiene varias particiones, se deben desmontar todas estas particiones.
  • En la terminal, escribir la imagen en la tarjeta con el comando que se muestra más abajo, asegurándose de sustituir en el parámetro if=  con la ruta de acceso al archivo .img, y /dev/SDD en el archivo de salida of= con el nombre de dispositivo correcto. Esto es muy importante, ya que se perderán todos los datos en el disco si se proporciona el nombre del dispositivo equivocado. Asegurate de que el nombre del dispositivo es el nombre del conjunto de la tarjeta SD como se ha descrito anteriormente, no sólo una partición de la misma; por ejemplo, sdd, no sdds1 o sddp1, y mmcblk0, no mmcblk0p1.

dd bs=4M if=2016-03-18-raspbian-jessie.img of=/dev/sdd

  • Tene en cuenta que el tamaño de bloque se establece en 4M y funcionará la mayoría de las veces; si no, intenta con 1M, aunque esto llevará mucho más tiempo.
  • También tene en cuenta que si no sos root, tenés que correr este comando con sudo.
  • El comando dd no da ninguna información de progreso y puede parecer que se colgó; puede demorar más de cinco minutos para terminar de escribir en la tarjeta.
  • La tarjeta SD puede ser más grande que la imagen original, y el comando dd va a hacer una copia completa de la tarjeta. Lo que hay que hacer entonces es truncar la imagen nueva al tamaño original. Asegurate de reemplazar el valor del parámetro if= con el nombre de dispositivo correcto. Se usa diff para verificar que los archivos son idénticos.

dd bs=4M if=/dev/sdd of=from-sd-card.img
truncate --reference 2016-03-18-raspbian-jessie.img from-sd-card.img
diff -s from-sd-card.img 2016-03-18-raspbian-jessie.img

  • Ejecutar sync en la consola; Esto asegurará que la caché de escritura se vacía y que es seguro para desmontar la tarjeta SD.
  • Retira la tarjeta SD del lector de tarjetas.

Raspi Config

Bueno, ya tenemos la imagen del sistema operativo en la tarjeta SD. Solo resta colocarla en la ranura de la RPi, conectar todo (teclado, video) y darle alimentación.

raspberry_pi_sd_card

Cuando se inicia la RPi va a mostrar una pantalla similar a esta

11357993_517771471711305_1553538396_n

Luego de todo este show de caracteres (aka:  verbose boot mode) en donde se pueden ver todos los mensajes que se generan durante el proceso de boot, se muestra esta pantalla (la primera vez que arrancamos nuestra RPi)

raspi-config

Opciones de configuración

Expandir el sistema de archivos (Expand Filesystem)

Esta opción permite expandir el sistema operativo para que utilice todo el espacio disponible en la tarjeta. Como la imagen que se utiliza en la instalación de Raspbian es en general menor que el espacio disponible en la tarjeta, si usamos una SD más grande el resto del espacio estará sin utilizar. Con esta opción de configuración hacemos que Raspbian use todo el espacio disponible en la tarjeta.

Cambiar la contraseña del usuario Pi (Change User Password)

En general en sistemas Linux existen diferentes tipos de usuario. En la instalación, por defecto, vienen predeterminados los usuarios “root” y “pi”. Para el usuario “pi”, la contraseña es “raspberry”.

Esta opción permite cambiar la contraseña del usuario “pi”.

Activar el escritorio al iniciar (Enable Boot to Desktop)

Esta opción permite que la RPi después de iniciar el sistema, arranque en modo gráfico o en línea de comando. Yo la uso netamente como server por lo tanto dejo esta configuración desactivada.

Opciones de internacionalización (Internationalisation Options)

Esta opción permite modificar el idioma del sistema operativo, la zona horaria y la distribución de su teclado.

Hay otras opciones más que se pueden configurar, pero las voy a saltear para ir a algunas de las Opciones Avanzadas que para mi instalación en particular son más importantes:

  • Hostname: sirve para identificar la Raspberry Pi en la red local. Cambiarla de acuerdo a las necesidades y configuración de la LAN a la que va a estar conectada la RPi.
  • Memory Split: permite seleccionar la cantidad de memoria compartida entre la CPU y la unidad de gráficos (GPU). Como dije antes, mi RPi va a ser solo un server y no voy a usar el entorno grafico asi que cuanta más memoria disponga para el SO, mejor.
  • Enable SSH: se utiliza para acceder e la RPi remotamente desde un cliente SSH. Es imprescindible activar esta opción para acceder desde una terminal como PuTTy (en Windows) o desde otro Linux. Ya que en mi caso no tengo monitor conectado, es la única forma que tengo de acceder.
  • SPI: opción que sirve para permitir la conexión de sensores y actuadores a través del los pines GPIO de nuestra RPi. Muy interesante si querés usarla para interactuar con el mundo exterior. Leer mas…

Bueno, si llegaste hasta acá, tenés mucha paciencia y sobre todo, ganas de hacer algo que con esta mini PC 🙂

Espero tus comentarios y si algo no queda claro, estoy a disposición para ayudar a aclarar estos u otros conceptos.


Este post usa contenido de http://elinux.org/RPi_Easy_SD_Card_Setup