Mostrando entradas con la etiqueta Raspberry Pi. Mostrar todas las entradas
Mostrando entradas con la etiqueta Raspberry Pi. Mostrar todas las entradas

miércoles, 19 de junio de 2019

Raspbian Lite Setup

Hello everyone, today we are going to install and configure Raspbian Lite.

For hardware you can install this it in whatever you want, but keep in mind that this OS is optimized for Raspberry Pi products and that 4GB of storage are recommended.
I'll be using a Raspberry Pi Zero W. With this out of the way let's get to the fun part.

After installing Raspbian Lite form the RaspberryPi download page, next flash the image to the SD card. If you don't know how to do this here is another article on how to do it.

Once that's done, open the new disc you have on your computer and add a new file with no extension named ssh, all lower case, to later enable SSH.

Now, for the people using a device that doesn't have a Ethernet port, and can't or don't want to use a screen, you'll have to create a new file named wpa_supplicant.conf and paste this code, remember to change the country, name and password according to the wifi network you want to use.


 country=US  
 ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev  
 update_config=1  
 network={  
     scan_ssid=1  
     ssid="the_2.4-hz-wireless-network"  
     psk="the_2.4-hz-wireless-network_password"  
     proto=WPA  
     key_mgmt=WPA-PSK   
 }  

Place the microSD card on you device and power it.

Now SSH to your device. If you don't know how we also have a tutorial for that here.

Username: pi
Password: raspberry
To change the default password write on the console passwd

To set a static ip type: sudo nano /etc/dhcpcd.conf and paste at the bottom
 interface wlan0  
 static ip_address=192.168.1.12/24  
 static routers=192.168.1.1  
 static domain_name_servers=192.168.1.1 8.8.8.8  
In this example it will only apply if your connected by WiFi, for Ethernet use eth0 instead of wlan0

And for more settings type on your console sudo raspi-config.

A video I made explaining the process:

jueves, 6 de junio de 2019

Raspberry Pi comandos linux básicos

En nuestra Raspberry Pi tenemos instalado el sistema operativo Raspbian que es un Linux basado en Debian. Veamos algunos comandos básicos ejecutados en la terminal mediante línea de comandos.

Abrir y cerrar la terminal usando el teclado


Para abrir la terminal en un sistema Linux tecleamos simultánemante las tres siguientes teclas:

Control+Alt+t

Para cerrar la terminal en Linux tecleamos:

Control+d

Limpiar pantalla

clear

Listar un directorio


Para ver los archivos y carpetas que contiene el directorio en el que estamos se usa el comando:

ls -l


¿Quién soy yo?

Para conocer el usuario que estas usando en linux el comando es whoami.

whoami

Veamos un ejemplo sobre una distribución Manjaro que es un arch linux.



¿Dónde estoy?

Para conocer la ruta en la que me encuentro en este momento, o para conocer la carpeta o directorio donde estoy, se ha de teclear el comando:

pwd

Veamos un ejemplo en Manjaro linux.


Si en el prompt vemos el símbolo ~ indica que nos encontramos en el directorio home/usuario que es nuestro directorio personal.


Crear y eliminar un directorio

Vamos a crear un directorio con el comando:

mkdir nombre_del_directorio

Podemos ir a un directorio con:

cd nombre_del_directorio

Podemos regrasar al directorio anterior con:

cd ..

Podemos eliminar un directorio o carpeta con:

rm -r nombre_del_directorio


El parámetro -r es para añadir recursividad, por lo que eliminará directorios dentro de directorios, con la profundidad que sea.

En ocasiones no tenemos permisos para poder eliminar archivos o directorios en ese caso si queremos borar un directorio rebelde teclearemos una de las dos siguientes opciones. Es posible que con la primera sea suficiente.

  • sudo rm -rf directoriorebelde

  • sudo rm -rf 982899 directoriorebelde

El parámetro f evitará que tengamos que estar respondiendo y (yes) todo el rato si hay varios.


Si lo que deseamos es eliminar un archivo lo podemos hacerlo con:

rm nombre_del_archivo


Podemos salir de la terminal con el comando:

exit

Movernos por el arbol de directorios

Podemos movernos por el arbol de directorios usando cd. Para ir al directorio superior:
cd ..

