012
IMPORTANTE
El tamaño de la tarjeta SD debe ser, al menos, de 4 GB, pero es recomendable que llegue a los 16 GB para poder trabajar con el sistema cómodamente.
IMPORTANTE
Es importante que las tarjetas SD sean de categoría UHS I A1, o superior, ya que la velocidad de lectura, y escritura, de las mismas es un factor crucial en el rendimiento de nuestro sistema operativo. Debido a esto, es posible que al utilizar tarjetas SD antiguas el sistema vaya lento.
Enel ejercicio anterior instalamos un sistema operativo en la Raspberry Pi usando NOOBS. Es una herramienta interesante para poner en funcionamiento de manera sencilla nuestra Raspberry Pi, pero no es la manera más común, ni la más genérica y flexible. En este ejercicio, veremos cómo instalar una distribución en nuestra Raspberry de manera directa sin pasar por instaladores.
1. De manera similar a lo que hicimos con la instalación de NOOBS, descargaremos el archivo de Raspbian del sitio web https://www.raspberrypi.org/downloads/ 1, ya sea mediante el enlace directo al archivo zip, o un torrent.
2. Descomprimiremos el contenido del archivo para conseguir la imagen (.img) que contiene.
3. En este punto, deberemos seguir las instrucciones del ejercicio 10, donde vimos cómo copiar una imagen en una tarjeta SD dependiendo del sistema operativo que estemos usando.
4. Sacaremos la tarjeta SD de nuestro ordenador y la introduciremos en la Raspberry Pi. Después, conectaremos la Raspberry Pi a un monitor, un teclado, un ratón y, finalmente, a la corriente para encenderla.
NOTA. De igual manera que con la instalación de NOOBS, en las últimas versiones de Raspbian este proceso se ha simplificado notablemente, por lo que aquí exponemos la versión «larga» para mantener la compatibilidad con versiones anteriores.
5. a. En el caso de usar una versión de Raspbian antigua:
• Al arrancar el sistema nos aparecerá la pantalla raspi-config, un sistema de configuración de Raspbian.
• Lo primero que haremos será ir a la opción expand filesystem 2. Esta opción hará que podamos trabajar con todo el espacio disponible en nuestra tarjeta SD.
• En la opción change user password podremos modificar los datos de nuestro usuario si no deseamos tener los datos por defecto que trae Raspbian.
• Si queremos que Raspbian arranque directamente en una ventana de escritorio, y no en una consola de texto, se lo deberemos indicar en la opción Enable Boot to Desktop/Scratch 3.
• En el menú Internationalisation Options 4 podremos modificar la configuración regional de nuestra Raspberry Pi, como, por ejemplo, el idioma, la franja horaria y la distribución del teclado.
• Al acabar con nuestra configuración básica, pulsaremos la opción de finalizar, y reiniciaremos nuestra Raspberry Pi.
b. En el caso de usar una versión reciente (actualmente llamada Buster):
• Al arrancar el sistema se iniciará directamente el entorno gráfico, hará la expansión del sistema, y nos hará diversas preguntas sobre el país, la zona horaria y la configuración del teclado (lo que eran las antiguas Internationalisation Options).
• Nos preguntará los datos para la red WiFi en caso de usarla, y nos permitirá hacer automáticamente una actualización del sistema.
• Todas las opciones que desaparecen en esta nueva versión siguen estando disponibles desde el comando raspi-config, o la aplicación gráfica de configuración de Raspbian.
013
Actualmente, prácticamente todos los sistemas operativos que funcionan con Raspberry Pi están basados en Linux. Por este motivo, es muy importante disponer de cierto dominio de este sistema al adentrarnos en el mundo de Raspberry Pi. Linux (en realidad, Linux sería el núcleo, ya que el nombre correcto del sistema completo es GNU/Linux) es un programa de software libre creado por Linus Torvalds en 1991. Aprender Linux en profundidad a nivel teórico y práctico exige mucho tiempo de práctica, pero dominar su uso a nivel de usuario, para llevar a cabo las tareas más habituales, es perfectamente asumible para el usuario medio. En este ejercicio, vamos a dar los primeros pasos ante un terminal de GNU/Linux, y aprenderemos sus conceptos básicos.
1. Para acceder al terminal de Linux desde el entorno gráfico de Raspbian deberemos ir a Menú/ Accesorios y abrir la aplicación LXTerminal. Al abrirla, nos encontraremos con el llamado prompt (pi@raspberrypi ~ $), que nos indicará que el sistema estará listo para aceptar comandos 1.
2. La mayor parte de los comandos de un sistema operativo servirán para recorrer la estructura de directorios, y la manipulación de los ficheros que se podrán encontrar en ellos. En este ejercicio haremos un repaso de los comandos más tipicos para cumplir este objetivo:
ls. El comando ls permite listar el contenido de un directorio o fichero 2. La sintaxis es:
$ ls directorio
El comando ls tiene varias opciones que permiten organizar la salida, lo que resultará particularmente útil cuando sea muy grande. Por ejemplo, podremos usar -a para mostrar los archivos ocultos, y -l para mostrar los usuarios, permisos y la fecha de los archivos. Estas opciones podrán combinarse también de la siguiente forma:
$ ls -la /home/pi
pwd. El comando pwd imprimirá nuestra ruta o ubicación al instante de ejecutarlo. Así, evitaremos perdernos si estamos trabajando con múltiples directorios y carpetas. Su sintaxis es:
$ pwd
clear. El comando clear limpiará nuestra terminal por completo. Para ello, ejecutaremos:
$ clear
cat. La utilidad cat nos permitirá visualizar el contenido de un archivo de texto 3 sin la necesidad de un editor. Para utilizarlo, solo deberemos mencionarlo junto al archivo que deseemos visualizar:
$ cat prueba.txt
touch. El comando touch 4 crea un archivo vacío. Si el archivo existe actualiza la hora de modificación. Para crear el archivo prueba1.txt en /home escribiremos:
$ touch /home/pi/prueba1.txt
IMPORTANTE
El núcleo (kernel) de un sistema operativo es la parte fundamental del sistema. Se encarga de proporcionar acceso del software al hardware, y gestiona los recursos de la manera más óptima posible.
IMPORTANTE
Software libre 5 es la denominación del software que respeta la libertad de todos los usuarios que adquirieron el producto y, por tanto, una vez obtenido el mismo, puede ser usado, copiado, estudiado, modificado, y redistribuido libremente de varias formas.
014
Continuando con el ejercicio anterior, vamos a seguir viendo los comandos básicos con los que navegar por el sistema de archivos 1 de Linux, además de aprender su uso.
mkdir. El comando mkdir crea un directorio nuevo tomando en cuenta la ubicación actual. Por ejemplo, si estás en /home/pi, y deseas crear el directorio ejercicios ejecutaremos:
$ mkdir /home/pi/ejercicios
mkdir tiene una opción bastante útil que permite crear un árbol de directorios completo desde cero. Para ello, usaremos la opción -p:
$ mkdir -p /home/pi/ejercicios/prueba/uno/dos/tres
cd. El comando cd, como su nombre indica, lo usaremos para acceder a una ruta distinta de la actual. Por ejemplo, si estamos en el directorio /home, y deseamos acceder a /home/pi/ejercicios, escribiremos:
$ cd /home/pi/ejercicios
Si estamos en /home/pi/ejercicios, y deseamos subir un nivel (es decir, ir al directorio /home/pi) ejecutaremos:
$ cd ..
cp. El comando cp 2 copia un archivo o directorio de origen a un archivo o directorio de destino. Por ejemplo, para copiar el archivo prueba.txt, ubicado en /home/pi, a un directorio de respaldo, podremos usar:
$ cp /home/prueba.txt /home/respaldo/prueba.txt
En la sintaxis siempre se especificará primero el origen y luego el destino. Si indicamos un nombre de destino diferente, cp copiará el archivo o directorio con el nuevo nombre.
El comando también contará con la opción -r, que copia no solo el directorio especificado, sino todos sus directorios internos de forma recursiva. Suponiendo que deseamos hacer una copia del directorio /home/pi/ejercicios, que a su vez tiene las carpetas ejercicio1 y ejercicio2 en su interior, en lugar de ejecutar un comando para cada carpeta, ejecutaremos:
$ cp -r /home/pi/ejercicios /home/pi/respaldos/
mv. El comando mv mueve un archivo a una ruta específica y, a diferencia de cp, lo elimina del origen finalizada la operación. Por ejemplo, podremos escribir:
$ mv /home/pi/prueba.txt /home/pi/respaldos/prueba2.txt
Al igual que cp, en la sintaxis se especifica primero el origen y luego el destino. Si indicamos un nombre de destino diferente, mv moverá el archivo o directorio con el nuevo nombre.
rm. El comando rm borra un archivo o directorio. Para borrar el archivo prueba.txt, ubicado en / home/pi, ejecutaremos:
$ rm /home/prueba.txt
Este comando también presentará varias opciones. La opción -r borrará todos los archivos y directorios de forma recursiva. Por otra parte, -f borrará todo sin pedir confirmación. Estas opciones podrán combinarse causando un borrado recursivo y sin confirmación del directorio que se especifique. Para realizar esto en el directorio de respaldos ubicado en /home/pi usaremos:
$ rm -fr /home/respaldos
IMPORTANTE
Existe un comando llamado man 3 que nos permitirá mostrar la documentación completa de cada comando. Por ejemplo, si queremos ver todos los detalles y opciones del comando ls, escribiremos:
$ man ls
IMPORTANTE
Rm es un comando muy peligroso 4, ya que, mal usado, puede borrar todo nuestro sistema y nuestros documentos. Por tanto, es importante que nos documentemos bien acerca de los efectos de estas opciones en nuestro sistema para, así, evitar consecuencias nefastas.
015
IMPORTANTE
En este ejercicio se comentarán conceptos referentes a los usuarios y los grupos, aunque esto lo abordaremos con más detalle en el ejercicio 16, dedicado a la gestión de usuarios.
Después de aprender cómo movernos por la estructura de directorios, ahora vamos a explorar la gestión de ficheros desde la consola de Linux. En los sistemas Linux los archivos pertenecen al usuario que los crea y, por tanto, ese usuario es el único que puede usarlos (modificarlos, borrarlos, ejecutarlos, etc.). Sin embargo, existe una excepción, el llamado usuario root o superusuario, que tiene garantizado el acceso a todo el sistema sin restricciones.
1. Para conocer el propietario y los permisos de un archivo, o directorio, ejecutaremos el comando ls -la. Esto nos permitirá ver no solo el listado de archivos, sino todos sus atributos y su propietario 1.
La salida será del tipo: [Atributos] [Dueño] [Grupo] [Tamaño] [Fecha creación] [Nombre del fichero].
2. El primer campo serán los atributos. Para entender su funcionamiento seguiremos el siguiente esquema:
• El primer carácter definirá si el archivo es un directorio (d), un enlace (l) o un fichero (-).
• Los siguientes atributos serán nueve caracteres, agrupados de 3 en 3, donde cada símbolo significará:
• r (read). Permiso de lectura.
• w (write). Permiso de escritura.
• x (execute). Permiso de ejecución.
• Los primeros 3 caracteres se corresponderán a los permisos del dueño del archivo, los 3 siguientes a los miembros del mismo grupo definido, y los 3 últimos al resto de usuarios.
3. Vamos a ilustrar lo expuesto con un ejemplo. Imaginemos que tenemos un archivo llamado documento.txt con los siguientes atributos: (-rwxr-xr--). El propietario tiene permisos de lectura, escritura y ejecución (para poder borrarlo, por ejemplo). El grupo del propietario tiene permisos de lectura y ejecución (-rwxr-xr--), y el resto de usuarios solo de lectura (-rwxr-xr--).
4. Para cambiar el propietario de un fichero usaremos el comando chown [usuario] [fichero] 2, y para modificar el grupo usaremos el comando chgrp [grupo] [fichero] 3.
5. Si queremos cambiar los permisos de un archivo utilizaremos el comando chmod [u|g|o|a] [+|-] rwx. El primer valor se referirá a la modificación de los permisos para el propietario [u], el grupo [g], el resto de usuarios [o], o a todos [a]. El segundo valor indicará los permisos a modificar: el símbolo más [+] indicará que queremos añadir los permisos, y el símbolo menos [-] que los eliminaremos 4.
Veamos un ejemplo:
El comando chmod o+r-wx documento.txt nos indica que queremos modificar los permisos para el resto de usuarios (que no son propietarios ni pertenecen al grupo) añadiendo el permiso de lectura, y eliminando el permiso de escritura y ejecución.
016
IMPORTANTE
Por encima de todos los usuarios del sistema existe el llamado superusuario o root, que tiene todos los privilegios, y puede hacer cualquier cosa en el sistema. En nuestra rutina no hace falta que accedamos al sistema con este usuario, ya que este solo será requerido para acciones que impliquen modificaciones en el sistema (en general, fuera de nuestra carpeta de usuario /home/pi, de la que nosotros somos propietarios).
Aunque normalmente, a nivel doméstico, utilicemos Linux como un ordenador de sobremesa donde solo hay un usuario (nosotros) conectado al mismo tiempo, en realidad, el sistema está pensado para servidores en los que puedan existir multitud de usuarios trabajando simultáneamente en el mismo ordenador. Por este motivo, todo el sistema de gestión de usuarios está pensado para permitir tener a mucha gente conectada a la vez sin que se generen conflictos entre ellos.
1. Lo primero que haremos será crear un nuevo usuario. Para ello, nos conectaremos con el usuario por defecto de Raspbian llamado pi. Este usuario tiene los permisos adecuados para ejecutar comandos de superusuario mediante la instrucción sudo.
2. Para crear el nuevo usuario ejecutaremos el siguiente comando:
sudo adduser nuevousuario
En esa línea, nuevousuario será el nombre del usuario que vamos a añadir al sistema.
3. El sistema nos hará una serie de preguntas, requiriendo datos sobre el usuario, para crear la cuenta 1.
4. Después de crearlo, podremos cambiar su contraseña por defecto con el comando:
sudo passwd nuevousuario
5. Si queremos que el nuevo usuario tenga los mismos privilegios que el usuario pi deberemos añadirlo a su grupo. Lo primero que podremos hacer para ver las diferencias será comprobar los grupos a los que pertenece pi:
groups pi 2
Y también veremos los grupos a los que pertenece nuevousuario:
groups nuevousuario 3
6. Para añadir un usuario a un grupo ejecutaremos lo siguiente:
sudo adduser <nombreusuario> <nombregrupo>
Si queremos que el nuevo usuario tenga privilegios para ejecutar comandos de administrador, al igual que pi, deberemos añadirlo al grupo sudo o adm.
7. Si queremos eliminar a un usuario de un grupo ejecutaremos sudo deluser <nombreusuario> <nombregrupo>, y si queremos eliminar el usuario escribiremos sudo deluser <nombreusuario>.
IMPORTANTE
Podremos consultar los scripts que ejecuta el comando service en el directorio /etc/init.d/ 3 de nuestra Raspberry Pi.
IMPORTANTE
Un daemon (nomenclatura extendida en sistemas Unix), servicio (nomenclatura más usada en Windows), o programa residente (nomenclatura usada en MS-DOS) es un tipo especial de proceso informático no interactivo. Se ejecuta en segundo plano, en lugar de ser controlado directamente por el usuario.
En todas las distribuciones de Linux, y en este caso Raspbian no es una excepción, existen los llamados servicios. Son una serie de programas que están preparados para iniciarse en el momento que arranca el sistema para, luego, quedarse residentes en la memoria. Esta característica les permite estar escuchando los diferentes eventos generados por el sistema, o por el usuario, y responder a ellos. Un ejemplo de un servicio puede ser el servidor web, ya que está pendiente de la solicitud de conexiones por parte de los usuarios, y se encarga de atenderlas.
1. Para ver los servicios que están activos en nuestro sistema ejecutaremos el comando:
sudo service --status-all
2. La salida del comando será parecido a lo siguiente 1:
[ + ] apache2
[ + ] apparmor
[ + ] apport
[ + ] avahi-daemon
[ ? ] umountfs
[ ? ] umountnfs.sh
[ ? ] umountroot
[ - ] urandom
3. Con el comando service, en general, podremos activar, desactivar o recargar la configuración de un servicio, pero, en todo caso, eso dependerá de cada servicio y de su script asociado.
4. En general, podremos activar un servicio con el comando:
sudo service [servicio] start
5. También, desactivaremos un servicio con el comando:
sudo service [servicio] stop
6. Y recargaremos la configuración de un servicio con el comando:
sudo service [servicio] reload
7. Si intentamos ejecutar en un servicio un comando que no es reconocido por el mismo, en general, el sistema mostrará un mensaje de error 2 con la lista de comandos aceptados.
017
018
IMPORTANTE
La opción del conversor de HDMI a VGA es la menos recomendable, dado que hay bastantes modelos de fabricantes que no funcionan bien, y se han reportado muchos problemas en su uso. En el caso de que esta sea nuestra única opción, deberemos adquirir algún conversor garantizado para una Raspberry Pi en las webs especializadas. No deberemos, por tanto, adquirirlo en una tienda de informática común, puesto que nos arriesgamos a que no funcione correctamente.
Como vimos en los primeros ejercicios del libro, para conectar la Raspberry Pi a una pantalla únicamente contamos con una salida HDMI disponible (mini-HDMI en el caso de usar una Raspberry Pi Zero/Zero W, o dos salidas micro-HDMI en caso de la Raspberry Pi 4), a excepción de los modelos obsoletos, que también disponen de una salida RCA para televisores antiguos con entradas analógicas. El hecho de que solo dispongamos de una salida HDMI es perfecto, en el caso de que queramos conectar la Raspberry Pi a un televisor actual, o a un monitor con entrada HDMI, pero puede ser un problema si queremos conectarla a un monitor que solo disponga de entradas VGA/DVI.
1. La Raspberry Pi modelo B dispone de una salida de tipo RCA 1 para vídeo analógico. Aunque es una salida que se considera obsoleta, puede ser un recurso muy interesante si queremos conectar la Raspberry Pi a un televisor que no cuenta con entrada HDMI, o no disponemos del cable adecuado, ya que la gran mayoría de televisiones todavía conservan entradas de video analógicas RCA.
2. En la mayoría de televisiones, la manera más cómoda de conectarlos a la Raspberry Pi es usar un cable HDMI estándar 2, con un adaptador mini-HDMI/micro-HDMI a HDMI si fuera necesario (en el caso de usar una Raspberry Pi Zero W o Raspberry Pi 4). El cable HDMI transmitirá el vídeo y el audio de nuestro dispositivo al televisor.
3. En el caso de que queramos conectar la Raspberry Pi a un monitor, y no a un televisor, lo primero que deberemos hacer es comprobar si dispone de entrada HDMI. Actualmente, la mayoría de monitores no tienen esta entrada, ya que solo disponen de entrada VGA 3 (analógica) y DVI 4 (digital). Sin embargo, si nuestro monitor es lo bastante moderno, es probable que también disponga de entrada HDMI de serie.
4. Si nuestro monitor no dispone de entrada HDMI, el siguiente paso será optar por la entrada DVI. Para ello, deberemos adquirir un adaptador HDMI a DVI. Dado que los dos conectores transferirán la información de manera digital, no hará falta electrónica para la conversión, y son económicos.
5. La última opción será la entrada VGA. Si disponemos de un monitor antiguo que únicamente cuenta con una entrada VGA analógica, deberemos hacernos con un conversor HDMI a VGA. Estos conversores seránmás sofisticados y más caros, puesto que necesitarán un circuito electrónico para hacer la conversión digital/analógica, y darán algunos problemas en la conexión.
Pulsuz fraqment bitdi.