27 ene 2013

Instalación del RbPI

Antes de encender por primera vez habrá que instalar una distribución preparada y copiarla en la tarjeta SD. En la web oficial hay unas cuantas distribuciones listas para utilizar. Usaremos Debian por ser la más versátil.
Para copiar el archivo ZIP en la tarjeta SD nos bajaremos el Win32DiskImager (enlace en la web de descargas oficial) y si estamos en Linux instalamos de los repositorios el ImageWriter. Ambos programas permiten elegir el fichero bajado y copiarlo en la tarjeta SD. Son bastante intuitivos, pero si tienes alguna duda aquí están todos los pasos bien explicados.

Encendido por primera vez

Para empezar necesitaremos lo siguiente (Información extendida):
  • Raspberry Pi 
  • Fuente de alimentación(Cargador de móvil con micro USB: 5V y > 700mA).
  • Cable HDMI conectado a una pantalla.
  • Ratón y teclado USB conectados.
  • Tarjeta SD (mínimo 2GB).
  • Cable de red o Ethernet(con IP dinámicas activadas).
Una vez que lo hayamos configurado todo, lo único que necesitará es la alimentación de 700mA, todo lo demás dependerá para el uso que le demos ¿controlará un robot, servidor web (cable de red), reproductor multimedia (teclado+HDMI)…?.
Si queremos ver los pasos seguidos hasta ahora con capturas de pantalla recomiendo el nº2 de la revista MagPi (páginas 4 a 9).
Para configurar la pantalla y algún detalle más se hace con el fichero “config.txt” de la carpeta /boot/ que es accesible desde cualquier ordenador (por defecto el fichero no existe), un poco más adelante profundizaremos en este asunto.

Primeros comandos de Linux

Antes de seguir vamos a definir algún concepto básico:
  • sudo => Al poner esto al principio de un comando estaremos ejecutando el mismo con privilegios de administrador, ¡cuidado cuando lo ejecutemos!
  • # => Carácter de escape para los comentarios (igual que el // de C)
  • ssh pi@192.168.2.107 => Conexión remota al ordenador en la IP 192… con el usuario “pi“, una vez establecida la conexión (pedirá usuario y contraseña) se podrá ejecutar los comandos de la consola de Linux desde el otro ordenador como si estuviéramos usando el teclado del Raspberry Pi (es algo común a todos los Linux). En windows el programa más usado es el Putty (web oficial, descarga directa para windows).
  • Para saber más podemos buscar “comandos linux” (ejemplo, otro más completo). Algunos de los más útiles son: mv (mover), rm (borrar), ls (listar contenido carpeta), y nano (editor de textos).
Ahora supongamos que ya hemos instalado la SD y encendido el Raspberry Pi. Tras unos minutos que tarda en configurarse nos pedirá el usuario/contraseña (en Debian será pi/raspberry). Comencemos a hacer cosas:
Activar el SSH, para poder conectarnos desde otro ordenador:
1
2
sudo service ssh start
sudo insserv ssh
Cambiar la contraseña, que por defecto será “raspberry“:
1
sudo passwd pi
Apagar desde la consola (aunque al final tendremos que desconectar la alimentación):
1
sudo shutdown -h now
Espacio disponible en la tarjeta SD:
1
df -h

Configuración del hardware

Editar el fichero de inicio (ya hemos visto antes para qué servía, y el sitio con la documentación):
1
sudo nano /boot/config.txt
De lo más importante (MUY recomendable visitar la explicación extendida) a escribir en el fichero será:
1
2
3
sdtv_mode=2  # Salida analógica en formato PAL (el europeo)
hdmi_group=2 # Tipo de salida HDMI (1 por defecto): 1=CEA y 2=DMT
hdmi_mode=16 # Resolución de salida (depende del anterior)
Para saber qué formatos admite nuestra pantalla (es decir, los valores que podemos poner en hdmi_mode) ejecutaremos los siguientes comandos en la consola:
1
2
/opt/vc/bin/tvservice -m CEA
/opt/vc/bin/tvservice -m DMT
Y para saber cuál es el modo que tenemos actualmente activado:
1
/opt/vc/bin/tvservice -s

Entorno gráfico