Para ir al directorio raiz:
cd /


Renombrar un fichero o un directorio

Podemos utilizar rv que sirve para renombrar un archivo o un directorio.

mv nombre_viejo nombre_nuevo



Mover un archivo

Utilizaremos el comando mv que es la abreviatura de move. Con la siguiente línea moveremos un archivo al directorio superior.

mv nombre_archivo ../nombre_archivo

Deseamos mover el archivo info.old a un directorio superior.


¿Qué versión de Python 3 tengo?

En la terminal de linux teclea la siguiente línea de comandos.

python3 --version



El árbol de directorios

El comando tree no está disponible por defecto en la mayoría de las distribuciones de Linux, es necesario instalarlo. En nuestro caso por usar Manjaro que está basado en arch linux la forma de instalarlo es con la siguiente línea de comandos:

sudo pacman -S tree          # en arch linux
sudo apt-get install tree    # en Ubuntu
sudo aptitude install tree   # en Debian



Al ejecutar el comando veremos el arbor de directorios de nuestro sistema linux. También pueden ser útiles los siguientes parámetros.

tree -d     # Muestra sólo directorios
tree -L X   # Muestra hasta X directorios de profundidad
tree -f     # Muestra los archivos con su respectiva ruta
tree -a     # Muestra todos los archivos, incluidos los ocultos.
tree /      # Muestra un árbol de todo nuestro sistema
tree -ugh   # Muestra los ficheros con su respectivo propietario (-u),
              el grupo (-g) y el tamaño de cada archivo (-h)
tree -H . -o tudirectorio.html # Exporta tu árbol de directorio a un archivo HTML

Ver características de la distribución instalada

neofetch

Ver la memoria consumida


Podemos ver la memoria RAM disponible y consumida con el siguiente comando de terminal.
free -h

También podemos ver la memoria de intercambio swap disponible y utilizada.
swapon

miércoles, 5 de junio de 2019

Raspberry Pi primeros pasos

Este artículo forma parte de una serie que nos conducirá a configurar una Raspberry Pi hasta llegar a tener instalada en ella un servidor web con base de datos y PHP como lenguaje. Los artículos de la serie son los siguientes.
  1. Raspberry Pi instalación y puesta en marcha
  2. Raspberry Pi primeros pasos   ← (es el post en el que estamos)
  3. Raspberry Pi instalación de Apache + PHP + MySQL
  4. Raspberry Pi instalación de Wordpress
Trabajaremos desde la consola utilizando la línea de comandos ya que la instalación que hemos realizado no ha cargado las xWindows. No disponemos de interface gráfica y por lo tanto el ratón no lo utilizaremos.

Expandir el sistema de archivos

Expandir el sistema de archivos es lo primero que haremos al tener instalado nustro sistema operativo Raspbian. Lo que hace es aprovechar la capacidad de la micro SD para que el sistema operativo disponga de espacio para poder usar la tarjeta como equivalente a un disco duro donde poder crear y grabar archivos descargados. Si este paso no se realiza es posible que no se esté aprovechando la capacidad completa de la tarjeta micro SD.

Desde la línea de comandos teclearemos.

sudo raspi-config

En la ventana de opciones disponible elegimos la modalidad:

7 Advanced Options    Configure advanced settings

Seguidamente elegimos la opción:

A1 Expand Filesistem   Ensures that all of the SD card storage is available to de OS

Finalmente cuando nos soliciten que rebotemos el sistema diremos que si.

SSH

El protocolo SSH permite que nos podamos conectar de forma remota a nuestra Raspberry Pi. Para habilitarlo teclear en la consola la siguiente línea de comandos.

sudo raspi-config

Elegir la opción:

5 Interfacing Options    Configure connections to pheripherals

Elija la opción:

P2 SSH    Enable/Disable remote command line access to your Pi using SSH

A la pregunta 'Would you like the SSH server to be enabled?' responda afirmativamente.

Y acepte y finalize.

Ahora podrá conectarse a la Raspberry Pi de forma remota. En Windows usando un programa como Putty y en MAC no es necesario ningún programa ya que de forma nativa desde la terminal nos podremos conectar via SSH con nuestra Raspberry Pi. El puerto de conexión por defecto es el puerto 22.

