Mete los siguientes ficheros en la SD
ssh
. OJO, no ssh.txt
(habilita visualización de extensiones en windows./etc/network/interfaces
/etc/network/wpa-supplicant
Fichero wpa-supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=ES
network={
ssid="TELO4"
psk="pulpoafeira"
id_str="telocatro"
}
Fichero interfaces
(este debes editarlo manualmente con la orden sudo nano /etc/network/interfaces
). No sirve con pegarlo en la SD.
source-directory /etc/network/interfaces.d
auto lo
iface lo inet loopback
auto usb0
iface usb0 inet static
address 192.168.177.1
netmask 255.255.255.252
network 192.168.177.0
allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp
iface reddhcp inet dhcp
iface telocatro inet static
address 192.168.0.XXX
gateway 192.168.0.254
netmask 255.255.255.0
dns-nameserver 8.8.8.8
Donde XXX
es tu número de puesto más 20.
La Raspberry Pi es la SBC (Single Board Computer) más popular que existe. Nació en 2012 con el auge de los primeros smartphones y tablets arquitectura ARM (RISC)
No te suena ARM? Pues tiene historia. Y por cierto, NVidia ha comprado a ARM:
No todas las SBC son ordenadores al uso, de hecho, la MikroTik RBM33G, un fetiche mío, es un router.
A Raspberry Pi leva anos facilitando o aprendizaxe da informática, electrónica, e comunicacións. Para esta práctica evitaremos os modelos máis potentes e nos centraremos só en aqueles que teñan un consumo menor de 1 A, que é a corrente que adoitan soportar os portos USB dos routers.
Quizá pienses que Microsoft Windows es el sistema operativo más utilizado, y lo es. Pero si nos ceñimos a servidores y electrónica embebida, el rey es Linux.
A Raspberry Pi conta cun procesador bastante lento dun único núcleo. A versión “W” incopora Wi-Fi 4 (“n”) de 2.4 GHz con antena integrada (adaptable a IPEX). Non soporta 5 GHz, pero a temperatura e o consumo son moi baixos. Ademais o soporte técnico é inmellorable.
Outras SBC teñen deseños similares e características máis atractivas. Antes de probar sorte con Orange Pi, Banana Pi ou Nano Pi has de saber que o soporte técnico non é o mesmo en ningún caso. Terás que buscarte a vida. Para este curso dispoñemos dunha Banana Pi M2 Zero que conta con catro núcleos, Wi-Fi 4 (“n”) de 2.4 GHz con conector coaxial u.Fl “hirose” (IPEX), ethernet de 100 Mbps (chip ethernet no SoC, o conector se fai cun lagiguillo), e ethernet RNDIS sobre USB. Como podes ver, as características de conectividade desta SBC son moi boas:
Este modelo conta cunha potente CPU de catro núcleos e Wi-Fi dual 2.4 GHz / 5 GHz. Non está pensada para traballar a menos de 2.5 A pero, con pequenas configuracións (desactivar entorno gráfico, apagar HDMI e Bluetooth) baixaremos o consumo por debaixo de 1 A.
Unha vez configurada, nos dará un excelente equilibrio entre potencia, temperatura, e consumo enerxético.
CLI: Command Line Interface (terminales, consolas)
GUI: Graphic User Interface (ventanitas)
Para conectarse en red a una CLI se usa SSH / Telnet / cable serie
Para conectarse en red a una GUI se usa VNC / Windows RDP / ...
La CLI de Linux y macOS se llama BASH
La CLI de Windows se llama (tres opciones):
Posta en marcha (resumo):
sudo hostnamectl set-hostname NOME
(revisa /etc/hosts
para que apareza no loopback)sudo adduser meunome
. Fai que sexa administrador: usermod -aG sudo meunome
. Podes facer que non pida contrasinal sudo facendo sudo visudo
editando: meunome ALL=(ALL) NOPASSWD:ALL
sudo deluser -remove-home pi
(se non che deixa, elimina o autologin en /etc/lightdm/lightdm.conf
)/etc/default/keyboard
en XKBLAYOUT="es"
touch /boot/ssh
en Raspberry. Instalar tamén MOSH (similar a SSH adaptado a condicións de latencia). Cambiar porto predeterminado SSH con sudo nano /etc/ssh/sshd_config
. Descomentar a liña #Port 22
e poñer outro número entre 49152 e 65535 para seguridade adicional. Apagar: systemctl poweroff
sudo systemctl set-default multi-user.target
. Reiniciar: systemctl reboot
network-manager
(propio da interface gráfica) xa que interfire co servizo networking
: systemctl disable network-manager
dtoverlay=dwc2
en sudo nano /boot/config.txt
/boot/cmdline.txt
e despois de rootwait
pon un espazo e despois modules-load=dwc2,g_ether
O acceso fóra de liña con cable convertedor USB-UART servirache para entrar na consola da Raspberry cando esta quede sen rede e non queres perder tempo conectando monitor e periféricos.
Estes convertedores serven de ponte entre a interfaz USB do teu ordenador e a UART (niveis TTL) serial que teñen a maioría de equipos hoxe en día (Arduino, ESP32, Raspberry, routers…). As cores poden dar lugar a confusión xa que coinciden cos do USB, pero dentro hai un circuito integrado que fai a conversión entre os dous sistemas:
O típico é cablear Tx, Rx e GND. Lembra que se trata de conexións cruzadas (Tx → Rx; Rx → Tx). Máis información sobre cableado na páxina do equipo de probas MikroTik.
Tamén podes prescindir do convertedor USB e cablear directamente unha Raspberry contra outra UART-UART (cruzando). Deberás desactivar a consola na que vaias a utilizar como cliente.
O programa que eu recomendo para as conexións é Putty en entornos Windows e minicom
en Linux e macOS. Instálao con:
sudo apt install minicom -y
Averigua o nome da interface serial con dmesg | grep tty
ou ben ls /dev/tty
. Exemplo de conexión a consola de 115200
bps ubicada no dispositvo ttyUSB0
:
minicom /dev/ttyUSB0 -b 115200
Unha vez dentro de minicom
, podes declear comandos no shell da CLI como cando estás en sesión remota SSH. Tamén podes facer que minicom execute ordes pulsando CTRL A
e a continuación a orde desexada. Por exemplo, CTRL A, X
sae do programa.
As velocidades normalizadas en baudios as podes consultar nesta ligazón. As máis habituais son 115200 e 9600 bps. Podes axustar no setup as opcións predeterminadas tecleando minicom -s
. Máis información nesta ligazón.
sudo nano /boot/armbianEnv.txt
poñer monitor=non
. Diferente en Raspberry: $ echo "/usr/bin/tvservice -o" | sudo tee -a /etc/rc.local
Realízase no ficheiro /etc/network/interfaces
sempre e cando teñas activado o servizo networking
: https://www.eduardocollado.com/2020/03/22/fichero-etc-network-interfaces-en-debian/
No seguinte exemplo:
127.0.0.1
192.168.199.1/30
. O outro equipo debería ter a .2
.wpa_supplicant.conf
(ver seguinte apartado).default
e reddhcp
; IP estática no perfil telocatro
).source /etc/network/interfaces.d/*
# Network is managed by Network manager
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
hwaddress ether B8:27:EB:4C:E2:16
auto usb0
iface usb0 inet static
address 192.168.199.1
netmask 255.255.255.252
network 192.168.199.0
allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp
iface reddhcp inet dhcp
iface telocatro inet static
address 192.168.0.221
gateway 192.168.0.254
netmask 255.255.255.0
Para configurar o modo cliente/estación Wi-Fi debemos editar sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
e axustar SSID e PSK do punto de acceso.
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=ES
network={
ssid="WiFicousas"
psk="outrachavewifi"
key_mgmt=WPA-PSK
id_str="reddhcp"
}
network={
ssid="WiFiempresa"
psk="achavewifiquesexa"
id_str="telocatro"
}
network={
ssid="WiFiClienteTaller"
psk="chavewifiascii"
key_mgmt=WPA-PSK
}
A rede WiFicousas
terá os parámetros IP do perfil reddhcp
. A rede WiFiempresa
usará o perfil telocatro
, e WiFiClienteTaller
terá os parámetros IP do perfil default
xa que non ten ningún especificado.
No ficheiro anterior o parámetro country=ES
selecciona a configuración rexional de España (canais e potencias permitidos no CNAF)
Aplicar cambios nas redes cun reinicio total ou parcial: sudo systemctl restart networking
Esta función tiene más sentido en Raspberry con ethernet y Wi-Fi. Si te interesa, míralo en este tutorial: https://danielrios.me/apuntes/2020radioenlaces/P04C/index.html
Ver Wi-Fis dispoñibles para conectarse como cliente:
sudo iw dev wlan0 scan | egrep "signal:|SSID:" | sed -e "s/\tsignal: //" -e "s/\tSSID: //" | awk '{ORS = (NR % 2 == 0)? "\n" : " "; print}' | sort
Comprobar estado da conexión actual como cliente Wi-Fi:
sudo iw dev wlan0 link
Estatísticas da túa conexión Wi-Fi actual como cliente (máis completo: MCS, paquetes…)
sudo iw dev wlan0 station dump
Canais soportados e potencias de transmisión máximas (dependen do locale
, axústao en sudo raspi-config
)
iw phy phy0 channels
Escaneo de direccións IP:
sudo nmap -sP 192.168.99.0/24
A falta de SAI, boa é unha batería:
Por desgraza, estas baterías de tan reducido tamaño outorgan unha autonomía menor de tres horas. A falta de modo ”deep sleep” impide prolongar esa duración. Unha opción máis viable, para estudar a longo prazo, sería incoporar un microcontrolador que soporte deep sleep e utilizalo para activar remotamente a Raspberry cando fora preciso para aforrar batería ó máximo.
Neste capítulo vimos algunhas opcións da Raspberry Pi como complemento ós nosos nodos da rede. Podemos poñela punto de acceso Wi-Fi, cliente Wi-Fi, incorporarlle servizos como servidor SMB, Asterisk, e acoplar accesorios como a batería que vimos ou o “sombreiro” LoRa como o SX1262 Waveshare que veremos nun capítulo posterior (máis info na wiki de Waveshare)
Un básico para empezar a experimentar con el hardware:
Pero ten esto siempre cerca:
Recuerda que hay dos numeraciones, la de los pines y la Broadcom. Nosotros usaremos la Broadcom.
pwd #muestra en qué carpeta estás
touch cosa # crea un archivo que se llama "cosa"
ls # listar contenido de la carpeta actual
rm # borrar archivos
nano cosa # edita archivos y los crea si no existen
cat cosa # muestra contenido de archivos
mkdir carpeta # crea carpeta
rm -rf carpeta # borra carpeta y lo que contenga
cd carpeta # ir a carpeta "carpeta" situada en la carpeta actual
cd /carpeta # ir a carpeta "carpeta" situada en la carpeta "/"
cd .. #subir de carpeta
Comando: apt install loquesea
. Primero debes hacer sudo
o su
Instala una de las tonterías de este link, por ejemplo:
apt install libaa-bin
)apt-get install nmap
. Pruébalo con nmap -sP 192.168.0.0/24
Prueba tmux
con cuatro paneles haciendo:
tmux set-option -g mouse on \; new-session \; split-window -v \; split-window -h \; select-pane -U \; split-window -h \; select-pane -L
apt update # actualiza el listado de paquetes
#### FALLA!!!!!
sudo apt update ### "DO" as "SUPER USER"
sudo apt upgrade -y ### actualiza apps instaladas
sudo apt install cowsay -y ### instala cowsay
showfigfonts
sudo apt update && sudo apt upgrade -y
sudo nmap -sP 192.168.0.0/24