Raspberry Pi® a fondo para desarrolladores. Derek MolloyЧитать онлайн книгу.
de host (Host Name, Advanced Options): esta opción nos permite ajustar el nombre de host del RPi en la red. Asimismo, actualiza los archivos hostname y hosts y reinicia el servicio de red:
pi@erpi ~ $ cat /etc/hostname
erpi
pi@erpi ~ $ cat /etc/hosts
...
127.0.1.1 erpi
Esta entrada significa ahora que mi placa RPi se encuentra en la dirección Zeroconf erpi.local.
❏División de memoria (Memory Split, Advanced Options): la CPU y el procesador gráfico o GPU del RPi comparten la memoria DDR de la placa. Esta opción nos permite ajustar la asignación de memoria a la GPU. En general, 64 MG suele ser una cantidad correcta. Sin embargo, si vamos a utilizar la cámara CSI del RPi deberemos aumentarla, normalmente a 128 MB (véase el capítulo 15), o bien si vamos a usar la GPU para gráficos en 3D. Este valor queda establecido durante el arranque (cuando se lee del archivo /boot/config.txt) y no se puede modificar en tiempo de ejecución.
❏SSH (Advanced Options): esta opción nos permite habilitar o deshabilitar el servidor SSH en el RPi. Obviamente, nunca deberíamos desactivar el modo SSH cuando nuestro RPi esté en modo headless, sobre todo si carecemos de un modo alternativo de conectarnos a la placa. Esta opción deshabilita el servicio SSH:
pi@erpi ~ $ systemctl status sshd
• ssh.service - OpenBSD Secure Shell server
Loaded: loaded (/lib/systemd/system/ssh.service; enabled)
Active: active (running) since Thu 2015-12-17 21:53:47 GMT
Process: 628 ExecReload=/bin/kill -HUP $MAINPID
Main PID: 492 (sshd)
CGroup: /system.slice/ssh.service
└─492 /usr/sbin/sshd -D
Las restantes opciones de la figura 2-8 modifican también el archivo /boot/config.txt y se analizan en los capítulos 6 y 8. Muchas de estas opciones exigen el reinicio del RPi para que las acciones surtan efecto, puesto que se trata de ajustes de inicialización que pasan al núcleo durante el inicio.
Actualización del software del RPi
La distribución Raspbian se puede actualizar en el RPi siguiendo unos cuantos pasos sencillos. No obstante, tenga en cuenta que algunos de ellos, la actualización en particular, pueden tardar bastante en completarse, hasta varias horas, dependiendo de lo actualizada que esté la imagen y de la velocidad de nuestra red.
Una llamada a apt update descargará las listas de paquetes desde las ubicaciones de Internet identificadas en el archivo /etc/apt/sources.list. Esta acción no instala nuevas versiones del software, sino que actualiza las listas de paquetes y sus interdependencias:
pi@erpi ~ $ sudo apt update
Get:1 http://archive.raspbian.org jessie InRelease [15.0 kB]
Hit http://archive.raspberrypi.org jessie InRelease ...
Building dependency tree Reading state information... Done
Cuando se complete esta actualización, podremos descargar e instalar automáticamente las últimas versiones del software disponible usando el comando apt upgrade. Como es lógico, deberemos siempre realizar un apt update antes de un apt upgrade:
pi@erpi ~ $ sudo apt upgrade
Reading package lists... Done Building dependency tree
Reading state information... Done Calculating upgrade... Done ...
After this operation, XXXXX B of additional disk space will be used.
Do you want to continue? [Y/n]
Existe una herramienta adicional específica para el RPi que nos permite actualizar el núcleo de Linux, los controladores y las librerías del RPi. La herramienta rpi-update puede recibir llamadas directas, sin argumentos, pero también cuenta con determinados ajustes avanzados, que se describen en github.com/Hexxeh/rpi-update. Por ejemplo, estos ajustes permiten actualizar el firmware sin tener que sustituir el núcleo:
pi@erpi ~ $ sudo apt install rpi-update
pi@erpi ~ $ sudo rpi-update
*** Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS and Dom
This update bumps to rpi-4.1.y linux tree ...
*** Updating firmware
*** Updating kernel modules
*** depmod 4.1.15-v7+
*** Updating VideoCore libraries
*** Using HardFP libraries ...
*** A reboot is needed to activate the new firmware
pi@erpi ~ $ sudo reboot
Después de reiniciar la placa, la versión actual del núcleo debería quedar alineada con el núcleo y el firmware recién instalado:
molloyd@desktop:~$ ssh [email protected]
pi@erpi ~ $ uname -a
Linux erpi 4.1.15-v7+ #830 SMP Tue Dec 15 17:02:45 GMT 2015 armv7l GNU/Linux
Salida de vídeo
La salida de vídeo del RPi se puede reconfigurar mediante la aplicación tvservice
(/opt/vc/bin/tvservice). Deberíamos conectar el cable del monitor HDMI en el RPi y utilizar la aplicación tvservice para listar los modos de conexión de la pantalla CEA (típicamente televisiones) o DMT (típicamente monitores de ordenador) conectada:
pi@erpi ~ $ tvservice --modes CEA
Group CEA has 0 modes:
pi@erpi ~ $ tvservice --modes DMT
Group DMT has 13 modes:
…
mode 51: 1600x1200 @ 60Hz 4:3, clock:162MHz progressive
mode 58: 1680x1050 @ 60Hz 16:10, clock:146MHz progressive
(prefer) mode 82: 1920x1080 @ 60Hz 16:9, clock:148MHz progressive
pi@erpi ~ $ tvservice --status
state 0x120006 [DVI DMT(82) RGB full 16:9], 1920x1080 @ 60.00Hz, progressive
Podemos fijar explícitamente la resolución del RPi con la misma herramienta. Por ejemplo, podemos actualizar la resolución de salida a un modo DVI 1600 × 1200, disponible en la lista de más arriba:
pi@erpi ~ $ tvservice --explicit="DMT 51"
Powering on HDMI with explicit settings (DMT mode 51)
pi@erpi ~ $ tvservice --status
state 0x120006 [DVI DMT (51) RGB full 4:3], 1600x1200 @ 60.00Hz, progressive
pi@erpi ~ $ fbset -depth 8 && fbset -depth 16
La última línea fuerza un refresco del buffer de cuadro o frame buffer (una área de la memoria de vídeo) para actualizar la pantalla. Después de comprobar la nueva resolución, podemos establecer de forma explícita el valor en el archivo /boot/config.txt, donde hdmi_group=1 establece un modo CEA, y hdmi_group=2 un modo DMT:
pi@erpi /boot $ more config.txt | grep ^hdmi
hdmi_group=2
hdmi_mode=51
Si no estamos usando la salida HDMI, podemos desconectarla completamente. Ello nos permitiría ahorrar una corriente de entre 25 y 30 mA.
pi@erpi ~ $ tvservice --off
Powering off HDMI
Existen herramientas adicionales también diseñadas para el RPi que permiten capturar datos de imagen y vídeo, que describiremos con detalle en el capítulo 15.
Interacción con los LED de la placa
Esta