Rebote la Raspberry Pi con sudo reboot y mire la IP asignada por su router haciendo ifconfig. En mi caso he visto que me ha asignaro la IP 192.168.1.64. Esta es la IP que pondremos en Putty con el puerto 22 para entrar de forma remota en nuestra Raspberry Pi.


Conviene cambiar ese puerto para dificultar que puedan acceder a nuestra red desde fuera.

Cambiar el puerto del servicio SSH

Teclee la siguiente línea de comandos.

sudo nano /etc/ssh/sshd_config

Cambie la línea

# port 22

por la línea

port 3022

de esta forma habrá elegido el puerto 3022 o cualquier otro que elija.

Para que el cambio tenga lugar ejecute la siguiente línea.

sudo service ssh restart

Cambiar la contraseña

El usuario es pi y la contraseña por defecto es raspberry. Conviene cambiar la contraseña especialmente si posteriormente necesitamos habilitar el protocolo SSH que nos permitirá conectarnos a nuestra maquina de forma remota. No nos gustaría que otra persona pudiera entrar sabiendo el usuario y la contraseña por defecto que viene en todas las plaquitas.


Para cambiar la contraseña desde la línea de comandos escribiremos lo siguiente.

passwd

A continuación tendremos que introducir la contraseña actual y luego tendremos que introducir la password nueva y volverla a introducir para comprobar. Al escribir la contraseña en el teclado no vemos que se produzcan caracteres en la pantalla. Esto no es error, ya que se ha diseñado de esta forma para mayor seguridad de miradas indiscretas.

Fijar la IP

Es muy frecuente que al conectarnos a un router por cable de red RJ45 o por WiFi el router nos proporcione una dirección IP variable que puede cambiar cada vez que nos desconectemos y volvamos a reiniciar la Raspberry Pi o el propio router.

Lo recomendable es que la dirección IP asignada sea siempre la misma, esto es que sea una IP fija para que cuando nos conectemos a la Raspberry Pi de forma remota no tengamos que estar averiguando en cada ocasión qué IP nos asignó el router en cada ocasión. Al ser fija la IP luego podremos dejar ya establecida ésta en nuestro software de conexión de forma remota con el protocolo SSH.

Para conseguir una IP fija o static IP en una conexión Ethernet (por cable de red) teclearemos lo siguiente.

sudo nano /etc/dhcpcd.conf

Existe un párrafo del documento que debemos sustituir. El parrafo que nos encontraremos será algo similar a esto:

# Example static IP configuration:
#interface eth0
#static ip_address=192.168.0.10/24
#static ip6_address=fd51:42f8:caae:d92e::ff/64
#static routers=192.168.0.1
#static domain_name_servers=192.168.0.1 8.8.8.8 fd51:42f8:caae:d92e::1


El párrafo anterior debe ser sustituido por el siguiente.

# Example static IP configuration:
interface eth0
static ip_address=192.168.1.11/24
static routers=192.168.1.1
static domain_name_servers=192.168.1.1 8.8.8.8


  • Estamos suponiendo que nuestro router tine como IP de acceso 192.168.1.1 y que hemos asignado a nuestra Raspberry Pi la IP fija 192.168.1.11
  • La conexión que hemos configurado es para usar la conexión Ethernet por cable de red. Si quisiéramos configurar lo para WiFi se cambiaría eth0 por wlan0.
  • Para que tenga efecto rebotamamos nuestra Raspberry Pi con sudo reboot.
  • Finalmente probamos a entrar con Putty usando como IP 192.168.1.11 como puerto 3022. Indicamos el usuario pi, y la contraseña nueva si la hemos cambiado y sino usamos la contraseña por defecto que es raspbian. Si todo va bien estaremos dentro de nuestra Raspberry Pi y podremos grabar en Putty los datos de acceso con esa IP fija para futuros usos.

Abrir los puertos de router

Nuestro objetivo es llegar a tener un servidor web funcionando en la Raspberry Pi que tenemos en casa por lo que será necesario abrir los puertos del router. El puerto 80 es el que permite servir una página web.