Para usar un entorno gráfico (es decir, usar el ratón) ejecutaremos este sencillo comando:
1
startx
Si queremos que se inicie automáticamente podremos hacer lo siguiente:
1
sudo nano /etc/profile
Y añadir al final del archivo añadir una línea nueva que ponga “startx” (sin las comillas).
Si además queremos que no pida el usuario/contraseña al iniciarse podemos seguir los pasos de esta web y veremos a continuación:
1
sudo nano /etc/inittab
Buscar el siguiente texto y añadir un # delante de ella:
1
1:2345:respawn:/sbin/getty 115200 tty1
Para finalizar, escribiremos lo siguiente debajo de la línea que acabamos de comentar:
1
1:2345:respawn:/bin/login -f pi tty1 </dev/tty1 >/dev/tty1 2>&1
Pulsamos Control+X (para salir) y confirmaremos que sí queremos guardar los cambios.

Proxy

Para configurar el Proxy, imprescindible en la red de la Universidad de Oviedo, haremos lo siguiente:
1
sudo nano /etc/bash.bashrc
Y añadimos al final:
1
2
export http_proxy=http://proxy.uniovi.es:8888/
 export ftp_proxy=http://proxy.uniovi.es:8888/
Cerramos el fichero con Control+X.

Instalación de programas

La forma de proceder siempre será actualizar los paquetes, instalar las actualizaciones y luego instalar. Podemos instalar directamente si durante ese día ya hemos comprobado las actualizaciones:
1
2
sudo apt-get update
sudo apt-get upgrade
(si existen actualizaciones diremos que sí queremos ejecutarlas).
Y el siguiente comando es para instalar un programa:
1
sudo apt-get install XXXXX
Siendo XXXXX el nombre del programa a instalar.
NOTA: Si tenemos una tarjeta SD de menos de 3GB nos convendrá ejecutar “sudo apt-get clean” cada pocas instalaciones, pues nos ahorraremos unos 150-200 de megas. Si por el contrario, tenemos más de 1GB libre en la tarjeta no es necesario ejecutarlo nunca.

Españolizando el Raspberry Pi

Por defecto todo viene en inglés y los símbolos también estarán cambiados. Por ejemplo, el guión “-” se encontrará justo a la derecha del 0 (y el = a continuación), el # se encuentra en el número 3 ¡y nuestra querida eñe no está! Para solucionarlo ejecutaremos los siguientes pasos:
1
sudo dpkg-reconfigure keyboard-configuration
Yo elegí el que marca por defecto (genérico de 105 teclas), pero si conocemos el modelo de nuestro teclado podemos buscarlo en la lista, una vez elegido pulsamos ENTER para continuar. El “keyboard layout” a elegir se encuentra en “other // Spain // Spain“. Respecto al AltGr escogemos “The default for the keyboard layout” y en lo referente al Control+Alt+Retroceso recomiendo decirle que SÍ queremos asignarle la combinación de teclas (nos será muy útil si se cuelga el sistema gráfico). ENTER para finalizar.
1
sudo setupcon
Con este sencillo comando conseguimos que el arranque se efectúe rápido (en caso de no ejecutarlo el arranque se ralentiza llegando a tardar hasta 1 minuto extra mientras está en “Setting up console font and keymap“). Este comando hay que ejecutarlo siempre que reconfiguremos el teclado.
1
sudo dpkg-reconfigure tzdata
Aquí se elige el uso horario, el nuestro será Europe//Madrid. Usaremos las flechas para marcar y el ENTER para aceptar.
1
sudo dpkg-reconfigure locales
Idioma español. Elegimos es_ES.UTF-8 (pulsando espacio para que aparezca un *), y le quitamos el * al que pone en_GB. Con ENTER  aceptamos para seguir. Ahora elegimos es_ES (con las flechas, marcándolo en rojo) y terminamos con ENTER.

Finalizando

Ahora ya podremos utilizar el Raspberry Pi para lo que fue concebido originalmente (enseñar a programar, principalmente en Python, a alumnos de primaria y secundaria) pero también “jugar” con Linux sin miedo, pues como hemos visto la instalación es muy sencilla, y no perderemos ningún dato de nuestro ordenador personal si metemos la pata.
Las posibilidades de este “chisme” son casi infinitas, desde una webcam WiFi económica, hasta de servidor web, pasando por un brazo robótico avanzado y sin olvidarnos del HDMI y su capacidad de reproducir vídeos hasta 1080p ¿alguien ha dicho reproductor multimedia? ¿o qué tal una máquina recreativa?.
En los foros oficiales (en inglés, por supuesto) se encuentran miles de ideas y proyectos ya empezados. También en eLinux.org hay mucha documentación sobre el Raspberry Pi.

Extra

He publicado en mi Blog personal un manual para convertir el Raspberry Pi en un servidor web casero para alojar nuestra página web (siendo más económico que un hosting convencional).