En nuestro caso el proveedor de servicios de Internet es Movistar que utiliza el portal Alejandra para gestionar el router. Se puede llegar a desvincular el router de este portal pero en nuestro caso lo hicimos en su día para probar, pero ahora de momento seguimos usando Alejandra.

Si no tenemos este portal lo que se ha de hacer es conectarnos a nuestro router tecleando en nuestro navegador la dirección IP de entrada al router, que en nuestro caso es 192.168.1.1. El router nos mostrará una página donde tendremos que poner el usuario y contraseña de nustro modelo concreto.


Para que funcione nuestro servidor web y pueda servir página web a un usuario externo a nuestra red es necesario abrir el puerto 80 mediante el protocolo TCP.

Para que consigamos conectarnos a nustra Raspberry Pi mediante SSH desde una ubicación externa a nuestra red tendremos que abrir el puerto 22 o si hemos cambiado el puerto el que sea, por ejemplo el puerto 3022, mediante TCP.

¿Cúal es mi IP?

La mayoría de las IP externas que tenemos son dinámicas.

En las casas y en muchas empresas pequeñas la conexión que nos proporciona nuestro proveedor de Internet nos ofrece una IP dinámica. Esto supone que cada vez que rebotamos el router la IP externa que tenemos puede cambiar.

Puedes hacer la prueba consultando la IP externa que tienes. Para ello existen múltiples páginas que te informan. Usando tu buscador favorito escribe la frase 'Mi IP', o 'Cuál es mi ip'. Y verás que dispones de muchos links que te llevan a páginas que te proporcionan tu IP pública en estos momentos. En la imagen siguiente se puede ver la IP que tengo en este momento.


Al reiniciar tu router (apagar, esperar unos segundos y encender) podremos ver que la IP externa seguramente habrá cambiado.

noIP

No es práctico establecer un servidor web donde la IP pública esté cambiando continuamente. Podríamos contratar una IP fija pero esto tiene un coste. Otra solución es utilizar algún sistema como el que nos proporciona la página noip.com.

Nos proporcionará un dominio que apunta siempre a nuestra IP pública aunque esta sea dinámica y por lo tanto cambie ocasionalmente. El sistema se encarga de vigilar si cambia nuestra IP pública y dirigir las peticiones a ese dominio a nuestra IP aunque haya cambiado.

Por ejemplo, el domino magnitopic.ddns.net es un dominio proporcionado por este servicio.

Raspberry Pi instalación y puesta en marcha

Este artículo forma parte de una serie que nos conducirá a configurar una Raspberry Pi hasta llegar a tener instalada en ella un servidor web con base de datos y PHP como lenguaje. Los artículos de la serie son los siguientes.
  1. Raspberry Pi instalación y puesta en marcha   ← (es el post en el que estamos)
  2. Raspberry Pi primeros pasos
  3. Raspberry Pi instalación de Apache + PHP + MySQL
  4. Raspberry Pi instalación de Wordpress
Trabajaremos desde la consola utilizando la línea de comandos ya que la instalación que hemos realizado no ha cargado las xWindows. No disponemos de interface gráfica y por lo tanto el ratón no lo utilizaremos.


Vamos a instalar una Raspberry Pi desde cero preparándola para que actue como servidor, por lo que vamos a prescindir de la parte gráfica y vamos a trabajar con la línea de comandos desde consola.

Material necesario

  1. Una Raspberry Pi. El modelo elegido no es crítico, en principio puede ser cualquiera. Nosotros vamos a usar una Raspberry Pi 2. Actualmente el modelo más moderno es la Raspberry Pi 3B+. También se puede instalar en una Raspberry Pi Zero o Zero W.
  2. Una fuente de alimentación de 5 v (voltios) y 3 A (amperios). Los primeros modelos o la versión Zero aceptan fuentes de solo 2.5 A. Es conveniente que la fuente no sea muy mala ya que estará conectada durante mucho tiempo de forma continuada.
  3. Una tarjeta micro SD, de 8 Gb o más. Preferiblemente, de 64 Gb, actualmente, ya que su precio ha bajado mucho. También necesitaremos un adaptador de tarjeta micro SD a SD, o un adaptador de tipo USB para tarjetas micro SD, con el fin de introducirlo en nuestro PC y grabar por primera vez el sistema operativo.
  4. Un cable de red RJ45 para conectar la Raspberry Pi a nuestra red y a Internet. Se podría usar conexión WiFi en aquellas versiones que dispongan de esta capacidad pero no se recomienda tener un servidor permanentemente conectado 24 horas al día, 365 días al año mediante una conexión inhalánbrica. Para un servidor es mucho mejor la conexión por cable.
  5. Un cable HDMI para conectar un monitor o TV. Este cable no será necesario cuando al final terminemos accediendo a nuestra Raspberry Pi de forma remota mediante protocolo SSH.
  6. Un ratón si usamos la versión gráfica, pero si usamos únicamente la versión LITE que trabaja desde la consola por línea de comando no será necesario en ratón en ningún momento. En todo caso, este periferico no será necesario cuando al final terminemos accediendo a nuestra Raspberry Pi de forma remota mediante protocolo SSH.
  7. Un teclado. Este periferico no será necesario cuando al final terminemos accediendo a nuestra Raspberry Pi de forma remota mediante protocolo SSH.
  8. Un PC Windows o MAC, fijo o portatil. En mi caso he utilizado un laptop HP G62 comprado en abril 2011 con Windows 10. El PC será util para flashear la tarjeta micro SD como luego veremos, y para manejar remotamente la Raspberry Pi con el protocolo SSH.

Ubicación

  • Posiblemente la mejor ubicación es dejar la Raspberry Pi cerca del Router que tenemos en casa, ya que estará conectada por cable de red RJ45 y si este es corto incluso será preferible. En un sitio más o menos ventilado. Si no tenemos carcasa casi mejor, ya que ventilará mejor. Y donde un niño pequeño no llegue ya que todo dispositivo electrico/electrónico debe tener ciertas precauciones obvias.
  • Cualquier otra ubicación es posible. En los primeros momentos necesitaremos usar un cable HDI, un monitor o TV, y un teclado. El ratón únicamente será necesario si usamos una versión gráfica de Raspbian. Luego cuando tengamos habilitado el protocolo SSH, ya no seran necesarias estas conexiones puesto que nos conectaremos de forma remota desde nuestro PC. Como ejemplo, de ubicación insólita, recuerdo que en una ocasión colocamos una Raspbeery Pi perfectamente operativa, a modo de broma, colgada de una lámpara de techo. Estaba alimentada por una batería de las que se usan para cargar los smartphones, y tenía habilitada la conexión WiFi. Estuvo funcionando perfectamente hasta que se agotó la batería :-)

Sistema Operativo

Vamos a utilizar Raspbian que es un Linux basado en Debian perfectamente adaptado a la RPi (Raspberry Pi).
De la pagina de descarga (https://www.raspberrypi.org/downloads) no elegiremos la modalidad NOOBS sino que elegiremos directamente la versión Raspbian y así aprenderemos a flashear la tarjeta microSD.

En la página de Raspbian (https://www.raspberrypi.org/downloads/raspbian/) nos encontramos actualmente con tres versiones. Vamos a elegir la más ligera sin parte gráfica, y por lo tanto si escritorio (desktop) ya que al tratarse de una RPi destinada a funcionar como servidor lo que queremos es ligereza e instalar via consola solo lo que nos interese.


Elegiremos Raspbian Stretch Lite que es la modalidad Raspbian Lite (ligera) que ahora va por la versión que se denomina Stretch. La versión anterior se llamaba Jessie. Seguidamente una lista de las últimas versiones.
  • The next release of Debian is codenamed buster — no release date has been set
  • Debian 9 (stretch) — current stable release (actualmente estamos en junio 2019)
  • Debian 8 (jessie) — obsolete stable release
  • Debian 7 (wheezy) — obsolete stable release
  • Debian 6.0 (squeeze) — obsolete stable release

Pasos para instalar Raspbian

  1. Descargamos en nuestro PC la última versión Lite como se ha indicado en el punto anterior.
  2. Introducimos la tarjeta micro SD en el adaptador a SD, y éste en nuestro PC
  3. Formateamos la tarjeta micro SD. No es obligatorio pero se recomienda usar un software específico para formatear tarjetas de memoria como SD Card Formatter.
  4. Paso optativo. Si quieres puedes comprobar el hash de la descarga. Es ese código larguísimo que aparece en la página desde la que te has bajado Raspbian. Por ejemplo, SHA-256:03ec326d45c6eb6cef848cf9a1d6c7315a9410b49a276a6b28e67a40b11fdfcf Se puede comprobar con un programa que verifica el checksum como por ejemplo MD5 & SHA Checksum Utility. Esto sirve para comprobar que la descarga del sistema operativo no tiene errores al realizar el download.
  5. Flasheamos la trarjeta SD con el sistema operativo elegido. Para ello utilizamos un programa que nos permita realizar el flasheado como por ejemplo Etcher. El programa detectará la tarjeta micro SD que tenemos introducida en nuestro PC y le indicaremos el fichero ZIP donde se encuentra el sistema operativo Raspbian que hemos descargado previamente. El programa se encarga de flashear, esto es se encarga de descomprimir y copiar adecuadamente el contenido del fichero ZIP a nuestra tarjeta micro SD. Si hacermos una descompresión manual y un copiado manual de los ficheros a la tarjeta micro SD no funcionará. Lo que se ha de hacer es flashear la tarjeta con Etcher.
  6. Sacamos la micro SD de nustro PC y ya tendremos dentro de la tarjeta el sistema operativo listo para conectar en nuestra Raspberry Pi.

Conexiones

  1. Introducimos la micro SD en nuestra Raspberry Pi.
  2. Encendemos el monitor o TV y lo conectamos por cable HDMI a nuestra Raspberry Pi. El model antiguo Raspberry Pi original no tenía HDMI y se podía conectar a un monitor por VGA o incluso a una TV antigua utilizando un cable de vídeo compuesto.
  3. Conectamos el teclado por USB. Si usamos versión gráfica también conectaremos el ratón.
  4. Conectamos el cable de red RJ45 a nuestro router o a un switch que tengamos disponible en nuestra red
  5. Finalmente conectamos el cable de la fuente de alimentación
Si todo va bien veremos en pantalla como se inicia el sistema operativo. Arriba veremos un imagen de unas frambuesas. Si es la versión de Raspberry Pi original (la versión uno) veremos únicamente una frambuesa, y si se trata de una versión posterior veremos cuatro frambuesas.


Si la fuente de alimentación es insuficiente veremos en la parte superior derecha de la pantalla un símbolo de un rayo de color amarillo que podrá aparecer ocasionalmente. Si aparece quiere decir que la fuente de alimentación no es capaz de suministrar el amperaje suficiente y que por lo tanto se requiere utilizar una fuente de alimentación de mayor capacidad. Se recomienda una de 5 voltios (5V) y 3 amperios (3A).

 Ya tenemos todo conectado y la Raspberry Pi arrancada, ahora tenemos que logearnos.

Login


El usuario es:
pi

La contraseña por defecto es:
raspberry

Si todo va bien ya tendremos la sesión iniciada y veremos el prompt que se muestra en la imagen siguiente, y el cursor será una barra baja titilando en espera de que introduzcamos nuestro primer comando.


Reiniciar la Raspberry Pi

Desde la línea de comandos escribiremos lo siguiente.

sudo reboot

Otra opción para rebotar nuestra plaquita es utilizar el comando siguiente.

sudo shutdown -r now

El modificacor -now hace referencia a que deseamos que se cierre el sistema operativo ahora, ya que existen otros modificadores con los que es posible programar el apagado para dentro de un cierto número de minutos/horas.

Apagar la Raspberry Pi

Para apagar la Raspberry Pi desde la línea de comandos o desde la consola utilizaremos el siguiente comando.

sudo shutdown -h now

El modificador -h hace referencia a halt. Lo que hace es detener los procesos.

Finalmente desconectaremos el cable de alimentación de la Raspberry Pi para evitar que se continúe proporcionando corriente. Muchas de las fuentes de alimenación no llevan interruptor por lo que será necesario desconectar fisicamente el cable micro USB.

Si vamos a tener apagada la Raspberry Pi durante un periodo largo conviene desconectar fisicamente la fuente de alimentación del enchufe para evitar que se continúe trasnformando electricidad y generando consumo electrico y calor.