Documentos de Académico
Documentos de Profesional
Documentos de Cultura
REPORTE TÉCNICO
INGENIERÍA EN MECATRÓNICA
PRESENTA
DEDICATORIA
A mi institución. La Universidad Tecnológica de Tecámac, casa de estudio que me
brindo un espacio formativo, propio a las materias que me fueron impartidas durante
el periodo de aprendizaje escolarizado, además de valiosos recursos, como las
herramientas mecánicas - manuales, que tuve el placer de aprender a manejar,
instrumentos de visualización electrónicos, que me enseñaron la importancia de cada
calculo, medición análisis e interpretación y software, diferentes programas que de
manera digital ayudaron en cada práctica.
I
MANUAL RASPBERRY
PI 4
II
MANUAL RASPBERRY
PI 4
ÍNDICE
Índice General
CARTA DE AUTORIZACIÓN DE DIGITALIZACIÓN DEL REPORTE TÉCNICO.....II
CARTA DE ACEPTACIÓN........................................................................................III
CARTA DE TÉRMINO...............................................................................................IV
DEDICATORIA............................................................................................................I
ÍNDICE........................................................................................................................II
RESUMEN (Mínimo una y máximo dos cuartillas)...................................................IX
ABSTRACT................................................................................................................X
INTRODUCCIÓN........................................................................................................1
CAPÍTULO I METODOLOGÍA.......................................................................................2
III
MANUAL RASPBERRY
PI 4
Especificaciones físicas.............................................................................................27
Utilidades útiles............................................................................................................64
Pitón.............................................................................................................................71
3.5 Configuracion......................................................................................................86
Herramienta raspi-config..............................................................................................86
Configuración de redes................................................................................................93
IV
MANUAL RASPBERRY
PI 4
Configuración HDMI...................................................................................................117
Rotar su pantalla........................................................................................................122
Configuración de audio..............................................................................................124
Configuración de UART.............................................................................................171
La bootcarpeta...........................................................................................................189
Opciones comunes....................................................................................................193
Opciones de arranque...............................................................................................196
Control GPIO..............................................................................................................203
Opciones de overclocking..........................................................................................205
Filtros condicionales...................................................................................................212
Opciones heredadas..................................................................................................217
V
MANUAL RASPBERRY
PI 4
Opciones de memoria.............................................................................................217
Opciones de video.....................................................................................................220
Ajustes de la cámara..................................................................................................245
Opciones misceláneas...............................................................................................246
Construyendo el Kernel.............................................................................................247
Configurando el Kernel..............................................................................................254
Parcheando el Kernel................................................................................................256
Encabezados de kernel.............................................................................................257
Comandos de Linux...................................................................................................263
Editores de texto........................................................................................................268
Usuarios de Linux......................................................................................................270
Raíz y Sudo................................................................................................................271
El archivo `.bashrc`....................................................................................................273
El systemd demonio...................................................................................................276
VI
MANUAL RASPBERRY
PI 4
CAPÍTULO V PROGRAMACIÓN...............................................................................282
CAPÍTULO VI PRUEBAS..........................................................................................284
10.1. RECOMENDACIONES.................................................................................292
10.2 IMPLANTACIÓN.............................................................................................293
10.3 PRUEBAS TÉCNICAS...................................................................................294
10.4 CONCLUSIONES...........................................................................................294
GLOSARIO................................................................................................................295
REFERENCIAS (BIBLIOGRAFÍA).............................................................................297
ANEXOS....................................................................................................................301
Índice de Ilustración
Ilustración 0-1 Logo Visual Studio Code....................................................................10
Ilustración 0-2 Logo Flutter y plataformas..................................................................13
Ilustración 0-3 Tarjeta Raspberry Pi 4.......................................................................14
Ilustración 0-4 Arquitectura de la tarjeta Raspberry Pi 4...........................................15
Ilustración 0-5 Raspberry Pi Model B........................................................................16
Ilustración 0-6 Raspberry Pi Model A........................................................................17
Ilustración 0-7 Raspberry Pi Zero..............................................................................18
Ilustración 0-8 Raspberry Pi 400................................................................................18
Ilustración 0-9 Raspberry Pi Pico...............................................................................19
Ilustración 0-10 Microcontrolador RP2040 Raspberry...............................................20
Ilustración 0-1 Logo Solaris Digital............................................................................23
Ilustración 0-2 Croquis de ubicación..........................................................................24
VII
MANUAL RASPBERRY
PI 4
Índice de Tablas
VIII
MANUAL RASPBERRY
PI 4
IX
MANUAL RASPBERRY
PI 4
Índice de Gráficas
Nota, se genera hasta el final que se tienen los resultados alcanzados y por ende
puede redactarse cuál es el contenido, pero debe dejarse el espacio de esta hoja y
título desde la primera revisión, para siempre tenerla en cuenta.
Debe describir de manera general que se encontrará el lector del reporte de forma
muy general, no por capítulo y de esa manera determinará si le es útil o no al objetivo
que busca, al consultar el presente documento.
X
MANUAL RASPBERRY
PI 4
ABSTRACT
XI
MANUAL RASPBERRY
PI 4
INTRODUCCIÓN
La investigación contenida en este reporte partió de necesidad de un buen manejo
de la herramienta Raspberry Pi 4 desde cero, a través de una guía de los
conocimientos básicos, utilizados para el manejo de este pequeño ordenador, con el
fin de capacitar a los usuarios, e impulsar su imaginación para la creación de nuevos
proyectos generando una mayor comprensión del ordenador y sus infinitas
posibilidades en el mundo de la programación
1
MANUAL RASPBERRY
PI 4
Nota: para que pueda realizar esto, necesita comprender el concepto de SALTO DE SECCIÓN,
de WORD e iniciar con la paginación
2
MANUAL RASPBERRY
PI 4
CAPÍTULO I METODOLOGÍA
3
MANUAL RASPBERRY
PI 4
4
MANUAL RASPBERRY
PI 4
1.2. JUSTIFICACIÓN
La revolución tecnológica permite el uso creciente de dispositivos móviles, juegos,
recursos en línea y digitales para auto-dirigir su propio aprendizaje, tanto dentro
como fuera del aula, fomentando la creación y el desarrollo de aplicaciones para
estudio e investigación, ya que en un entorno personalizado se impulsa la creatividad
propia, usando las tecnologías en educación, siendo un apoyo para maestros y
estudiantes, con información respaldada por fuentes bibliográficas y sugerencias de
fuentes de consulta.
5
MANUAL RASPBERRY
PI 4
6
MANUAL RASPBERRY
PI 4
7
MANUAL RASPBERRY
PI 4
3 NOV
4 NOV
5 NOV
8 NOV
9 NOV
10 NOV
11 NOV
12 NOV
16 NOV
17 NOV
18 NOV
19 NOV
22 NOV
23 NOV
24 NOV
25 NOV
26 NOV
29 NOV
30 NOV
1 DIC
2 DIC
3 DIC
6 DIC
7 DIC
8 DIC
9 DIC
10 DIC .
Tabla 0-1 Actividades de proyecto
29 NOV - 3 DIC
30 AGO - 3 SEP
27 SEP - 1 OCT
16 - 19 NOV
22 - 26 NOV
18 - 22 OCT
25 - 29 OCT
11 -15 OCT
13 - 17 SEP
20 - 24 SEP
8 - 12 NOV
6 - 10 SEP
6 - 10 DIC
1 - 5 NOV
4 - 8 OCT
Actividades
Actividad Descripción 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
8
MANUAL RASPBERRY
PI 4
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
ACTIVIDAD MES/DIA
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
Portada AGO X
Introducción
Resumen
Dedicatoria OCT X
Indice
Abstract
Metodologia SEP X X/X X X X/X X/X X/X X/X X X X X
Capitulo 2 SEP/OCT X X X X X X X
Capitulo 3 OCT X X X X x x x
Capitulo 4 OCT
Capitulo 5 OCT
Capitulo 6
Capitulo 7
Capitulo 8
Capitulo 9
Capitulo 10
Capitulo 11
Capitulo 12
Conclusiones
Bibliografía
Anexos
Glosario
1.4. OBJETIVOS
1.4.1. Objetivo General
Realizar una aplicación amigable con el usuario, que contenga un manual digital, el
cual, gracias al desarrollo de prácticas realizadas por el cliente, provea conocimiento
y una mejor perspectiva para el uso del ordenador Raspberry Pi 4
1.4.2. Objetivos Específicos
Realizar un manual para la capacitación, comprensión, uso y manejo del ordenador
Raspberry Pi 4, fomentando la creatividad para futuros proyectos.
9
MANUAL RASPBERRY
PI 4
10
MANUAL RASPBERRY
PI 4
Historia
11
MANUAL RASPBERRY
PI 4
Características
El código combina la interfaz de usuario optimizada de un editor moderno con
asistencia y navegación de código enriquecido y una experiencia de depuración
integrada, sin la necesidad de un IDE completo. Visual Studio Code, cuenta con
herramientas de Debug hasta opciones para actualización en tiempo real de nuestro
código en la vista del navegador y compilación en vivo de los lenguajes que lo
requieran (por ejemplo, en el caso de SASS a CSS). Además de las extensiones,
tendremos la posibilidad de optar por otros themes o bien configurarlo a nuestro
gusto. Para modificar el esquema de colores y los iconos
Ventajas
Se puede utilizar como lenguajes de programación.
Visual Studio Code es una herramienta que tiene soporte nativo para gran
variedad de lenguajes, entre ellos podemos destacar los principales del
desarrollo Web: HTML, CSS, y JavaScript, entre otros.
Posibilidad de configurar la interfaz a nuestro gusto. De esta forma, podremos
tener más de un código visible al mismo tiempo, las carpetas de nuestro
proyecto y también acceso a la terminal o un detalle de problemas, entre otras
posibilidades.
Existencia de una amplísima gama de temas o estilos visuales para Visual
Studio Code, que hacen el trabajo con el software más agradable a la vista.
12
MANUAL RASPBERRY
PI 4
13
MANUAL RASPBERRY
PI 4
Estas son solo algunas de ellas, pero Visual Studio Code tiene muchas más, desde
el apartado extensiones tiene la opción de ver las más populares, las de lenguajes de
programación u otros temas. Para poder visualizarlas, debe ir a los puntos
suspensivos al lado del buscador y saldrá un menú desplegable con las sugerencias.
Flutter
Es un framework de código abierto para crear aplicaciones nativas de forma fácil,
rápida y sencilla, es un SDK desarrollado por Google para crear aplicaciones
móviles, fue desarrollado como un software para uso interno dentro de la compañía,
pero vieron el potencial que tenía y decidieron lanzarlo como proyecto de código
libre, actualmente es uno de los proyectos de desarrollo de aplicaciones móviles que
más está creciendo.
Historia
La primera versión de Flutter fue conocida como "Sky" y corrió en el sistema
operativo de Android. Fue lanzado en el Dart developer summit de 2015, declarado
de ser capaz de hacer un render a 120 fotogramas por segundo. En junio de 2020 se
dio a conocer que las empresas Canonical y Google se unieron para llevar el entorno
de desarrollo al sistema operativo Linux, creando primeramente un sistema Beta para
probarlo.
14
MANUAL RASPBERRY
PI 4
Funcionalidades de Flutter
Calidad nativa: Las aplicaciones nativas se desarrollan específicamente para
un sistema operativo, Flutter utiliza todas las ventajas de las aplicaciones
nativas para conseguir calidad en el resultado final.
Experiencia de usuario: Flutter incluye Material Design de Google y Cupertino
de Apple, con lo que la experiencia de usuario es óptima y los interfaces de
usuario idénticos a los de las aplicaciones desarrolladas por las propias
compañías.
Tiempo de carga: Una de las principales causas de abandono de una
aplicación es el tiempo que tarda en cargar, con Flutter se experimentan
tiempos de carga por debajo de un segundo en cualquiera de los soportes iOS
o Android.
Desarrollo ágil y rápido: Gracias a la característica hot-reload, puedes
programar y ver los cambios en tiempo real en tu dispositivo o en los
simuladores.
Otra de las ventajas de utilizar este framework es que da igual el sistema
operativo utilizado, ya que puede descargarse para Windows, Mac o Linux.
Utiliza un motor gráfico, llamado Skia, que renderiza en 2D los elementos
gráficos. Flutter está escrito en C, C++ y, mayormente, en Dart. De forma
resumida, la capa del motor está escrito en C++ y la de los Widgets en Dart.
15
MANUAL RASPBERRY
PI 4
Raspberry Pi 4
Es un ordenador de bajo coste y formato compacto destinado al desarrollado para
hacer accesible la informática a todos los usuarios. La Raspberry Pi también se
caracteriza por ser muy utilizada para desarrollar pequeños prototipos y para la
formación sobre informática y electrónica en los colegios, basan en el hardware libre
y habitualmente se utilizan también sistemas operativos libres basados en
GNU/Linux. Para este microordenador se ha desarrollado Raspberry Pi OS (antes
conocido como Raspbian) que es una versión personalizada de Debian.
Las placas Raspberry Pi se basan en un SoC de arquitectura ARM de bajo consumo
y buen rendimiento. Se acompañan por un modelo de memoria RAM, cuya
capacidad varía según el modelo. Disponen de varias salidas de vídeo y en las
versiones más nuevas se agrega un conector jack de 4 polos, para entrada de micro
y salida de audio. Cuentan con un lector de tarjetas donde se instala el sistema
operativo y varios puertos USB. También dispone de una gran cantidad de
conectores GPIO para poder desarrollar una gran cantidad de proyectos.
La Raspberry Pi 4, que es la versión más moderna cuenta con un conector Gigabit
Ethernet y una tarjeta WiFi + Bluetooth integrada. Este modelo más moderno tiene un
16
MANUAL RASPBERRY
PI 4
conector de alimentación del tipo USB-C y dos conectores MIPI, uno para un
display y el otro para una cámara.
Para hacerlo funcionar debemos alimentar la placa mediante el conector específico.
Debemos cargar el sistema operativo que queramos en la tarjeta de memoria SD,
para poder disfrutar de toda su funcionalidad. Tendremos que conectar teclado y
ratón, así como una pantalla de visualización de datos para poder interactuar con la
placa.
Historia
La primera Rasberry Pi fue lanzada al mercado en febrero de 2012 de la mano de la
Raspberry Pi Foundation. Esta organización nace con la idea de promover y enseñar
informática en los centros educativos y universidades de Reino Unido. Para hacerlo
lo más accesible posible, desarrollaron este pequeño ordenador de bajo coste y
grandes posibilidades.
Precisamente es en el buen rendimiento y el bajo coste en donde radica el gran
existo de la Raspberry Pi. Cuentan además con una gran conectividad y de
conexiones GPIO que permiten desarrollar una gran variedad de proyectos
educativos.
17
MANUAL RASPBERRY
PI 4
Modelos de Raspberry Pi
Versiones Pi Model B
Son las placas de tipo completo que incluyen puertos Ethernet y puertos USB.
Podemos encontrar las variantes B+, donde el «+» nos indica variaciones o
actualizaciones menores. Las versiones más modernas de estas placas agregan
conectividad WiFi y Bluetooth.
Versiones Pi Model A
Estas placas suelen ser un poco más compactas que las «Model B» y suelen tener
un formato cuadrado. Podemos decir que son versiones sencillas de las placas
Raspberry Pi, ya que tienen limitaciones en conectividad. Las «Model A» suelen
tener solo un puerto USB y carecen de puerto Ethernet, y son más económicas que
las «Model B». Las versiones más modernas de estas placas agregan conectividad
WiFi y Bluetooth.
18
MANUAL RASPBERRY
PI 4
Versiones Pi Zero
Este tipo de placas tienen un formato super reducido de formato rectangular y tienen
un consumo energético realmente reducido. Todos los modelos disponen de un
microUSB y un microHDMI. Salvo la primera Raspberry Pi Zero, las demás versiones
cuentan con conectividad WiFi y Bluetooth. Estas tienen precios super reducidos, por
debajo de los 20 euros.
Versiones Pi 400
19
MANUAL RASPBERRY
PI 4
Posiblemente la versión más particular que han lanzado de todas las variantes.
Tenemos una Raspberry Pi embebida en un teclado, lo cual es una solución muy
interesante si queremos tener un ordenador compacto. Dispone de un procesador
potente de 4 núcleos, 4GB de memoria RAM, conectividad WiFi + Bluetooth y dos
puertos USB 3.0, un puerto USB 2.0, dos microHDMI e incluso un puerto Gigabit
Ethernet. La Raspberry Pi que integra tiene un diseño único específico para ser
embebida dentro del teclado.
Versiones Pi Pico
No es un ordenador compacto, es más bien un microcontrolador que se basa en el
procesador RP2040, desarrollado por la propia compañía. Está pensado para ser
usado sobre todo para proyectos del tipo DIY (Do It Yourself; en castellano, háztelo
tú mismo). Tiene un precio de 5 dólares y carece de cualquier tipo de puerto de
conexión y también de conectividad inalámbrica.
20
MANUAL RASPBERRY
PI 4
Este tipo de tarjetas están pensadas para ser integradas en proyectos de IoT o para
automatización. Se puede encontrar muchos módulos basados en este tipo de placas
para montaje sobre carriles DIN. La versión Compute Module 4 ofrece hasta 8GB de
RAM y 32GB de memoria eMMC y conectividad WiFi + Bluetooth, pensado sobre
todo para IoT y soluciones Cloud.
Una de las particulares de estas placas es que requieren de una placa especifica de
ampliación para poderlos programar. Cuando ya están programados, se puede
instalar y ya realizaran las tareas para las cuales han sido programados.
Hasta la fecha Raspberry Pi únicamente vendía placas y diferentes periféricos, pero
han ampliado su cartera de soluciones. La compañía ha desarrollado el procesador
RP2040, un procesador de bajo coste y alto rendimiento en un encapsulado
reducido.
Este procesador RP2040 es una solución potente y accesible a todo el mundo, por
un precio muy reducido. Ofrece hasta seis bancos independiente de RAM y un
conmutador de estructura de bus, que permite organizar fácilmente los núcleos y los
motores DMA para que funcionen en paralelo.
RP2040 es un procesador pensado para proyectos DIY y microcontroladores. Tiene
unas dimensiones de 7x7mm y que se basa en el proceso de 40nm de TSMC.
Ofrece un bajo consumo con una gran potencia y se integra por primera vez en la
Raspberry Pi Pico.
21
MANUAL RASPBERRY
PI 4
Especificaciones
Procesador Arm Cortex-M0+ de doble núcleo, reloj flexible que funciona hasta
133 MHz
SRAM en chip de 264 KB
2× UART, 2× controladores SPI, 2× controladores I2C, 16× canales PWM
1× controlador USB 1.1 y PHY, con soporte para host y dispositivo
8× máquinas de estado de E / S programables (PIO) para soporte periférico
personalizado
Potencia de entrada admitida: 1.8–5.5V DC
Temperatura de funcionamiento: -20 ° C a + 85 ° C
Programación de arrastrar y soltar usando almacenamiento masivo a través
de USB
Modos de reposo y de reposo de bajo consumo
Reloj en chip preciso
Sensor de temperatura
Bibliotecas aceleradas de enteros y de punto flotante en chip
22
MANUAL RASPBERRY
PI 4
CAPÍTULO II GENERALIDADES
DE LA EMPRESA
23
MANUAL RASPBERRY
PI 4
2.2 MISIÓN
Cumplir y satisfacer las exigencias de nuestros clientes a través de nuestra
Mechatronic Desing Center (Centro Mecatrónico de Diseño) ofrecemos servicios de
capacitación, desarrollo y comercialización.
Nuestra meta es llegar a personas que tengan interés en las áreas de electrónica,
mecatrónica, robótica, control, programación de sistemas y ramas afines, formando
así excelentes desarrolladores. Siempre innovando, desarrollando y aplicando
tecnología de vanguardia, contando con el respaldo del talento de nuestro equipo de
trabajo. Para así satisfacer las necesidades del mercado nacional e internacional y
así seguir cambiando la forma de ver al mundo.
2.3 VISIÓN
Nos vemos como uno de los grupos con presencia nacional e internacional más
importante y reconocido en el campo de la capacitación y desarrollo mecatrónico.
Apoyando siempre al desarrollo tecnológico del país.
24
MANUAL RASPBERRY
PI 4
2.4 UBICACIÓN
25
MANUAL RASPBERRY
PI 4
2.5 GIRO
Solaris digital empresa que trabaja un conjunto de diferentes cursos de electrónica a
personas con conocimiento previo o poco, al igual trabaja en la realización de
distintos proyectos en los cuales se aplican la Mecatrónica.
26
MANUAL RASPBERRY
PI 4
27
MANUAL RASPBERRY
PI 4
Especificaciones físicas.
ADVERTENCIAS
Este producto solo debe conectarse a una fuente de alimentación externa de 5
V / 3 A CC o 5,1 V / 3 A CC mínimo. Cualquier fuente de alimentación externa
utilizada con la Raspberry Pi 4 Modelo B deberá cumplir con las regulaciones
y estándares aplicables en el país de uso previsto.
28
MANUAL RASPBERRY
PI 4
29
MANUAL RASPBERRY
PI 4
30
MANUAL RASPBERRY
PI 4
31
MANUAL RASPBERRY
PI 4
PINS ID SD e ID SC:
Estos pines están reservados para HAT ID EEPROM.
32
MANUAL RASPBERRY
PI 4
En el momento del arranque, esta interfaz 12C será interrogada para buscar una
EEPROM que identifique la placa adjunta y permita la configuración automática del
GPIOS (y opcionalmente, los controladores de Linux). NO USE estos pines para otra
cosa que no sea conectar una EEPROM 12C ID. Déjelo desconectado si no se
requiere ID EEPROM.
33
MANUAL RASPBERRY
PI 4
34
MANUAL RASPBERRY
PI 4
Ilustración 0-23DG
35
MANUAL RASPBERRY
PI 4
37
MANUAL RASPBERRY
PI 4
38
MANUAL RASPBERRY
PI 4
39
MANUAL RASPBERRY
PI 4
40
MANUAL RASPBERRY
PI 4
41
MANUAL RASPBERRY
PI 4
43
MANUAL RASPBERRY
PI 4
44
MANUAL RASPBERRY
PI 4
Copiar la imagen
ADVERTENCIA: El uso de la dd herramienta de línea de comandos puede
sobrescribir el sistema operativo de Mac si especifica el dispositivo de disco
incorrecto. Si no se está seguro de qué hacer, se recomienda que utilice la
herramienta Raspberry Pi Imager.
Antes de copiar la imagen, debe desmontar la tarjeta SD.
diskutil unmountDisk /dev/diskN
Luego puede copiar la imagen, sudo dd bs=1m if=path_of_your_image.img
of=/dev/rdiskN; sync reemplazando N con el número de disco.
Se debe usar rdisk (que significa 'disco sin formato') en lugar de disk, esto acelera la
copia.
Esto puede tardar unos minutos, dependiendo del tamaño del archivo de imagen.
Puede comprobar el progreso presionando Ctrl+T. Una vez dd finalizado el comando,
puede expulsar la tarjeta: sudo diskutil eject /dev/rdiskN
Solución de problemas
Si el comando informa dd: /dev/rdiskN: Resource busy, primero se debe
desmontar el volumen sudo diskutil unmountDisk /dev/diskN.
Si el comando informa dd: bs: illegal numeric value, cambie el tamaño del
bloque bs=1ma bs=1M.
Si el comando informa dd: /dev/rdiskN: Operation not permitted, vaya a
System Preferences-> Security & Privacy-> Privacy-> Files and Folders-> Give
Removable Volumes access to Terminal.
Si el comando informa dd: /dev/rdiskN: Permission denied, la tabla de
particiones de la tarjeta SD está protegida contra la sobrescritura de Mac OS.
45
MANUAL RASPBERRY
PI 4
46
MANUAL RASPBERRY
PI 4
47
MANUAL RASPBERRY
PI 4
Solución de problemas
Se recomienda comprar una tarjeta Pi SD de uno de nuestros revendedores oficiales.
Las tarjetas SD oficiales son tarjetas micro SD y se suministran con un adaptador
que permite su uso en una ranura para tarjetas SD de tamaño completo.
Si tiene problemas con su tarjeta SD:
Asegúrese de estar utilizando una tarjeta SD genuina. La mejor manera de
evitar las tarjetas SD falsas es comprar siempre a un proveedor de confianza.
Asegúrese de estar utilizando una fuente de alimentación de buena calidad: le
recomendamos que utilice una fuente de alimentación oficial Raspberry Pi.
El cable de la fuente de alimentación a la Raspberry Pi también puede causar
problemas. Por lo general, esto se debe a la resistencia de los cables del
cable de alimentación USB; Para ahorrar dinero, los cables USB tienen la
menor cantidad de cobre posible, lo que provoca una caída de voltaje en el
cable.
Asegúrese de apagar el sistema operativo correctamente antes de apagar la
Raspberry Pi.
Conexión de una pantalla
A menos que esté configurada la Raspberry Pi para que funcione sin cabeza, para un
uso regular, querrá conectar la Raspberry Pi a una pantalla: ya sea un monitor de
computadora o un televisor.
Conexión mediante HDMI
La Raspberry Pi tiene un puerto HDMI que puede conectar directamente a un monitor
o TV con un cable HDMI. Ésta es la solución más sencilla; algunos monitores y
televisores modernos tienen puertos HDMI, otros no, pero hay otras opciones.
48
MANUAL RASPBERRY
PI 4
La Raspberry Pi 4 tiene dos conectores micro HDMI, que requieren un cable micro
HDMI de buena calidad, especialmente cuando se utilizan monitores o televisores
4K.
49
MANUAL RASPBERRY
PI 4
50
MANUAL RASPBERRY
PI 4
52
MANUAL RASPBERRY
PI 4
53
MANUAL RASPBERRY
PI 4
54
MANUAL RASPBERRY
PI 4
SHA1: b08039acccecd721fc3e6faf264fe59e56118e74
MD5sum: 450b21cc998dc9026313f72b4bd9807b
Description: Correct you if you type `sl' by mistake
Sl is a program that can display animations aimed to correct you
if you type 'sl' by mistake.
SL stands for Steam Locomotive.
Instalación de un paquete con APT
sudo apt install tree
Escribir este comando debería informar al usuario cuánto espacio en disco ocupará
el paquete y solicitar la confirmación de la instalación del paquete. Ingresar Y (o
simplemente presionar Enter, ya que sí es la acción predeterminada) permitirá que
ocurra la instalación. Esto se puede omitir agregando la –y bandera al comando:
sudo apt install tree -y
La instalación de este paquete pone a tree disposición del usuario.
Desinstalar un paquete con APT
Puede desinstalar un paquete con apt remove:
sudo apt remove tree
Se solicita al usuario que confirme la eliminación. Nuevamente, la –y bandera se
confirmará automáticamente.
También puede optar por eliminar por completo el paquete y sus archivos de
configuración asociados con apt purge:
sudo apt purge tree
Utilizando rpi-update
rpi-update es una aplicación de línea de comandos que actualizará el kernel del
sistema operativo Raspberry Pi y el firmware VideoCore a las últimas versiones
preliminares.
ADVERTENCIA
No se garantiza que funcionen las versiones preliminares del software. No debe
usarlo rpi-updateen ningún sistema a menos que lo recomiende un ingeniero de
55
MANUAL RASPBERRY
PI 4
Raspberry Pi. Puede dejar su sistema poco confiable o incluso completamente roto.
No debe usarse como parte de ningún proceso de actualización regular.
El rpi-update script lo proporciona un tercero, "Hexxeh", y también es compatible con
los ingenieros de Raspberry Pi. La fuente del script se puede encontrar en GitHub en
https://github.com/Hexxeh/rpi-update
Que hace
rpi-update descargará la última versión preliminar del kernel de Linux, sus módulos
correspondientes, los archivos del árbol de dispositivos, junto con las últimas
versiones del firmware VideoCore. Luego instalará estos archivos en ubicaciones
relevantes en la tarjeta SD, sobrescribiendo las versiones anteriores.
Todos los datos de origen utilizados por rpi-update provienen del repositorio de
GitHub https://github.com/Hexxeh/rpi-firmware . Este repositorio simplemente
contiene un subconjunto de los datos del repositorio de firmware oficial, ya que no se
requieren todos los datos de ese repositorio.
Corriendo rpi-update
Si está seguro de que necesita usarlo rpi-update, es aconsejable que primero haga
una copia de seguridad de su sistema actual, ya que la ejecución rpi-update podría
provocar que el sistema no se inicie.
rpi-update debe ejecutarse como root. Una vez que se complete la actualización,
deberá reiniciar.
sudo rpi-update
sudo reiniciar
Tiene una serie de opciones, que están documentadas en el repositorio de Hexxeh
GitHub en https://github.com/Hexxeh/rpi-update
56
MANUAL RASPBERRY
PI 4
sudo apt install --reinstall libraspberrypi0 libraspberrypi- {bin, dev, doc} raspberrypi-
bootloader raspberrypi-kernel
Deberá reiniciar la Raspberry Pi para que estos cambios surtan efecto.
Reproducción de audio y video
La forma más sencilla de reproducir audio y video en Raspberry Pi es utilizar la
aplicación OMXPlayer instalada.
Esto está acelerado por hardware y puede reproducir muchos formatos de archivo de
audio y video populares. OMXPlayer utiliza la omx interfaz de aceleración de
hardware (API) OpenMAX ( ), que es la API de medios oficialmente admitida en
Raspberry Pi. OMXPlayer fue desarrollado por Edgar Hucek del Proyecto Kodi.
La aplicación OMXPlayer
La línea de comando más simple es omxplayer <name of media file>. El archivo
multimedia puede ser de audio, video o ambos. Para los ejemplos a continuación,
usamos un archivo de video H264 que se incluye con la instalación estándar del
sistema operativo Raspberry Pi.
omxplayer /opt/vc/src/hello_pi/hello_video/test.h264
Por defecto, el audio se envía al puerto analógico. Si está utilizando un dispositivo de
visualización equipado con HDMI con altavoces, debe indicarle a omxplayer que
envíe la señal de audio a través del enlace HDMI.
omxplayer --adev hdmi /opt/vc/src/hello_pi/hello_video/test.h264
Al mostrar video, toda la pantalla se utilizará como salida. Puede especificar en qué
parte de la pantalla desea que aparezca el video usando la opción de ventana.
omxplayer --win 0,0,640,480 /opt/vc/src/hello_pi/hello_video/test.h264
También puede especificar qué parte del video desea que se muestre: esto se
denomina ventana de recorte. Esta parte del video se ampliará para que coincida con
la pantalla, a menos que también use la opción de ventana.
omxplayer --crop 100,100,300,300 /opt/vc/src/hello_pi/hello_video/test.h264
Si está usando la pantalla táctil de Raspberry Pi Foundation y desea usarla para la
salida de video, use la opción de pantalla para especificar qué pantalla usar. n es 5
para HDMI, 4 para la pantalla táctil. Con la Raspberry Pi 4 tienes dos opciones para
salida HDMI. n es 2 para HDMI0 y 7 para HDMI1.
57
MANUAL RASPBERRY
PI 4
58
MANUAL RASPBERRY
PI 4
software. Además, VLC tiene soporte de hardware para H264 y el nuevo códec
HEVC.
Un video de ejemplo
Una muestra de video de la película animada Big Buck Bunny está disponible en su
Raspberry Pi. Para jugar, ingrese el siguiente comando en una ventana de terminal:
omxplayer /opt/vc/src/hello_pi/hello_video/test.h264
En un Pi 4, use el siguiente comando para archivos H264:
omxplayer /opt/vc/src/hello_pi/hello_video/test.h264
o para H264, VC1 o MPEG2
vlc /opt/vc/src/hello_pi/hello_video/test.h264
Al usar VLC, puede mejorar el rendimiento de reproducción encapsulando la
transmisión H264 sin procesar, por ejemplo, desde el módulo de cámara Raspberry
Pi. Esto se hace fácilmente usando ffmpeg. La reproducción también se mejora si
VLC se ejecuta en pantalla completa; seleccione pantalla completa en la interfaz de
usuario o puede agregar las –fullscreen opciones a la vlc línea de comandos.
Este comando de ejemplo se convierte video.h264 en un contenedor video.mp4 a 30
fps:
ffmpeg -r 30 -i video.h264 -c:v copy video.mp4
Opciones durante la reproducción
Hay varias opciones disponibles durante la reproducción, que se activan presionando
la tecla correspondiente. No todas las opciones estarán disponibles en todos los
archivos. La lista de combinaciones de teclas se puede mostrar mediante omxplayer
--keys:
1 disminución de velocidad
2 aumentar la velocidad
<rebobinar
> avance rápido
z mostrar información
j flujo de audio anterior
k siguiente flujo de audio
i capítulo anterior
59
MANUAL RASPBERRY
PI 4
o próximo capítulo
n flujo de subtítulos anterior
m siguiente flujo de subtítulos
s alternar subtítulos
w mostrar subtítulos
x ocultar subtítulos
d reducir el retardo de los subtítulos (- 250 ms)
f aumentar el retardo de los subtítulos (+ 250 ms)
q salir de omxplayer
p / espacio pausa / reanudar
- disminuir el volumen
+ / = aumentar el volumen
búsqueda de flecha izquierda -30 segundos
flecha derecha buscar +30 segundos
buscar flecha abajo -600 segundos
buscar flecha arriba +600 segundos
Jugando en segundo plano
omxplayer se cerrará inmediatamente si se ejecuta en segundo plano sin tty (entrada
del usuario), por lo que para ejecutar correctamente, debe indicar que omxplayer no
se requiera ninguna entrada del usuario mediante la --no-keys opción.
omxplayer --no-keys example.mp3 &
Agregar & al final del comando ejecuta el trabajo en segundo plano. Luego puede
verificar el estado de este trabajo en segundo plano usando el Jobs comando. De
forma predeterminada, el trabajo se completará cuando omxplayer termine de
reproducirse, pero si es necesario, puede detenerlo en cualquier momento mediante
el kill comando.
$ jobs
[1]- Running omxplayer --no-keys example.mp3 &
$ kill %1
$
[1]- Terminated omxplayer --no-keys example.mp3 &
60
MANUAL RASPBERRY
PI 4
61
MANUAL RASPBERRY
PI 4
NOTA
La pequeña resolución predeterminada utilizada y la presencia de un banner que
muestra la marca de tiempo.
La cámara web utilizada en este ejemplo tiene una resolución de, 1280 x 720 por lo
que para especificar la resolución a la que quiero que se tome la imagen, use la –r
bandera:
fswebcam -r 1280x720 image2.jpg
Este comando mostrará la siguiente información:
--- Abriendo / dev / video0 ...
Intentando el módulo fuente v4l2 ...
/ dev / video0 abierto.
No se especificó ninguna entrada, utilizando la primera.
--- Capturando fotograma ...
Datos JPEG corruptos: 1 bytes extraños antes del marcador 0xd5
Fotograma capturado en 0.00 segundos.
--- Procesando la imagen capturada ...
Escribiendo una imagen JPEG en 'image2.jpg'.
62
MANUAL RASPBERRY
PI 4
63
MANUAL RASPBERRY
PI 4
DATE=$(date +"%Y-%m-%d_%H%M")
chmod +x webcam.sh
Entonces corre con:
./webcam.sh
Lo que ejecutaría los comandos en el archivo y daría la salida habitual:
--- Abriendo / dev / video0 ...
Intentando el módulo fuente v4l2 ...
/ dev / video0 abierto.
No se especificó ninguna entrada, utilizando la primera.
--- Capturando fotograma ...
Datos JPEG corruptos: 2 bytes extraños antes del marcador 0xd6
Fotograma capturado en 0.00 segundos.
--- Procesando la imagen capturada ...
Deshabilitar banner.
Escribiendo una imagen JPEG en '/home/pi/webcam/2013-06-07_2338.jpg'.
Capturas de lapso de tiempo
Puede usar cron para programar la toma de una foto en un intervalo determinado,
como cada minuto para capturar un lapso de tiempo.
Primero abra la tabla cron para editar:
crontab -e
Esto le preguntará qué editor le gustaría usar o lo abrirá en su editor predeterminado.
Una vez que tenga el archivo abierto en un editor, agregue la siguiente línea para
programar la toma de una foto cada minuto (refiriéndose al script Bash de arriba):
* * * * * /home/pi/webcam.sh 2>&1
Guarde y salga y debería ver el mensaje:
crontab: installing new crontab
Asegúrese de que su secuencia de comandos no guarde todas las fotografías
tomadas con el mismo nombre de archivo. Esto sobrescribirá la imagen cada vez.
Utilidades útiles
Hay varias líneas de comando útiles
65
MANUAL RASPBERRY
PI 4
servicio de tv
tvservice es una aplicación de línea de comandos que se utiliza para obtener y
configurar información sobre la pantalla, dirigida principalmente a video y audio
HDMI.
Una mejor opción es usar la opción vcgencmd display_power , ya que esto retendrá
los framebuffers, por lo que cuando se vuelva a encender la pantalla volverá al
estado de encendido anterior.
66
MANUAL RASPBERRY
PI 4
67
MANUAL RASPBERRY
PI 4
vcgencmd
La vcgencmd herramienta se utiliza para generar información desde la GPU
VideoCore en la Raspberry Pi. Puede encontrar el código fuente de la vcgencmd
utilidad en Github .
Para obtener una lista de todos los comandos vcgencmd compatibles, utilice
vcgencmd commands. A continuación se enumeran algunos comandos útiles y sus
parámetros necesarios.
vcos
El vcos comando tiene dos subcomandos útiles:
version muestra la fecha de construcción y la versión del firmware en
VideoCore
log status muestra el estado del registro de errores de las diversas áreas de
firmware de VideoCore
versión
Muestra la fecha de compilación y la versión del firmware VideoCore.
get_camera
Muestra el estado habilitado y detectado de la cámara Raspberry Pi: 1significa sí,
0significa no. Si bien todo el firmware, excepto las versiones recortadas, admite la
cámara, esta compatibilidad debe habilitarse mediante raspi-config .
get_throttled
Devuelve el estado acelerado del sistema. Este es un patrón de bits: un bit que se
establece indica los siguientes significados:
Poco Valor hexadecimal Sentido
0 0x1 Detección de subtensión
1 0x2 Frecuencia de brazo limitada
2 0x4 Actualmente estrangulado
3 0x8 Límite de temperatura suave activo
16 0x10000 Ha ocurrido subtensión
68
MANUAL RASPBERRY
PI 4
medir_temp
Devuelve la temperatura del SoC medida por su sensor de temperatura interno; en
Raspberry Pi 4, measure_temp pmic devuelve la temperatura del PMIC.
medir_clock [reloj]
Esto devuelve la frecuencia actual del reloj especificado. Las opciones son:
Reloj Descripción
brazo Núcleo (s) ARM
centro Núcleo de la GPU
H264 Bloque H.264
isp Canalización del sensor de imagen
v3d Bloque 3D
uart UART
pwm Bloque PWM (salida de audio analógica)
emmc Interfaz de tarjeta SD
pixel Válvulas de píxel
vec Codificador de video analógico
hdmi HDMI
dpi Mostrar interfaz paralela
Tabla 0-5 Respuesta de la frecuencia actual del reloj especificado
cuadra Descripción
69
MANUAL RASPBERRY
PI 4
cuadra Descripción
sdram_
Voltaje Phy SDRAM
p
Tabla 0-6 voltajes
otp_dump
Muestra el contenido de la memoria OTP (programable una vez) dentro del SoC.
Estos son valores de 32 bits, indexados de 8 a 64. Consulte la página de bits OTP
para obtener más detalles.
get_config [elemento de configuración | int | str]
Mostrar el valor de la configuración especificada: como alternativa, especifique int
(entero) o str (cadena) para ver todos los elementos de configuración del tipo dado.
Por ejemplo:
vcgencmd get_config total_mem
devuelve la memoria total del dispositivo en megabytes.
tipo get_mem
Informa sobre la cantidad de memoria direccionable por ARM y GPU. Para mostrar la
cantidad de uso de memoria direccionable ARM vcgencmd get_mem arm; para
mostrar la cantidad de uso de memoria direccionable por GPU vcgencmd get_mem
gpu. Tenga en cuenta que en dispositivos con más de 1 GB de memoria, el arm
parámetro siempre devolverá 1 GB menos el gpu valor de la memoria, ya que el
firmware de la GPU solo reconoce el primer 1 GB de memoria. Para obtener un
informe preciso de la memoria total del dispositivo, consulte el total_mem elemento
de configuración; consulte la get_configsección anterior.
codec_enabled [tipo]
Informa si el tipo de CODEC especificado está habilitado. Las posibles opciones de
tipo son AGIF, FLAC, H263, H264, MJPA, MJPB, MJPG, MPG2 , MPG4, MVC0,
PCM, THRA, VORB, VP6, VP8, WMV9 , WVC1 . Los resaltados actualmente
70
MANUAL RASPBERRY
PI 4
requieren una licencia de pago (consulte la sección de este config.txt para obtener
más información), excepto en Pi 4 y 400, donde estos códecs de hardware están
deshabilitados en lugar de la decodificación de software, que no requiere licencia.
Tenga en cuenta que debido a que el bloque H.265 HW en Raspberry Pi 4 y 400 no
es parte de la GPU VideoCore, no se accede a su estado a través de este comando.
get_lcd_info
Muestra la resolución y la profundidad de color de cualquier pantalla adjunta.
mem_oom
Muestra estadísticas sobre cualquier evento OOM (memoria insuficiente) que ocurra
en el espacio de memoria de VideoCore.
mem_reloc_stats
Muestra estadísticas del asignador de memoria reubicable en VideoCore.
read_ring_osc
Devuelve el voltaje de velocidad actual y la temperatura del oscilador de anillo.
hdmi_timings
Muestra los tiempos de la configuración HDMI actual. Consulte Video Config para
obtener detalles de los valores devueltos.
dispmanx_list
Volcar una lista de todos los elementos dispmanx que se muestran actualmente.
display_power [0 | 1 | -1] [mostrar]
Muestra el estado de energía de la pantalla actual o configura el estado de energía
de la pantalla. vcgencmd display_power 0 apagará la energía de la pantalla actual.
vcgencmd display_power 1 encenderá la pantalla. Si no se establece ningún
parámetro, esto mostrará el estado de energía actual. El parámetro final es un ID de
pantalla opcional, según lo devuelto por tvservice –l o desde la tabla a continuación,
que permite encender o apagar una pantalla específica.
Tenga en cuenta que para la pantalla táctil Raspberry Pi de 7 ", esto simplemente
enciende y apaga la luz de fondo. La funcionalidad táctil sigue funcionando con
normalidad.
71
MANUAL RASPBERRY
PI 4
Monitor IDENTIFICACIÓN
LCD principal 0
LCD
1
secundario
HDMI 0 2
Compuesto 3
HDMI 1 7
Tabla 0-7 Identificador que muestra el monitor
72
MANUAL RASPBERRY
PI 4
Iniciar
Descripción
sesión
73
MANUAL RASPBERRY
PI 4
Pitón
Python es un poderoso lenguaje de programación que es fácil de usar, fácil de leer y
escribir y, con Raspberry Pi, le permite conectar su proyecto al mundo real. La
sintaxis de Python es limpia, con énfasis en la legibilidad y utiliza palabras clave
estándar en inglés.
Thonny
La introducción más sencilla a Python es a través de Thonny , un entorno de
desarrollo de Python 3. Puede abrir Thonny desde el escritorio o desde el menú de
aplicaciones.
74
MANUAL RASPBERRY
PI 4
anidadas. Sin embargo, Python no usa llaves, sino que requiere una sangría para
anidar. Por ejemplo, un for bucle en Python:
for i in range(10):
print("Hello")
La sangría es necesaria aquí. Una segunda línea con sangría sería parte del ciclo, y
una segunda línea sin sangría estaría fuera del ciclo. Por ejemplo:
for i in range(2):
print("A")
print("B")
imprimiría:
A
B
A
B
mientras que lo siguiente:
for i in range(2):
print("A")
print("B")
imprimiría:
A
A
B
Variables
Para guardar un valor en una variable, asígnelo así:
name = "Bob"
age = 15
Tenga en cuenta que los tipos de datos no se especificaron con estas variables, ya
que los tipos se infieren y se pueden cambiar más adelante.
age = 15
age += 1 # increment age by 1
75
MANUAL RASPBERRY
PI 4
print(age)
Esta vez utilicé comentarios al lado del comando de incremento.
Comentarios
Los comentarios se ignoran en el programa, pero están ahí para que dejes notas y se
indican con el # símbolo de almohadilla . Los comentarios de varias líneas usan
comillas triples así:
"""
This is a very simple Python program that prints "Hello".
That's all it does.
"""
print("Hello")
Liza
Python también tiene listas (llamadas matrices en algunos lenguajes) que son
colecciones de datos de cualquier tipo:
numbers = [1, 2, 3]
Las listas se indican mediante el uso de corchetes [ ] y cada elemento está separado
por una coma.
Iteración
Algunos tipos de datos son iterables, lo que significa que puede recorrer los valores
que contienen. Por ejemplo, una lista:
numbers = [1, 2, 3]
76
MANUAL RASPBERRY
PI 4
Tenga en cuenta que usé la palabra number para denotar cada elemento. Esta es
simplemente la palabra que elegí para esto; se recomienda que elija palabras
descriptivas para las variables; usar plurales para las listas y singular para cada
elemento tiene sentido. Facilita la comprensión al leer.
Otros tipos de datos son iterables, por ejemplo, la cadena:
dog_name = "BINGO"
77
MANUAL RASPBERRY
PI 4
if len(name) > 3:
print("Nice name,")
print(name)
78
MANUAL RASPBERRY
PI 4
else:
print("That's a short name,")
print(name)
Archivos de Python en Thonny
Para crear un archivo Python en Thonny, haga clic File > New y se le dará
unventana. Este es un archivo vacío, no un indicador de Python. Escribe un archivo
de Python en esta ventana, lo guarda, luego lo ejecuta y verá el resultado en la otra
ventana.
Por ejemplo, en la nueva ventana, escriba:
n=0
79
MANUAL RASPBERRY
PI 4
Este shell es un indicador listo para ingresar los comandos de Python. Puede usar
esto de la misma manera que Thonny, pero no tiene resaltado de sintaxis ni
autocompletado. Puede consultar el historial de los comandos que ingresó en el
REPL utilizando las Up/Downteclas. Use Ctrl + D para salir.
IPython
IPython es un shell de Python interactivo con resaltado de sintaxis, autocompletado,
impresión bonita, documentación incorporada y más. IPython no está instalado de
forma predeterminada. Instalar con:
sudo pip3 install ipython
Luego ejecute con ipython desde la línea de comando. Funciona como el estándar
python3, pero tiene más funciones. Intente escribir len? y presionar Enter. Se le
muestra información, incluida la cadena de documentos de la 1en función:
Type: builtin_function_or_method
String Form:<built-in function len>
Namespace: Python builtin
Docstring:
len(object) -> integer
9: 729,
10: 1000,
11: 1331}
En el shell estándar de Python, esto se habría impreso en una línea:
{0: 0, 1: 1, 2: 8, 3: 27, 4: 64, 5: 125, 6: 216, 7: 343, 8: 512, 9: 729, 10: 1000, 11: 1331}
Puede mirar hacia atrás en el historial de los comandos que ha ingresado en el REPL
usando las Up/Downteclas como en python. El historial también persiste hasta la
siguiente sesión, por lo que puede salir ipython y regresar (o cambiar entre v2 / 3) y
el historial permanece. Use Ctrl + D para salir.
81
MANUAL RASPBERRY
PI 4
No todos los paquetes de Python están disponibles en los archivos del sistema
operativo Raspberry Pi, y los que lo están a veces pueden estar desactualizados. Si
no puede encontrar una versión adecuada en los archivos del sistema operativo
Raspberry Pi, puede instalar paquetes desde el índice de paquetes de Python
(conocido como PyPI).
Para hacerlo, instale pip:
sudo apt install python3-pip
Luego instale los paquetes de Python (por ejemplo, simplejson) con pip3:
sudo pip3 install simplejson
piwheels
El índice oficial de paquetes de Python (PyPI) aloja archivos cargados por los
encargados del mantenimiento de paquetes. Algunos paquetes requieren
compilación (compilación de C / C ++ o código similar) para instalarlos, lo que puede
ser una tarea que requiere mucho tiempo, especialmente en Raspberry Pi 1 o Pi Zero
de un solo núcleo.
piwheels es un servicio que proporciona paquetes precompilados (llamados Python
wheels ) listos para usar en Raspberry Pi. El sistema operativo Raspberry Pi está
preconfigurado para usar piwheels para pip. Lea más sobre el proyecto piwheels en
www.piwheels.org .
GPIO y el encabezado de 40 pines
82
MANUAL RASPBERRY
PI 4
Cualquiera de los pines GPIO puede designarse (en el software) como un pin de
entrada o salida y usarse para una amplia gama de propósitos.
NOTA
la numeración de los pines GPIO no está en orden numérico; Los pines GPIO 0 y 1
están presentes en la placa (pines físicos 27 y 28) pero están reservados para uso
avanzado (ver más abajo).
Voltajes
En la placa hay dos pines de 5V y dos pines de 3V3, así como varios pines de tierra
(0V), que no son configurables. Los pines restantes son todos pines 3V3 de uso
general, lo que significa que las salidas están configuradas en 3V3 y las entradas son
tolerantes a 3V3.
83
MANUAL RASPBERRY
PI 4
Salidas
Un pin GPIO designado como pin de salida se puede configurar en alto (3V3) o bajo
(0V).
Entradas
Un pin GPIO designado como pin de entrada se puede leer como alto (3V3) o bajo
(0V). Esto se hace más fácil con el uso de resistencias internas pull-up o pull-down.
Los pines GPIO2 y GPIO3 tienen resistencias pull-up fijas, pero para otros pines esto
se puede configurar en el software.
Más
Además de los dispositivos de entrada y salida simples, los pines GPIO se pueden
usar con una variedad de funciones alternativas, algunas están disponibles en todos
los pines, otras en pines específicos.
PWM (modulación de ancho de pulso)
Software PWM disponible en todos los pines
Hardware PWM disponible en GPIO12, GPIO13, GPIO18, GPIO19
SPI
SPI0: MOSI (GPIO10); MISO (GPIO9); SCLK (GPIO11); CE0 (GPIO8), CE1
(GPIO7)
SPI1: MOSI (GPIO20); MISO (GPIO19); SCLK (GPIO21); CE0 (GPIO18); CE1
(GPIO17); CE2 (GPIO16)
I2C
Datos: (GPIO2); Reloj (GPIO3)
Datos EEPROM: (GPIO0); Reloj EEPROM (GPIO1)
De serie
TX (GPIO14); RX (GPIO15)
Pinout GPIO
Se puede acceder a una referencia útil en la Raspberry Pi abriendo una ventana de
terminal y ejecutando el comando pinout. Esta herramienta la proporciona la
biblioteca GPIO Zero Python, que se instala de forma predeterminada en la imagen
84
MANUAL RASPBERRY
PI 4
Para obtener más detalles sobre las capacidades avanzadas de los pines GPIO,
consulte el diagrama de pines interactivo de gadgetoid .
85
MANUAL RASPBERRY
PI 4
ADVERTENCIA
Si bien conectar componentes simples a los pines GPIO es perfectamente seguro, es
importante tener cuidado con la forma en que conecta las cosas. Los LED deben
tener resistencias para limitar la corriente que pasa a través de ellos. No use 5V para
componentes 3V3. No conecte motores directamente a los pines GPIO, en su lugar
use un circuito de puente H o una placa controladora de motor .
Permisos
Para utilizar los puertos GPIO, su usuario debe ser miembro del gpio grupo. El pi
usuario es un miembro de forma predeterminada, otros usuarios deben agregarse
manualmente.
sudo usermod -a -G gpio <username>
GPIO en Python
El uso de la biblioteca GPIO Zero facilita comenzar a controlar dispositivos GPIO con
Python. La biblioteca está ampliamente documentada en gpiozero.readthedocs.io .
DIRIGIÓ
Para controlar un LED conectado a GPIO17, puede usar este código:
from gpiozero import LED
from time import sleep
led = LED(17)
while True:
led.on()
sleep(1)
led.off()
sleep(1)
Ejecute esto en un IDE como Thonny, y el LED parpadeará y se apagará
repetidamente.
Para leer el estado de un botón conectado a GPIO2, puede usar este código:
from gpiozero import Button
from time import sleep
button = Button(2)
while True:
if button.is_pressed:
print("Pressed")
else:
print("Released")
sleep(1)
La funcionalidad del botón incluye las propiedades is_pressedy is_held; devoluciones
de llamada when_pressed, when_releasedy when_held; y métodos wait_for_press()y
wait_for_release.
Botón + LED
Para conectar el LED y el botón juntos, puede usar este código:
from gpiozero import LED, Button
led = LED(17)
button = Button(2)
while True:
if button.is_pressed:
led.on()
else:
led.off()
Alternativamente:
from gpiozero import LED, Button
87
MANUAL RASPBERRY
PI 4
led = LED(17)
button = Button(2)
while True:
button.wait_for_press()
led.on()
button.wait_for_release()
led.off()
o:
from gpiozero import LED, Button
led = LED(17)
button = Button(2)
button.when_pressed = led.on
button.when_released = led.off
3.5 Configuracion.
Herramienta raspi-config
raspi-config es la herramienta de configuración de Raspberry Pi escrita originalmente
por Alex Bradbury . Para abrir la herramienta de configuración, escriba lo siguiente
en la línea de comando:
sudo raspi-config
El sudo es obligatorio porque cambiará archivos que no son de su propiedad como pi
usuario.
NOTA
Si está utilizando el escritorio Raspberry Pi, puede usar la Raspberry Pi Configuration
aplicación gráfica del Preferences menú para configurar su Raspberry Pi.
A continuación, debería ver una pantalla azul con opciones en un cuadro gris
88
MANUAL RASPBERRY
PI 4
NOTA
El menú que se muestra puede diferir ligeramente.
Utilice las teclas de flecha up y down para mover la selección resaltada entre las
opciones disponibles. Si presiona la right tecla de flecha, saldrá del menú Opciones y
lo llevará a los botones <Select> y <Finish>. Si presiona left, volverá a las opciones.
Alternativamente, puede usar la Tab tecla para cambiar entre estos.
En términos generales, raspi-config tiene como objetivo proporcionar la funcionalidad
para realizar los cambios de configuración más comunes. Esto puede resultar en
ediciones automatizadas /boot/config.txt y en varios archivos de configuración
estándar de Linux. Algunas opciones requieren reiniciar para que surtan efecto. Si
cambió alguno de ellos, raspi-config le preguntará si desea reiniciar ahora cuando
seleccione el <Finish> botón.
NOTA
En listas largas de valores de opciones (como la lista de ciudades de zona horaria),
también puede escribir una letra para saltar a esa sección de la lista. Por ejemplo,
ingresar Llo saltará a Lisboa, a solo dos opciones de Londres, para evitar que tenga
que desplazarse por todo el alfabeto.
Lista de opciones
NOTA
Debido al desarrollo continuo de la raspi-config herramienta, es posible que la lista de
opciones a continuación no esté completamente actualizada. También tenga en
89
MANUAL RASPBERRY
PI 4
90
MANUAL RASPBERRY
PI 4
91
MANUAL RASPBERRY
PI 4
SSH
Habilite / deshabilite el acceso remoto a la línea de comandos a su Pi usando SSH.
SSH le permite acceder de forma remota a la línea de comando de la Raspberry Pi
desde otra computadora. SSH está deshabilitado de forma predeterminada. Obtenga
más información sobre el uso de SSH en la página de documentación de SSH . Si
conecta su Pi directamente a una red pública, no debe habilitar SSH a menos que
haya configurado contraseñas seguras para todos los usuarios.
VNC
Habilite / deshabilite el servidor de computación de la red virtual RealVNC.
SPI
Habilite / deshabilite las interfaces SPI y la carga automática del módulo del kernel
SPI, necesaria para productos como PiFace.
I2C
Habilita / deshabilita las interfaces I2C y la carga automática del módulo del kernel
I2C.
De serie
Habilite / deshabilite los mensajes de shell y kernel en la conexión en serie.
1 hilo
Habilite / deshabilite la interfaz de 1 cable de Dallas. Esto se usa generalmente para
sensores de temperatura DS18B20.
GPIO remoto
Habilite o deshabilite el acceso remoto a los pines GPIO.
Opciones de desempeño
Overclock
En algunos modelos es posible overclockear la CPU de su Raspberry Pi usando esta
herramienta. El overclocking que puede lograr variará; un overclocking demasiado
alto puede provocar inestabilidad. Al seleccionar esta opción, se muestra la siguiente
advertencia:
Tenga en cuenta que el overclocking puede reducir la vida útil de su Raspberry Pi. Si
el overclocking a un cierto nivel causa inestabilidad en el sistema, pruebe con un
92
MANUAL RASPBERRY
PI 4
93
MANUAL RASPBERRY
PI 4
94
MANUAL RASPBERRY
PI 4
95
MANUAL RASPBERRY
PI 4
Los iconos de la derecha muestran si una red está protegida o no y dan una
indicación de la intensidad de la señal. Haga clic en la red a la que desea conectarse.
Si está protegido, un cuadro de diálogo le pedirá que ingrese la clave de red:
Ingrese la clave y haga clic en Aceptar , luego espere un par de segundos. El icono
de red parpadeará brevemente para mostrar que se está estableciendo una
conexión. Cuando esté listo, el icono dejará de parpadear y mostrará la intensidad de
la señal.
Usando la línea de comandos
Este método es adecuado si no tiene acceso a la interfaz gráfica de usuario que se
usa normalmente para configurar una LAN inalámbrica en la Raspberry Pi. Es
particularmente adecuado para usar con un cable de consola en serie si no tiene
acceso a una pantalla o red Ethernet cableada. Tenga en cuenta también que no se
requiere software adicional; todo lo que necesita ya está incluido en la Raspberry Pi.
Usando raspi-config
96
MANUAL RASPBERRY
PI 4
97
MANUAL RASPBERRY
PI 4
red = {
ssid = "prueba"
psk = "testingPassword"
}
La contraseña se puede configurar como representación ASCII, entre comillas como
en el ejemplo anterior, o como un número hexadecimal de 32 bytes preencriptado.
Puede utilizar la wpa_passphrase utilidad para generar una PSK cifrada. Esto toma
el SSID y la contraseña y genera el PSK encriptado. Con el ejemplo anterior, puede
generar el PSK con wpa_passphrase "testing". Luego se le pedirá la contraseña de la
red inalámbrica (en este caso testingPassword). El resultado es el siguiente:
red = {
ssid = "prueba"
# psk = "testingPassword"
psk =
131e1e221f6e06e3911a2d11ff2fac9182665c004de85300f9cac208a6a80531
}
Tenga en cuenta que la versión de texto sin formato del código está presente, pero
comentada. Debe eliminar esta línea del wpa_supplicant archivo final para mayor
seguridad.
La wpa_passphrase herramienta requiere una contraseña de entre 8 y 63 caracteres.
Para utilizar una contraseña más compleja, puede extraer el contenido de un archivo
de texto y utilizarlo como entrada para wpa_passphrase. Guarde la contraseña en un
archivo de texto e introdúzcala wpa_passphrase llamando wpa_passphrase "testing"
< file_where_password_is_stored. Para mayor seguridad, debe eliminar el
file_where_password_is_stored después, para que no haya una copia de texto sin
formato de la contraseña original en el sistema.
Para usar el wpa_passphrase PSK cifrado, puede copiar y pegar el PSK cifrado en el
wpa_supplicant.conf archivo o redirigir la salida de la herramienta al archivo de
configuración de una de estas dos formas:
98
MANUAL RASPBERRY
PI 4
99
MANUAL RASPBERRY
PI 4
100
MANUAL RASPBERRY
PI 4
red = {
ssid = "HomeNetworkSSID"
psk = "passwordHome"
id_str = "casa"
}
Si tiene dos redes dentro del alcance, puede agregar la opción de prioridad para
elegir entre ellas. La red en rango, con mayor prioridad, será la que esté conectada.
red = {
ssid = "HomeOneSSID"
psk = "contraseñaOne"
prioridad = 1
id_str = "homeOne"
}
red = {
ssid = "HomeTwoSSID"
psk = "contraseñaDos"
prioridad = 2
id_str = "homeTwo"
}
El demonio DHCP
La Raspberry Pi utiliza dhcpcd para configurar TCP / IP en todas sus interfaces de
red. El dhcpcd daemon está destinado a ser un cliente ZeroConf todo en uno para
sistemas similares a UNIX. Esto incluye la asignación de una dirección IP a cada
interfaz, la configuración de máscaras de red y la configuración de la resolución de
DNS a través de la función Name Service Switch (NSS).
De forma predeterminada, Raspberry Pi OS intenta configurar automáticamente
todas las interfaces de red por DHCP, recurriendo a direcciones privadas
101
MANUAL RASPBERRY
PI 4
102
MANUAL RASPBERRY
PI 4
Configuración de redes
Deberá definir un wpa_supplicant.conf archivo para su red inalámbrica particular.
Coloque este archivo en la carpeta de inicio de la tarjeta SD. Cuando la Raspberry Pi
se inicia por primera vez, copiará ese archivo en la ubicación correcta en el sistema
de archivos raíz de Linux y usará esa configuración para iniciar la red inalámbrica.
La dirección IP de la Raspberry Pi no será visible inmediatamente después del
encendido, por lo que este paso es crucial para conectarse sin cabeza. Dependiendo
del sistema operativo y el editor en el que esté creando esto, el archivo podría tener
nuevas líneas incorrectas o la extensión de archivo incorrecta, así que asegúrese de
usar un editor que tenga en cuenta esto. Linux espera el carácter de salto de línea
(LF).
ADVERTENCIA
Una vez que su Raspberry Pi esté conectada a la alimentación, asegúrese de
esperar unos minutos (hasta 5) para que se inicie y se registre en la red.
Un wpa_supplicant.confejemplo de archivo:
ctrl_interface = DIR = / var / run / wpa_supplicant GROUP = netdev
country = <Inserte aquí el código de país ISO 3166-1 de 2 letras>
update_config = 1
red = {
ssid = "<Nombre de su LAN inalámbrica>"
psk = "<Contraseña para su LAN inalámbrica>"
}
Donde se debe establecer el código de país, el código ISO / IEC alpha2 de dos letras
para el país en el que está utilizando, p. Ej.
GB (Reino Unido)
FR (Francia)
DE (Alemania)
EE. UU. (Estados Unidos)
SE (Suecia)
103
MANUAL RASPBERRY
PI 4
Aquí hay un ejemplo más elaborado que debería funcionar para la mayoría de las
redes personales wpa2 típicas. Esta plantilla a continuación funciona para redes
ocultas o no de 2.4ghz / 5ghz. ¡El uso de comillas alrededor del ssid - psk puede
ayudar a evitar cualquier rareza si su ssid de red o contraseña tiene caracteres
especiales (! @ # $ Etc)
ctrl_interface = DIR = / var / run / wpa_supplicant GROUP = netdev
update_config = 1
country = <Inserte aquí el código de país ISO 3166-1 de 2 letras>
red = {
scan_ssid = 1
ssid = "<Nombre de su LAN inalámbrica>"
psk = "<Contraseña para su LAN inalámbrica>"
proto = RSN
key_mgmt = WPA-PSK
por pares = CCMP
auth_alg = ABRIR
}
NOTA
Algunas placas Raspberry Pi más antiguas y algunos dongles inalámbricos USB no
admiten redes de 5 GHz.
NOTA
Sin teclado ni monitor, necesitará alguna forma de acceder de forma remota a su
Raspberry Pi sin cabeza. Para la configuración sin cabeza, SSH se puede habilitar
colocando un archivo con nombre ssh, sin ninguna extensión, en la carpeta de inicio
de la tarjeta SD. Para obtener más información, consulte la sección sobre la
configuración de un servidor SSH .
104
MANUAL RASPBERRY
PI 4
106
MANUAL RASPBERRY
PI 4
NOTA
Si desea impedir que los clientes inalámbricos accedan a la red Ethernet e Internet,
omita esta sección.
Para habilitar el enrutamiento, es decir, para permitir que el tráfico fluya de una red a
otra en la Raspberry Pi, cree un archivo usando el siguiente comando, con el
contenido a continuación:
sudo nano /etc/sysctl.d/routed-ap.conf
107
MANUAL RASPBERRY
PI 4
108
MANUAL RASPBERRY
PI 4
Para asegurarse de que la radio WiFi no esté bloqueada en su Raspberry Pi, ejecute
el siguiente comando:
sudo rfkill desbloquear wlan
109
MANUAL RASPBERRY
PI 4
+ - Enrutador ---- + |
| Cortafuegos | | + - PC # 2 ------ +
(Internet) --- WAN- + servidor DHCP + -LAN - + --- + 10.10.0.3 |
| 10.10.0.1 | | + ------------- +
+ ------------- + |
| + - PC # 1 ------ +
+ --- + 10.10.0.4 |
+ ------------- +
Se puede crear un punto de acceso inalámbrico en puente usando las funciones
inalámbricas incorporadas de Raspberry Pi 4, Raspberry Pi 3 o Raspberry Pi Zero W,
o usando un dongle inalámbrico USB adecuado que admita el modo de punto de
acceso. Es posible que algunas llaves USB necesiten cambios leves en su
configuración. Si tiene problemas con una llave USB inalámbrica, consulte los foros .
Esta documentación se probó en una Raspberry Pi 3B con una instalación nueva de
Raspberry Pi OS Buster.
Antes de que empieces
Asegúrese de tener acceso administrativo a su Raspberry Pi. La configuración
de la red se restablecerá por completo como parte de la instalación: se
recomienda el acceso local, con la pantalla y el teclado conectados a su
Raspberry Pi.
NOTA
Si instala de forma remota a través de SSH, conéctese a su Raspberry Pi por
nombre en lugar de por dirección IP, por ejemplo , ya que la dirección de su
Raspberry Pi en la red probablemente cambiará después de la instalación.
También debe estar listo para agregar pantalla y teclado si es necesario en
caso de que pierda el contacto con su Raspberry Pi después de la
instalación.ssh pi@raspberrypi.local
Conecte su Raspberry Pi a la red Ethernet e inicie el sistema operativo
Raspberry Pi.
112
MANUAL RASPBERRY
PI 4
Nombre = eth0
[La red]
Puente = br0
NOTA
El software del punto de acceso agregará la interfaz inalámbrica wlan0al puente
cuando se inicie el servicio. No es necesario crear un archivo para esa interfaz. Esta
situación es particular de las interfaces LAN inalámbricas.
Ahora habilite el systemd-networkd servicio para crear y poblar el puente cuando
arranque su Raspberry Pi:
sudo systemctl habilitar systemd-networkd
Definir la configuración de IP del dispositivo puente
A las interfaces de red que son miembros de un dispositivo puente nunca se les
asigna una dirección IP, ya que se comunican a través del puente. El dispositivo
puente en sí necesita una dirección IP para que pueda acceder a su Raspberry Pi en
la red.
dhcpcd, el cliente DHCP en la Raspberry Pi, solicita automáticamente una dirección
IP para cada interfaz activa. Por lo tanto, debemos bloquear el procesamiento de las
interfaces eth0 y wlan0 y dejar que se dhcpcd configuren solo a br0 través de DHCP.
sudo nano /etc/dhcpcd.conf
Agregue la siguiente línea cerca del principio del archivo (arriba de la primera
interface xxx línea, si corresponde):
denyinterfaces wlan0 eth0
Vaya al final del archivo y agregue lo siguiente:
interfaz br0
Con esta línea, la interfaz br0 se configurará de acuerdo con los valores
predeterminados a través de DHCP. Guarde el archivo para completar la
configuración IP de la máquina.
Asegurar el funcionamiento inalámbrico
Los países de todo el mundo regulan el uso de bandas de radiofrecuencia de
telecomunicaciones para garantizar un funcionamiento sin interferencias. El sistema
114
MANUAL RASPBERRY
PI 4
operativo Linux ayuda a los usuarios a cumplir con estas reglas al permitir que las
aplicaciones se configuren con un "código de país WiFi" de dos letras, por ejemplo,
US para una computadora utilizada en los Estados Unidos.
En el sistema operativo Raspberry Pi, la red inalámbrica de 5 GHz está deshabilitada
hasta que el usuario haya configurado un código de país WiFi, generalmente como
parte del proceso de instalación inicial (consulte las páginas de configuración
inalámbrica en esta sección para obtener más detalles).
Para asegurarse de que la radio WiFi no esté bloqueada en su Raspberry Pi, ejecute
el siguiente comando:
sudo rfkill desbloquear wlan
Esta configuración se restaurará automáticamente en el momento del arranque. A
continuación, definiremos un código de país apropiado en la configuración del
software del punto de acceso.
Configurar el software AP
Cree el hostapd archivo de configuración, ubicado en /etc/hostapd/hostapd.conf, para
agregar los diversos parámetros para su nueva red inalámbrica.
sudo nano /etc/hostapd/hostapd.conf
Agregue la siguiente información al archivo de configuración. Esta configuración
asume que estamos usando el canal 7, con un nombre de red NameOfNetwork y una
contraseña AardvarkBadgerHedgehog. Tenga en cuenta que el nombre y la
contraseña no deben tener comillas. La frase de contraseña debe tener entre 8 y 64
caracteres de longitud.
country_code = GB
interfaz = wlan0
puente = br0
ssid = NameOfNetwork
hw_mode = g
canal = 7
macaddr_acl = 0
auth_algs = 1
ignore_broadcast_ssid = 0
115
MANUAL RASPBERRY
PI 4
wpa = 2
wpa_passphrase = AardvarkBadgerHedgehog
wpa_key_mgmt = WPA-PSK
wpa_pairwise = TKIP
rsn_pairwise = CCMP
Tenga en cuenta las líneas interface=wlan0y bridge=br0: estos dirigen hostapda
agregar la wlan0interfaz como miembro del puente br0cuando se inicia el punto de
acceso, completando el puente entre Ethernet e inalámbrico.
Tenga en cuenta la línea country_code=GB: configura la computadora para usar las
frecuencias inalámbricas correctas en el Reino Unido. Adapte esta línea y
especifique el código ISO de dos letras de su país. Consulte Wikipedia para obtener
una lista de códigos de país ISO 3166-1 de dos letras.
Para usar la banda de 5 GHz, puede cambiar el modo de operaciones de
hw_mode=ga hw_mode=a. Los valores posibles para hw_modeson:
a = IEEE 802.11a (5 GHz) (Raspberry Pi 3B + en adelante)
b = IEEE 802.11b (2,4 GHz)
g = IEEE 802.11g (2,4 GHz)
Tenga en cuenta que al cambiar el hw_mode, es posible que también deba cambiar
el channel; consulte Wikipedia para obtener una lista de combinaciones permitidas.
Ejecute el nuevo AP inalámbrico
Ahora reinicie su Raspberry Pi y verifique que el punto de acceso inalámbrico esté
disponible automáticamente.
sudo systemctl reiniciar
Una vez que su Raspberry Pi se haya reiniciado, busque redes inalámbricas con su
cliente inalámbrico. El SSID de red que especificó en el archivo
/etc/hostapd/hostapd.conf ahora debería estar presente y debería ser accesible con
la contraseña especificada.
116
MANUAL RASPBERRY
PI 4
Si encuentra dificultades, comuníquese con los foros para obtener ayuda. Consulte
esta página en su mensaje.
Usando un servidor proxy
Si desea que su Raspberry Pi acceda a Internet a través de un servidor proxy (tal vez
de una escuela u otro lugar de trabajo), deberá configurar su Pi para usar el servidor
antes de poder conectarse.
Necesitará:
La dirección IP o el nombre de host y el puerto de su servidor proxy.
Un nombre de usuario y contraseña para su proxy (si es necesario)
Configurando su Raspberry Pi
Tendrá que establecer tres variables de entorno ( http_proxy, https_proxyy no_proxy)
por lo que su Frambuesa Pi sabe cómo acceder al servidor proxy.
Abra una ventana de terminal y abra el archivo /etc/environment usando nano:
sudo nano / etc / environment
Agregue lo siguiente al /etc/environment archivo para crear la http_proxy variable:
exportar http_proxy = "http: // proxyipaddress: proxyport"
Reemplace proxyipaddressy proxyportcon la dirección IP y el puerto de su proxy.
NOTA
si su proxy requiere un nombre de usuario y contraseña, agréguelos usando el
siguiente formato:
exportar http_proxy = "http: // nombre de usuario: contraseña @ proxyipaddress:
proxyport"
Ingrese la misma información para la variable de entorno https_proxy:
exportar https_proxy = "http: // nombre de usuario: contraseña @ proxyipaddress:
proxyport"
Cree la no_proxy variable de entorno, que es una lista separada por comas de
direcciones para las que su Pi no debería usar el proxy:
exportar no_proxy = "localhost, 127.0.0.1"
Su /etc/environment archivo ahora debería verse así:
exportar http_proxy = "http: // nombre de usuario: contraseña @ proxyipaddress:
proxyport"
117
MANUAL RASPBERRY
PI 4
118
MANUAL RASPBERRY
PI 4
119
MANUAL RASPBERRY
PI 4
La Raspberry Pi 4 puede manejar hasta dos pantallas, con una resolución de hasta
1080p a una frecuencia de actualización de 60Hz. Con una resolución de 4K, si
conecta dos pantallas, está limitado a una frecuencia de actualización de 30Hz.
También puede manejar una sola pantalla a 4K con una frecuencia de actualización
de 60Hz: esto requiere que la pantalla esté conectada al puerto HDMI adyacente a la
entrada de alimentación USB-C (etiquetada como HDMI0). También debe habilitar la
salida 4Kp60 configurando el hdmi_enable_4kp60=1 indicador en config.txt. Esta
bandera también se puede configurar utilizando la herramienta 'Configuración de
Raspberry Pi' dentro del entorno de escritorio.
Si está ejecutando el controlador de gráficos 3D (también conocido como controlador
FKMS), en el menú Preferencias encontrará una aplicación gráfica para configurar
pantallas estándar, incluidas configuraciones de múltiples pantallas.
NOTA
La herramienta de configuración de pantalla ( arandr) es una herramienta gráfica
para seleccionar modos de visualización y configurar varias pantallas. Puede
encontrar esta herramienta en el menú de Preferencias del escritorio, pero solo si se
está utilizando el controlador de gráficos 3D, ya que es este controlador el que
proporciona la funcionalidad de configuración de modo requerida. Utilice la opción de
menú Configurar para seleccionar la pantalla, la resolución y la orientación. Si está
utilizando una configuración de múltiples pantallas, arrastre alrededor de las
pantallas a la posición que desee. Cuando tenga la configuración requerida, haga clic
en el botón Marcar para aplicar la configuración.
Si está utilizando controladores de gráficos heredados o se encuentra en
circunstancias en las que la Raspberry Pi puede no ser capaz de determinar el mejor
modo, o tal vez desee específicamente establecer una resolución no predeterminada,
el resto de esta página puede ser útil.
NOTA
Todos los comandos están completamente documentados en la sección config.txt de
la documentación.
120
MANUAL RASPBERRY
PI 4
121
MANUAL RASPBERRY
PI 4
4:3 1
14:9 2
16:9 3
5:4 4
16:10 5
15:9 6
21:9 7
64:27 8
Tabla 0-10 aspect_ratio identificación
Para el Pi4, para especificar el puerto HDMI, puede agregar un identificador de índice
al config.txt. p . ej . hdmi_cvt:0=... o hdmi_timings:1=.... Si no se especifica ningún
identificador de puerto, la configuración se aplica al puerto 0.
Solución de problemas de su HDMI
En algunos casos excepcionales, es posible que deba aumentar la potencia de la
unidad HDMI, por ejemplo, cuando hay manchas en la pantalla o cuando utiliza
123
MANUAL RASPBERRY
PI 4
cables muy largos. Hay un elemento config.txt para hacer esto config_hdmi_boost,
que está documentado en la página de video config.txt .
NOTA
La Raspberry Pi 4B aún no es compatible config_hdmi_boost, la compatibilidad con
esta opción se agregará en una futura actualización de software.
Rotar su pantalla
Las opciones para rotar la pantalla de su Raspberry Pi dependen del software de
controlador de pantalla que esté ejecutando, que también puede depender de la
Raspberry Pi que esté utilizando.
Controlador de gráficos KMS completo o falso
NOTA
Este es el valor predeterminado para Raspberry Pi 4 Modelo B.
Si está ejecutando el escritorio Raspberry Pi, la rotación se logra mediante el uso del
menú del Screen Configuration Utility escritorio Preferences. Esto mostrará una
representación gráfica de la pantalla o pantallas conectadas a la Raspberry Pi. Haga
clic con el botón derecho en la pantalla que desea rotar y seleccione la opción
requerida.
También es posible cambiar esta configuración usando la xrandr opción de línea de
comando . Los siguientes comandos dan rotaciones de 0 °, -90 °, + 90 ° y 180 °
respectivamente.
xrandr --output HDMI-1 --rotate normal
xrandr --output HDMI-1 --rotate left
xrandr --output HDMI-1 --rotate right
xrandr --output HDMI-1 --rotate inverted
Tenga en cuenta que la –output entrada específica a qué dispositivo se aplica la
rotación. Puede determinar el nombre del dispositivo simplemente escribiendo xrandr
en la línea de comando que mostrará información, incluido el nombre, de todos los
dispositivos conectados.
También puede usar la línea de comando para reflejar la pantalla usando la –reflect
opción. La reflexión puede ser una de "x", "y" "normales" o "xy". Esto hace que el
contenido de salida se refleje en los ejes especificados. Por ejemplo:
124
MANUAL RASPBERRY
PI 4
0 sin rotación
girar 90 grados en el sentido de las
1
agujas del reloj
girar 180 grados en el sentido de las
2
agujas del reloj
girar 270 grados en el sentido de las
3
agujas del reloj
0x10000 volteo horizontal
0x20000 volteo vertical
Tabla 0-11 Opciones config.txt
125
MANUAL RASPBERRY
PI 4
rotación de 180 grados con un giro vertical y horizontal será 0x20000 + 0x10000 + 2
= 0x30002.
Configuración de audio
La Raspberry Pi tiene hasta tres modos de salida de audio: HDMI 1 y 2, si están
presentes, y un conector para auriculares. Puede cambiar entre estos modos en
cualquier momento.
Si su monitor HDMI o TV tiene altavoces integrados, el audio se puede reproducir a
través del cable HDMI, pero puede cambiarlo a unos auriculares u otros altavoces
conectados a la toma de auriculares. Si su pantalla dice tener altavoces, el sonido se
emite a través de HDMI de forma predeterminada; de lo contrario, se emite a través
de la toma de auriculares. Es posible que esta no sea la configuración de salida
deseada o que la detección automática no sea precisa, en cuyo caso puede cambiar
manualmente la salida.
Cambio de la salida de audio
Hay dos formas de configurar la salida de audio; usando el control de volumen del
escritorio, o usando la raspi-config herramienta de línea de comandos.
Usando el escritorio
Al hacer clic con el botón derecho en el icono de volumen en la barra de tareas del
escritorio, aparece el selector de salida de audio; esto le permite seleccionar entre
las salidas de audio internas. También le permite seleccionar cualquier dispositivo de
audio externo, como tarjetas de sonido USB y dispositivos de audio Bluetooth. Se
muestra una marca verde contra el dispositivo de salida de audio actualmente
seleccionado; simplemente haga clic con el botón izquierdo en la salida deseada en
el menú emergente para cambiar esto. El control de volumen y el silencio funcionan
en el dispositivo seleccionado actualmente.
Usando raspi-config
Abra raspi-config ingresando lo siguiente en la línea de comando:
sudo raspi-config
Esto abrirá la pantalla de configuración:
126
MANUAL RASPBERRY
PI 4
Ahora seleccione la opción nombrada, Audio (actualmente la opción S2, pero la suya
puede ser diferente) y presione Enter:
Seleccione el modo requerido, presione Enter y presione la tecla de flecha derecha
para salir de la lista de opciones, luego seleccione Finish para salir de la herramienta
de configuración.
Una vez que haya terminado de modificar la configuración de audio, debe reiniciar su
Raspberry Pi para que los cambios surtan efecto.
Solución de problemas de su HDMI
En algunos casos raros, es necesario editar config.txt para forzar el modo HDMI (a
diferencia del modo DVI, que no envía sonido). Puede hacer esto editando
/boot/config.txt y configurando hdmi_drive=2, luego reiniciando para que el cambio
surta efecto.
Configuración de almacenamiento externo
Puede conectar su disco duro externo, SSD o memoria USB a cualquiera de los
puertos USB de la Raspberry Pi y montar el sistema de archivos para acceder a los
datos almacenados en él.
De forma predeterminada, su Raspberry Pi monta automáticamente algunos de los
sistemas de archivos populares como FAT, NTFS y HFS + en la /media/pi/<HARD-
DRIVE-LABEL> ubicación.
NOTA
Raspberry Pi OS Lite no implementa el montaje automático.
Para configurar su dispositivo de almacenamiento de modo que siempre se monte en
una ubicación específica de su elección, debe montarlo manualmente.
Montaje de un dispositivo de almacenamiento
Puede montar su dispositivo de almacenamiento en una ubicación de carpeta
específica. Es convencional hacer esto dentro de la /mnt carpeta, por ejemplo
/mnt/mydisk. Tenga en cuenta que la carpeta debe estar vacía.
127
MANUAL RASPBERRY
PI 4
128
MANUAL RASPBERRY
PI 4
130
MANUAL RASPBERRY
PI 4
Cambiar el idioma
Si desea seleccionar un idioma diferente, use raspi-config .
Configurar el teclado
Si desea seleccionar un teclado diferente, use raspi-config .
Cambiar la zona horaria
Una vez más, esto es algo que puede cambiar usando la herramienta raspi-config .
131
MANUAL RASPBERRY
PI 4
diferentes pines GPIO tienen diferentes tirones predeterminados, debe realizar una
de las siguientes acciones para su periférico:
Elija pines GPIO que por defecto se extraigan según lo requiera el periférico
en el reinicio
Retrasar el inicio del periférico hasta que se alcance la etapa 4/5
Agregue una resistencia pull-up / -down adecuada
Proporcionar un blob de árbol de dispositivos personalizado
Para compilar un .dts archivo fuente ( ) del árbol de dispositivos en un archivo blob
( .dtb) del árbol de dispositivos, el compilador del árbol de dispositivos debe
instalarse ejecutando sudo apt install device-tree-compiler. El dtc comando se puede
utilizar de la siguiente manera:
sudo dtc -I dts -O dtb -o /boot/dt-blob.bin dt-blob.dts
Del mismo modo, un .dtb archivo se puede volver a convertir en un .dts archivo, si es
necesario.
dtc -I dtb -O dts -o dt-blob.dts /boot/dt-blob.bin
Secciones del dt-blob
Se dt-blob.bin utiliza para configurar el blob binario (VideoCore) en el momento del
arranque. Actualmente no lo usa el kernel de Linux, pero se agregará una sección de
kernel en una etapa posterior, cuando reconfiguremos el kernel de Raspberry Pi para
usar un dt-blob para la configuración. El dt-blob puede configurar todas las versiones
de Raspberry Pi, incluido el módulo Compute, para usar la configuración alternativa.
Las siguientes secciones son válidas en dt-blob:
1. Videocore
Esta sección contiene toda la información del blob de VideoCore. Todas las
secciones posteriores deben incluirse dentro de esta sección.
2. pins_*
Hay una serie de pins_* secciones separadas, basadas en modelos
particulares de Raspberry Pi, a saber:
pins_rev1 Configuración de pines Rev1. Hay algunas diferencias debido
a los pines I2C movidos.
132
MANUAL RASPBERRY
PI 4
a. polarity
active_high
active_low
b. termination
pull_up
pull_down
no_pulling
c. startup_state
active
inactive
d. function
input
output
sdcard
i2c0
i2c1
spi
spi1
spi2
smi
dpi
pcm
pwm
uart0
uart1
gp_clk
emmc
arm_jtag
134
MANUAL RASPBERRY
PI 4
clock_setup {
reloj @ PWM {freq = <2400000>; };
reloj @ GPCLK0 {frecuencia = <12288000>; };
135
MANUAL RASPBERRY
PI 4
136
MANUAL RASPBERRY
PI 4
/{
nodo1 {
a-string-property = "Una cadena";
a-string-list-property = "primera cadena", "segunda cadena";
a-byte-data-property = [0x01 0x23 0x34 0x56];
primo: child-node1 {
137
MANUAL RASPBERRY
PI 4
/ node2 {
otra-propiedad-para-nodo2;
};
Este árbol contiene:
una cabecera requerido: /dts-v1/.
La inclusión de otro archivo DTS, convencionalmente nombrado *.dtsi y
análogo a un .h archivo de encabezado en C - vea un aparte sobre / incluir / a
continuación.
un solo nodo raíz: /
un par de nodos secundarios: node1 y node2
algunos hijos para el nodo1: child-node1 y child-node2
una etiqueta (cousin) y una referencia a esa etiqueta (&cousin): consulte
Etiquetas y referencias a continuación.
varias propiedades esparcidas por el árbol
138
MANUAL RASPBERRY
PI 4
139
MANUAL RASPBERRY
PI 4
child-node1 {
mi-primo = <& primo>;
};
};
Por lo tanto, es posible .dtsi sobrescribir o proporcionar valores predeterminados
para varios lugares en un árbol.
Etiquetas y referencias
A menudo es necesario que una parte del árbol se refiera a otra, y hay cuatro formas
de hacerlo:
1. Cadenas de ruta
Las rutas deben ser autoexplicativas, por analogía con un sistema de
archivos: /soc/i2s@7e203000 es la ruta completa al dispositivo I2S en
BCM2835 y BCM2836. Tenga en cuenta que, aunque es fácil construir una
ruta a una propiedad (por ejemplo, /soc/i2s@7e203000/status), las API
estándar no lo hacen; primero encuentra un nodo, luego elige las propiedades
de ese nodo.
2. Phandles
Un phandle es un entero único de 32 bits asignado a un nodo en su phandle
propiedad. Por razones históricas, es posible que también vea una
coincidencia redundante linux,phandle. los faros se numeran secuencialmente,
comenzando desde 1; 0 no es un phandle válido. Por lo general, el compilador
DT los asigna cuando encuentra una referencia a un nodo en un contexto
entero, generalmente en forma de etiqueta (ver más abajo). Las referencias a
los nodos que utilizan phandles simplemente se codifican como los valores
enteros correspondientes (celda); no hay un marcado que indique que deben
interpretarse como phandles, ya que está definido por la aplicación.
3. Etiquetas
Así como una etiqueta en C da un nombre a un lugar en el código, una
etiqueta DT asigna un nombre a un nodo en la jerarquía. El compilador toma
140
MANUAL RASPBERRY
PI 4
141
MANUAL RASPBERRY
PI 4
estado establecido en disabled. Una configuración derivada puede incluir eso .dtsi y
establecer el estado de los dispositivos que se necesitan okay.
Superposiciones de árbol de dispositivos
Un SoC (System on a Chip) moderno es un dispositivo muy complicado; un árbol de
dispositivos completo puede tener cientos de líneas. Dar un paso más y colocar el
SoC en una placa con otros componentes solo empeora las cosas. Para mantener
eso manejable, particularmente si hay dispositivos relacionados que comparten
componentes, tiene sentido poner los elementos comunes en .dtsi archivos, para que
se incluyan posiblemente desde varios .dts archivos.
Cuando un sistema como Raspberry Pi también admite accesorios enchufables
opcionales como HAT, el problema crece. En última instancia, cada configuración
posible requiere un árbol de dispositivos para describirla, pero una vez que se tienen
en cuenta todos los diferentes modelos básicos y la gran cantidad de accesorios
disponibles, la cantidad de combinaciones comienza a multiplicarse rápidamente.
/{
142
MANUAL RASPBERRY
PI 4
fragmento @ 0 {
target = <& i2s>;
__overlay__ {
status = "ok";
test_ref = <& test_label>;
test_label: test_subnode {
ficticio;
};
};
};
};
La compatible cadena identifica esto como para BCM2835, que es la arquitectura
base para los SoC de Raspberry Pi; si la superposición hace uso de las
características de un Pi 4, entonces brcm,bcm2711 es el valor correcto para usar; de
lo contrario, se brcm,bcm2835 puede usar para todas las superposiciones de Pi.
Luego viene el primer (y en este caso único) fragmento. Los fragmentos deben
numerarse secuencialmente desde cero. No cumplir con esto puede hacer que se
pierdan algunos o todos sus fragmentos.
Cada fragmento consta de dos partes: una target propiedad, que identifica el nodo al
que aplicar la superposición; y el __overlay__mismo, cuyo cuerpo se agrega al nodo
de destino. El ejemplo anterior se puede interpretar como si estuviera escrito así:
/ dts-v1 /;
/enchufar/;
/{
compatible = "brcm, bcm2835";
};
143
MANUAL RASPBERRY
PI 4
& i2s {
status = "ok";
test_ref = <& test_label>;
test_label: test_subnode {
ficticio;
};
};
(De hecho, con una versión suficientemente nueva de dtc usted puede escribirlo
exactamente así y obtener un resultado idéntico, pero algunas herramientas de
cosecha propia aún no entienden este formato, por lo que cualquier superposición
que desee incluir en el kernel estándar del sistema operativo Raspberry Pi debería
estar escrito en el formato antiguo por ahora).
144
MANUAL RASPBERRY
PI 4
/{
compatible = "brcm,bcm2835";
fragment@0 {
target = <0xffffffff>;
__overlay__ {
status = "okay";
test_ref = <0x00000001>;
test_subnode {
dummy;
phandle = <0x00000001>;
};
};
};
__symbols__ {
145
MANUAL RASPBERRY
PI 4
test_label = "/fragment@0/__overlay__/test_subnode";
};
__fixups__ {
i2s = "/fragment@0:target:0";
};
__local_fixups__ {
fragment@0 {
__overlay__ {
test_ref = <0x00000000>;
};
};
};
};
Después de la descripción detallada de la estructura del archivo, está nuestro
fragmento. Pero mire con cuidado: donde lo escribimos &i2s ahora dice 0xffffffff, una
pista de que ha sucedido algo extraño (las versiones anteriores de dtc podrían decir
en su 0xdeadbeef lugar). El compilador también ha agregado una phandle propiedad
que contiene un entero pequeño único (para esta superposición) para indicar que el
nodo tiene una etiqueta, y reemplazó todas las referencias a la etiqueta con el mismo
entero pequeño.
Después del fragmento hay tres nuevos nodos:
__symbols__enumera las etiquetas utilizadas en la superposición
( test_labelaquí) y la ruta al nodo etiquetado. Este nodo es la clave de cómo
se tratan los símbolos no resueltos.
__fixups__contiene una lista de propiedades que mapean los nombres de los
símbolos no resueltos con listas de rutas a las celdas dentro de los fragmentos
que necesitan parchearse con el fandle del nodo objetivo, una vez que se ha
localizado el objetivo. En este caso, la ruta es el 0xffffffffvalor de target, pero
los fragmentos pueden contener otras referencias no resueltas que requerirían
arreglos adicionales.
146
MANUAL RASPBERRY
PI 4
147
MANUAL RASPBERRY
PI 4
148
MANUAL RASPBERRY
PI 4
149
MANUAL RASPBERRY
PI 4
Tenga en cuenta que los parámetros no hacen nada a menos que se apliquen; un
valor predeterminado en una tabla de búsqueda se ignora a menos que el nombre
del parámetro se use sin asignar un valor.
Tablas de búsqueda
Las tablas de búsqueda permiten transformar los valores de entrada de los
parámetros antes de utilizarlos. Actúan como matrices asociativas, más bien como
declaraciones switch / case:
fonético = <& nodo>, "letra {a = alfa, b = bravo, c = charlie, d, e, = 'uniforme de
tango'}";
150
MANUAL RASPBERRY
PI 4
bus = <& fragment>, "target: 0 {0 =", <& i2c0>, "1 =", <& i2c1>, "}";
Una clave sin =value medios para usar la clave como valor, una =sin clave antes es
el valor predeterminado en el caso de que no coincida, y comenzar o terminar la lista
con una coma (o un par clave = valor vacío en cualquier lugar) indica que el valor de
entrada no coincidente debe utilizarse inalterado; de lo contrario, no encontrar una
coincidencia es un error.
NOTA
El separador de coma dentro de la cadena de la tabla después de un valor entero de
celda está implícito; agregar uno explícitamente crea un par vacío (ver arriba).
NOTA
Como las tablas de búsqueda operan con valores de entrada y las asignaciones
literales las ignoran, no es posible combinar los dos; los caracteres después del
cierre } de la declaración de búsqueda se tratan como un error.
Parámetros de superposición / fragmento
El mecanismo de parámetro de DT como se describe tiene una serie de limitaciones,
incluida la falta de una forma fácil de crear matrices de números enteros y la
imposibilidad de crear nuevos nodos. Una forma de superar algunas de estas
limitaciones es incluir o excluir condicionalmente ciertos fragmentos.
Un fragmento se puede excluir del proceso de fusión final (deshabilitado) cambiando
el nombre del __overlay__nodo a __dormant__. La sintaxis de declaración de
parámetros se ha ampliado para permitir que el phandle de destino cero, que de otro
modo sería ilegal, indique que la siguiente cadena contiene operaciones en el ámbito
de fragmento o superposición. Hasta el momento se han implementado cuatro
operaciones:
+ <n> // Habilitar fragmento <n>
- <n> // Deshabilitar fragmento <n>
= <n> // Habilite el fragmento <n> si el valor del parámetro asignado es verdadero, de
lo contrario deshabilítelo
! <n> // Habilite el fragmento <n> si el valor del parámetro asignado es falso, de lo
contrario deshabilítelo
151
MANUAL RASPBERRY
PI 4
Ejemplos:
solo_uno = <0>, "+ 1-2"; // Activar 1, desactivar 2
condicional = <0>, "= 3! 4"; // Habilita 3, deshabilita 4 si el valor es verdadero,
// de lo contrario, deshabilite 3, habilite 4.
La i2c-rtc superposición utiliza esta técnica.
Propiedades especiales
Algunos nombres de propiedades, cuando se dirigen a un parámetro, obtienen un
tratamiento especial. Uno que ya habrás notado status, que convertirá un booleano
en okay verdadero o disabled falso.
152
MANUAL RASPBERRY
PI 4
vc4-kms-v3d-pi4 {
bcm2711;
};
uart5 {
153
MANUAL RASPBERRY
PI 4
bcm2711;
};
pi3-disable-bt {
renombrado = "disable-bt";
};
lirc-rpi {
deprecated = "use gpio-ir";
};
};
Cada nodo tiene el nombre de una superposición que requiere un manejo especial.
Las propiedades de cada nodo son nombres de plataforma o una de una pequeña
cantidad de directivas especiales. Las plataformas compatibles actuales son
bcm2835, que incluye todos los Pis construidos en torno a los SoC BCM2835,
BCM2836 y BCM2837, y bcm2711 para Pi 4B.
Un nombre de plataforma sin valor (una propiedad vacía) indica que la superposición
actual es compatible con la plataforma; por ejemplo, vc4-kms-v3d es compatible con
la bcm2835 plataforma. Un valor no vacío para una plataforma es el nombre de una
superposición alternativa para usar en lugar de la solicitada; solicitar vc4-kms-v3d en
BCM2711 da como resultado que vc4-kms-v3d-pi4 se cargue en su lugar. Cualquier
plataforma no incluida en el nodo de una superposición no es compatible con esa
superposición.
154
MANUAL RASPBERRY
PI 4
prueba: test_node {
cadena = "hola";
status = "desactivado";
bytes = / bits / 8 <0x67 0x89>;
u16s = / bits / 16 <0xabcd 0xef01>;
u32s = / bits / 32 <0xfedcba98 0x76543210>;
155
MANUAL RASPBERRY
PI 4
fragment @ 1 {
ruta-destino = "/";
__overlay__ {
frag1;
};
};
fragment @ 2 {
ruta-destino = "/";
__dormant__ {
frag2;
};
};
__overrides__ {
cadena = <& prueba>, "cadena";
enable = <& test>, "status";
byte_0 = <& prueba>, "bytes.0";
byte_1 = <& prueba>, "bytes.1";
u16_0 = <& prueba>, "u16s; 0";
u16_1 = <& prueba>, "u16s; 2";
156
MANUAL RASPBERRY
PI 4
A veces, sin embargo, es muy útil poder crear una etiqueta con una superposición y
usarla a partir de otra. El firmware lanzado desde el 14 de febrero de 2020 tiene la
capacidad de declarar algunas etiquetas como globales: el __exports__nodo:
157
MANUAL RASPBERRY
PI 4
...
público: ...
__exports__ {
público; // Exportar la etiqueta 'public' al DT base
};
};
Cuando se aplica esta superposición, el cargador elimina todos los símbolos, excepto
los que se han exportado, en este caso public, y reescribe la ruta para que sea
relativa al destino del fragmento que contiene la etiqueta. Las superposiciones
cargadas después de esta pueden consultar &public.
Orden de aplicación de superposición
En la mayoría de las circunstancias, no debería importar el orden en que se apliquen
los fragmentos, pero para las superposiciones que se parchean en sí mismas (donde
el objetivo de un fragmento es una etiqueta en la superposición, conocida como
fragmento intrauperposición) se vuelve importante. En firmware más antiguo, los
fragmentos se aplican estrictamente en orden, de arriba hacia abajo. Con el firmware
lanzado desde el 14 de febrero de 2020, los fragmentos se aplican en dos pasos:
1. Primero se aplican y ocultan los fragmentos que se dirigen a otros fragmentos.
2. Luego se aplican los fragmentos regulares.
Esta división es particularmente importante para las superposiciones en tiempo de
ejecución, ya que el paso (i) ocurre en la dtoverlay utilidad y el paso (ii) lo realiza el
kernel (que no puede manejar fragmentos intra-superpuestos).
Uso de árboles de dispositivos en Raspberry Pi
DTB, superposiciones y config.txt
En una Raspberry Pi, el trabajo del cargador (una de las start.elf imágenes) es
combinar superposiciones con un árbol de dispositivos base apropiado y luego pasar
un árbol de dispositivos completamente resuelto al kernel. Los árboles de
dispositivos base se encuentran junto start.elf a la partición FAT (/ boot desde Linux),
nombrados bcm2711-rpi-4-b.dtb, bcm2710-rpi-3-b-plus.dtb etc. Tenga en cuenta que
algunos modelos (3A +, A, A +) usarán los equivalentes "b" (3B +, B, B +),
158
MANUAL RASPBERRY
PI 4
159
MANUAL RASPBERRY
PI 4
160
MANUAL RASPBERRY
PI 4
161
MANUAL RASPBERRY
PI 4
162
MANUAL RASPBERRY
PI 4
163
MANUAL RASPBERRY
PI 4
164
MANUAL RASPBERRY
PI 4
165
MANUAL RASPBERRY
PI 4
166
MANUAL RASPBERRY
PI 4
Si los módulos del kernel no se cargan como se esperaba, verifique que no estén
incluidos en la lista negra /etc/modprobe.d/raspi-blacklist.conf; La lista negra no
debería ser necesaria cuando se utiliza el árbol de dispositivos. Si eso no muestra
nada adverso, también puede verificar que el módulo esté exportando los alias
correctos buscando /lib/modules/<version>/modules.alias el compatible valor. De lo
contrario, probablemente falte su controlador:
.of_match_table = xxx_of_match,
o:
MODULE_DEVICE_TABLE (de, xxx_of_match);
De lo contrario, depmod ha fallado o los módulos actualizados no se han instalado en
el sistema de archivos de destino.
Prueba de superposiciones con dtmerge, dtdiff y ovmerge
Junto a los comandos dtoverlay y dtparam hay una utilidad para aplicar una
superposición a un DTB - dtmerge. Para usarlo, primero debe obtener su DTB base,
que se puede obtener de una de dos maneras:
a) generarlo desde el estado de DT en vivo en /proc/device-tree:
dtc -I fs -O dtb -o base.dtb / proc / device-tree
Esto incluirá las superposiciones y los parámetros que haya aplicado hasta
ahora, ya sea config.txt cargándolos o cargándolos en tiempo de ejecución,
que puede ser o no lo que desea. Alternativamente ...
b) cópielo de los DTB de origen en / boot. Esto no incluirá superposiciones ni
parámetros, pero tampoco incluirá ninguna otra modificación del firmware.
Para permitir la prueba de todas las superposiciones, la dtmerge utilidad
creará algunos de los alias específicos de la placa ("i2c_arm", etc.), pero esto
significa que el resultado de una fusión incluirá más diferencias con el DTB
original de lo que cabría esperar. La solución a esto es usar dtmerge para
hacer la copia:
dtmerge /boot/bcm2710-rpi-3-b.dtb base.dtb -
( - indica un nombre de superposición ausente).
Ahora puede intentar aplicar una superposición o un parámetro:
167
MANUAL RASPBERRY
PI 4
sdhost @ 7e202000 {
- brcm, overclock-50 = <0x0>;
+ brcm, overclock-50 = <0x3e>;
brcm, pio-limit = <0x1>;
ancho de bus = <0x4>;
relojes = <0x8>;
También puede comparar diferentes superposiciones o parámetros.
dtmerge base.dtb merged1.dtb /boot/overlays/spi1-1cs.dtbo
dtmerge base.dtb merged2.dtb /boot/overlays/spi1-2cs.dtbo
dtdiff merged1.dtb merged2.dtb
Llegar:
--- / dev / fd / 63 2016-05-16 14: 18: 56.189634286 +0100
+++ / dev / fd / 62 2016-05-16 14: 18: 56.189634286 +0100
@@ -453,7 +453,7 @@
spi1_cs_pins {
brcm, función = <0x1>;
- brcm, pines = <0x12>;
+ brcm, pines = <0x12 0x11>;
phandle = <0x3e>;
};
168
MANUAL RASPBERRY
PI 4
@@ -725,7 +725,7 @@
# tamaño-celdas = <0x0>;
relojes = <0x13 0x1>;
compatible = "brcm, bcm2835-aux-spi";
- cs-gpios = <0xc 0x12 0x1>;
+ cs-gpios = <0xc 0x12 0x1 0xc 0x11 0x1>;
interrupciones = <0x1 0x1d>;
linux, phandle = <0x30>;
phandle = <0x30>;
@@ -743,6 +743,16 @@
frecuencia-spi-max = <0x7a120>;
status = "ok";
};
+
+ spidev @ 1 {
+ # direcciones-celdas = <0x1>;
+ # tamaño-celdas = <0x0>;
+ compatible = "spidev";
+ phandle = <0x41>;
+ reg = <0x1>;
+ frecuencia-spi-max = <0x7a120>;
+ estado = "bien";
+};
};
spi @ 7e2150C0 {
El Utilidades de recompra incluye otra utilidad DT - ovmerge. A diferencia dtmerge,
ovmerge combina archivos y aplica superposiciones en forma de fuente. Debido a
que la superposición nunca se compila, las etiquetas se conservan y el resultado
169
MANUAL RASPBERRY
PI 4
suele ser más legible. También tiene una serie de otros trucos, como la capacidad
de enumerar el orden de inclusión de archivos.
Forzar un árbol de dispositivos específico
Si tiene necesidades muy específicas que no son compatibles con los DTB
predeterminados, o si solo desea experimentar con la escritura de sus propios DT,
puede decirle al cargador que cargue un archivo DTB alternativo como este:
árbol_dispositivo = my-pi.dtb
Deshabilitar el uso del árbol de dispositivos
Desde el cambio al kernel 4.4 y el uso de más controladores ascendentes, se
requiere el uso del árbol de dispositivos en los kernels Pi Linux. Sin embargo, para
bare metal y otros sistemas operativos, el método para deshabilitar el uso de DT es
agregar:
device_tree =
a config.txt.
Atajos y variantes de sintaxis
El cargador comprende algunos atajos:
dtparam = i2c_arm = encendido
dtparam = i2s = encendido
se puede abreviar a:
dtparam = i2c, i2s
( i2c es un alias de i2c_arm y =onse asume). También acepta las versiones de
formato largo: device_tree_overlay y device_tree_param.
Otros comandos DT disponibles en config.txt
device_tree_address Esto se usa para anular la dirección donde el firmware carga el
árbol de dispositivos (no dt-blob). Por defecto, el firmware elegirá un lugar adecuado.
device_tree_end Esto establece un límite (exclusivo) para el árbol de dispositivos
cargado. De forma predeterminada, el árbol de dispositivos puede crecer hasta el
final de la memoria utilizable, que es casi con certeza lo que se requiere.
dtdebug Si es distinto de cero, active algunos registros adicionales para el
procesamiento del árbol de dispositivos del firmware.
170
MANUAL RASPBERRY
PI 4
171
MANUAL RASPBERRY
PI 4
172
MANUAL RASPBERRY
PI 4
173
MANUAL RASPBERRY
PI 4
174
MANUAL RASPBERRY
PI 4
Raspberry Pi 4 y 400
Raspberry Pi 4B y 400 tienen cuatro PL011 adicionales, que están deshabilitados de
forma predeterminada:
UART0 - PL011
UART1 - mini UART
UART2 - PL011
UART3 - PL011
UART4 - PL011
UART5 - PL011
CM, CM 3, CM 3+ y CM 4
El módulo de cómputo de primera generación, junto con el módulo de cómputo 3 y el
módulo de cómputo 3+, tienen cada uno dos UART, mientras que el módulo de
cómputo 4 tiene seis UART como se describió anteriormente.
175
MANUAL RASPBERRY
PI 4
NOTA
El mini UART está deshabilitado de forma predeterminada, ya sea que se designe
como UART primario o secundario. Dispositivos Linux en el sistema operativo
Raspberry Pi:
Dispositivo Linux Descripción
NOTA
/dev/serial0 y /dev/serial1 son enlaces simbólicos que apuntan a /dev/ttyS0 o
/dev/ttyAMA0.
Mini-UART y frecuencia del núcleo de la CPU
Para usar el mini UART, debe configurar la Raspberry Pi para usar una frecuencia de
reloj de núcleo de VPU fija. Esto se debe a que el reloj mini UART está vinculado al
reloj del núcleo de la VPU, de modo que cuando cambia la frecuencia del reloj del
176
MANUAL RASPBERRY
PI 4
mini UART 0
primer PL011 (UART0) 1
Tabla 0-16 UART principal
177
MANUAL RASPBERRY
PI 4
A la pronta Would you like a login shell to be accessible over serial? respuesta
'No'
A la pronta Would you like the serial port hardware to be enabled? respuesta
'Sí'
Salga de raspi-config y reinicie la Pi para que los cambios surtan efecto.
Habilitación de Early Console para Linux
Aunque el kernel de Linux inicia las UART relativamente temprano en el proceso de
arranque, todavía es mucho tiempo después de que se hayan configurado algunos
bits críticos de la infraestructura. Una falla en esas primeras etapas puede ser difícil
de diagnosticar sin acceso a los mensajes de registro del kernel de ese momento.
Para habilitar la earlycon compatibilidad con uno de los UART, agregue una de las
siguientes opciones a cmdline.txt, según el UART que sea el principal:
Para Pi 4, 400 y Compute Module 4:
earlycon = uart8250, mmio32,0xfe215040
earlycon = pl011, mmio32,0xfe201000
Para Pi 2, Pi 3 y Compute Module 3:
earlycon = uart8250, mmio32,0x3f215040
earlycon = pl011, mmio32,0x3f201000
Para Pi 1, Pi Zero y Compute Module:
earlycon = uart8250, mmio32,0x20215040
earlycon = pl011, mmio32,0x20201000
La velocidad en baudios predeterminada es 115200bps.
NOTA
La selección de la primera consola incorrecta puede evitar que la Pi se inicie.
UART y árbol de dispositivos
Se pueden encontrar varias definiciones de superposición del árbol de dispositivos
de UART en el árbol de GitHub del kernel. Las dos superposiciones más útiles son
disable-bty miniuart-bt.
disable-bt desactiva el dispositivo Bluetooth y convierte el primer PL011 (UART0) en
el UART principal. También debe deshabilitar el servicio del sistema que inicializa el
módem, para que no se conecte a la UART, utilizando sudo systemctl disable hciuart.
178
MANUAL RASPBERRY
PI 4
El mini-UART tiene FIFO más pequeños. Combinado con la falta de control de flujo,
esto lo hace más propenso a perder caracteres a velocidades en baudios más altas.
También es generalmente menos capaz que un PL011, principalmente debido a su
vínculo de velocidad en baudios con la velocidad del reloj de la VPU.
Las deficiencias particulares del mini UART en comparación con un PL011 son:
Sin detección de rotura
Sin detección de errores de encuadre
Sin bit de paridad
Sin interrupción de tiempo de espera de recepción
Sin señales DCD, DSR, DTR o RI
Puede encontrar más documentación sobre el mini UART en el documento de
periféricos de SoC .
179
MANUAL RASPBERRY
PI 4
180
MANUAL RASPBERRY
PI 4
Error genérico al
0 3
arrancar
0 4 inicio * .elf no encontrado
No se encontró la
0 7
imagen del kernel
0 8 Fallo de SDRAM
0 9 SDRAM insuficiente
0 10 En estado HALT
2 1 Partición no FAT
No se pudo leer de la
2 2
partición
Partición extendida no
2 3
FAT
Error de coincidencia de
2 4 firma / hash de archivo -
Pi 4
3 1 Error de SPI EEPROM -
181
MANUAL RASPBERRY
PI 4
Pi 4
SPI EEPROM está
3 2 protegido contra
escritura - Pi 4
3 3 Error I2C - Pi 4
Tipo de placa no
4 4
admitida
4 5 Error fatal de firmware
4 6 Corte de energía tipo A
4 7 Corte de energía tipo B
Tabla 0-17 Códigos de parpadeo de advertencia LED
Asegurar su Raspberry Pi
La seguridad de su Raspberry Pi es importante. Las brechas en la seguridad dejan
su Raspberry Pi abierta a los piratas informáticos que luego pueden usarla sin su
permiso.
El nivel de seguridad que necesita depende de cómo desee utilizar su Raspberry Pi.
Por ejemplo, si simplemente está usando su Raspberry Pi en su red doméstica,
detrás de un enrutador con un firewall, entonces ya es bastante seguro por defecto.
Sin embargo, si desea exponer su Raspberry Pi directamente a Internet, ya sea con
una conexión directa (poco probable) o permitiendo que ciertos protocolos atraviesen
el firewall de su enrutador (por ejemplo, SSH), entonces debe realizar algunos
cambios de seguridad básicos.
Incluso si está escondido detrás de un firewall, es sensato tomarse la seguridad en
serio. Esta documentación describirá algunas formas de mejorar la seguridad de su
Raspberry Pi. Sin embargo, tenga en cuenta que no es exhaustivo.
Cambiar la contraseña predeterminada
El nombre de usuario y la contraseña predeterminados se utilizan para cada
Raspberry Pi que ejecuta Raspberry Pi OS. Entonces, si puede obtener acceso a una
Raspberry Pi, y esta configuración no se ha cambiado, tiene root acceso a esa
Raspberry Pi.
182
MANUAL RASPBERRY
PI 4
185
MANUAL RASPBERRY
PI 4
186
MANUAL RASPBERRY
PI 4
Detecta cosas como múltiples intentos de inicio de sesión por fuerza bruta y puede
informar a cualquier firewall instalado para detener más intentos de inicio de sesión
de direcciones IP sospechosas. Le ahorra tener que verificar manualmente los
archivos de registro para detectar intentos de intrusión y luego actualizar el firewall (a
través de iptables) para evitarlos.
Instale fail2ban usando el siguiente comando:
sudo apt install fail2ban
Durante la instalación, Fail2ban crea una carpeta /etc/fail2ban en la que hay un
archivo de configuración llamado jail.conf. Esto debe copiarse jail.local para
habilitarlo. Dentro de este archivo de configuración hay un conjunto de opciones
predeterminadas, junto con opciones para verificar servicios específicos en busca de
anomalías. Haga lo siguiente para examinar / cambiar las reglas que se utilizan para
ssh:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
Agregue la siguiente sección al jail.local archivo. En algunas versiones de fail2ban,
es posible que esta sección ya exista, así que actualice esta sección preexistente si
está allí.
[ssh]
habilitado = verdadero
puerto = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 6
Como puede ver, esta sección se llama ssh, está habilitada, examina el puerto ssh,
filtra usando los sshd parámetros, analiza la /var/log/auth.log actividad maliciosa y
permite seis reintentos antes de que se alcance el umbral de detección. Al verificar la
sección predeterminada, podemos ver que la acción de prohibición predeterminada
es:
# Default banning action (e.g. iptables, iptables-new,
189
MANUAL RASPBERRY
PI 4
191
MANUAL RASPBERRY
PI 4
con el sistema de archivos FAT. Esto significa que se puede leer en dispositivos
Windows, macOS y Linux.
Cuando la Raspberry Pi está encendida, carga varios archivos desde la partición /
carpeta de arranque para iniciar los distintos procesadores, luego inicia el kernel de
Linux.
Una vez que Linux ha arrancado, la partición de arranque se monta como /boot.
Contenido de la carpeta de inicio
bootcode.bin
Este es el cargador de arranque, que el SoC carga al arrancar, realiza una
configuración muy básica y luego carga uno de los start*.elf archivos. bootcode.bin
no se usa en la Raspberry Pi 4, porque ha sido reemplazado por el código de
arranque en la EEPROM integrada.
start.elf, start_x.elf, start_db.elf, start_cd.elf, start4.elf, start4x.elf, start4cd.elf,
start4db.elf
Estos son blobs binarios (firmware) que se cargan en VideoCore en el SoC, que
luego se encargan del proceso de arranque. start.elf es el firmware básico, start_x.elf
incluye controladores de cámara y códec, start_db.elf es una versión de depuración
del firmware y start_cd.elf es una versión reducida sin bloques de hardware de
soporte como códecs y 3D, y para usar cuando gpu_mem=16 se especifica en
config.txt. Puede encontrar más información sobre cómo utilizarlos en la
config.txtsección .
start4.elf, start4x.elf, start4cd.elf, Y start4db.elf son archivos firmware específico a la
Pi 4.
reparación * .dat
Estos son archivos vinculadores y se emparejan con los start*.elfarchivos
enumerados en la sección anterior.
cmdline.txt
La línea de comando del kernel pasó al kernel cuando arranca.
config.txt
192
MANUAL RASPBERRY
PI 4
193
MANUAL RASPBERRY
PI 4
Kernel Beta de 64
bits . Raspberry Pi
BCM2837,
kernel8.img Pi 2, Pi 3, Pi 4 2 con BCM2836
BCM2711
no es compatible
con 64 bits.
Tabla 0-18 Archivos de kernel
NOTA
La arquitectura informada por lscpues armv7lpara sistemas de 32 bits (es decir, todo
excepto kernel8.img) y aarch64para sistemas de 64 bits. El len el armv7lcaso se
refiere a que la arquitectura es little-endian, no LPAEcomo se indica len el
kernel7l.imgnombre del archivo.
La carpeta de superposiciones
La overlayssubcarpeta contiene superposiciones del árbol de dispositivos. Se utilizan
para configurar varios dispositivos de hardware que pueden estar conectados al
sistema, por ejemplo, la pantalla táctil Raspberry Pi o placas de sonido de terceros.
Estas superposiciones se seleccionan utilizando entradas en config.txt - consulte
'Árboles de dispositivos, superposiciones y parámetros, parte 2' para obtener más
información.
194
MANUAL RASPBERRY
PI 4
195
MANUAL RASPBERRY
PI 4
196
MANUAL RASPBERRY
PI 4
197
MANUAL RASPBERRY
PI 4
comas, pero tenga cuidado con el límite de longitud de línea: antes 78 caracteres,
ahora 98 caracteres.
Para obtener más detalles, consulte DTB, superposiciones y config.txt .
arm_boost (Solo Raspberry Pi 4)
Todos los Pi 400 y las revisiones más recientes del Pi 4B están equipados con una
segunda fuente de alimentación de modo de conmutación para el riel de voltaje del
SoC, y esto permite que el reloj en modo turbo predeterminado se aumente de 1,5
GHz a 1,8 GHz. Este cambio debería ser seguro para todas estas placas, pero para
evitar cambios no solicitados para las instalaciones existentes, este cambio debe
aceptarse mediante la configuración arm_boost=1.
IMPORTANTE
Las nuevas imágenes del sistema operativo Raspberry Pi de Bullseye en adelante
vienen con esta configuración de forma predeterminada.
Audio analógico integrado (conector de 3,5 mm)
La salida de audio incorporada usa opciones de configuración para cambiar la forma
en que se maneja el audio analógico y si algunas funciones de firmware están
habilitadas o no.
audio_pwm_mode
audio_pwm_mode=1 selecciona audio analógico de baja calidad heredado del
conector AV de 3,5 mm.
audio_pwm_mode=2 (predeterminado) selecciona audio analógico de alta calidad
mediante un esquema de modulación avanzado.
NOTA
Esta opción utiliza más recursos informáticos de GPU y puede interferir con algunos
casos de uso.
disable_audio_dither
De forma predeterminada, se aplica un tramado de 1.0LSB al flujo de audio si se
enruta a la salida de audio analógica. Esto puede crear un "siseo" audible de fondo
en algunas situaciones, por ejemplo, cuando el volumen de ALSA está ajustado a un
nivel bajo. Configúrelo disable_audio_dither en 1 para deshabilitar la aplicación de
tramado.
198
MANUAL RASPBERRY
PI 4
enable_audio_dither
El tramado de audio (ver disable_audio_dither arriba) normalmente está
deshabilitado cuando las muestras de audio tienen más de 16 bits. Establezca esta
opción en 1para forzar el uso de difuminado para todas las profundidades de bits.
pwm_sample_bits
El pwm_sample_bits comando ajusta la profundidad de bits de la salida de audio
analógica. La profundidad de bits predeterminada es 11. La selección de
profundidades de bits a continuación 8 resultará en un audio no funcional, ya que las
configuraciones a continuación 8 dan como resultado una frecuencia PLL demasiado
baja para admitirla. Esto generalmente solo es útil como demostración de cómo la
profundidad de bits afecta el ruido de cuantificación.
Opciones de arranque
start_file, fixup_file
Estas opciones especifican los archivos de firmware transferidos a la GPU VideoCore
antes del inicio.
start_file especifica el archivo de firmware VideoCore que se utilizará. fixup_file
especifica el archivo utilizado para arreglar las ubicaciones de memoria utilizadas en
el start_file para que coincida con la división de memoria de la GPU. Tenga en
cuenta que el start_file y el fixup_file son un par coincidente: el uso de archivos no
coincidentes evitará que la placa se inicie. Esta es una opción avanzada, por lo que
le recomendamos que utilice start_xy en start_debug lugar de esta opción.
start_x, start_debug
Estos proporcionan un acceso directo a algunas alternativas start_filey fixup_file
configuraciones, y son los métodos recomendados para seleccionar configuraciones
de firmware.
start_x=1 implica
start_file = start_x.elf
fixup_file = fixup_x.dat
En el Pi 4, si los archivos start4x.elf y fixup4x.datestán presentes, estos archivos se
utilizarán en su lugar.
start_debug=1 implica
199
MANUAL RASPBERRY
PI 4
start_file = start_db.elf
fixup_file = fixup_db.dat
start_x=1 debe especificarse al utilizar el módulo de la cámara. Habilitar la cámara a
través de raspi-config establecerá esto automáticamente.
disable_commandline_tags
Configure el disable_commandline_tags comando en 1para dejar start.elf de
completar ATAGS (memoria desde 0x100) antes de iniciar el kernel.
cmdline
cmdline es el nombre de archivo alternativo en la partición de arranque desde el cual
leer la cadena de línea de comando del kernel; el valor predeterminado es
cmdline.txt.
kernel
kernel es el nombre de archivo alternativo en la partición de arranque que se utilizará
al cargar el kernel. El valor predeterminado en Pi 1, Pi Zero y Compute Module es
kernel.img, y en Pi 2, Pi 3 y Compute Module 3 es kernel7.img. En el Pi4, lo es
kernel7l.img.
arm_64bit
Si se establece en un valor distinto de cero, obliga al sistema de carga del kernel a
asumir un kernel de 64 bits, inicia los procesadores en modo de 64 bits y se
configura kernel8.img para que se cargue la imagen del kernel, a menos que haya
una kernel opción explícita definida, en cuyo caso eso se utiliza en su lugar. El valor
predeterminado es 0 en todas las plataformas. NOTA : Los núcleos de 64 bits
pueden ser archivos de imagen sin comprimir o un archivo gzip de una imagen (que
aún se puede llamar kernel8.img; el gestor de arranque reconocerá el archivo a partir
de los bytes de firma al principio).
Tenga en cuenta que el kernel de 64 bits solo funcionará en las placas Pi4, Pi3 y
Pi2B rev1.2 con el firmware más reciente.
arm_control
ADVERTENCIA
Esta configuración está DESAPARECIDA , utilícela arm_64bit en su lugar para
habilitar núcleos de 64 bits.
200
MANUAL RASPBERRY
PI 4
201
MANUAL RASPBERRY
PI 4
ramfsaddr
ramfsaddr es la dirección de memoria en la que se ramfsfile debe cargar.
initramfs
El initramfs comando especifica tanto el nombre de archivo ramfs como la dirección
de memoria en la que cargarlo. Realiza las acciones de ambos ramfsfile y ramfsaddr
en un parámetro. La dirección también puede ser followkernel (o 0) colocarla en la
memoria después de la imagen del kernel. Los valores de ejemplo son: initramfs
initramf.gz 0x00800000 o initramfs init.gz followkernel. Al igual que con ramfsfile, los
firmwares más nuevos permiten la carga de varios archivos separando sus nombres
por comas.
NOTA
Esta opción usa una sintaxis diferente de todas las demás opciones y no debe usar
un = carácter aquí.
init_uart_baud
init_uart_baud es la velocidad en baudios inicial de UART. El valor predeterminado
es 115200.
init_uart_clock
init_uart_clock es la frecuencia de reloj UART inicial. El valor predeterminado es
48000000 (48 MHz). Tenga en cuenta que este reloj solo se aplica a UART0
(ttyAMA0 en Linux) y que la velocidad máxima en baudios para UART está limitada a
1/16 del reloj. El UART predeterminado en Pi 3 y Pi Zero es UART1 (ttyS0 en Linux),
y su reloj es el reloj de la VPU central, al menos 250MHz.
bootcode_delay
El bootcode_delay comando se demora una cantidad determinada de segundos
bootcode.bin antes de cargarse start.elf: el valor predeterminado es 0.
Esto es particularmente útil para insertar un retraso antes de leer el EDID del
monitor, por ejemplo, si el Pi y el monitor se alimentan desde la misma fuente, pero el
monitor tarda más en iniciarse que el Pi. Intente establecer este valor si la detección
de pantalla es incorrecta en el arranque inicial, pero es correcta si reinicia
suavemente el Pi sin desconectar la alimentación del monitor.
202
MANUAL RASPBERRY
PI 4
boot_delay
El boot_delay comando indica que espere un número determinado de segundos
start.elf antes de cargar el kernel: el valor predeterminado es 1. El retraso total en
milisegundos se calcula como (1000 x boot_delay) + boot_delay_ms. Esto puede ser
útil si su tarjeta SD necesita un tiempo para prepararse antes de que Linux pueda
arrancar desde ella.
boot_delay_ms
El boot_delay_ms comando significa esperar una cantidad determinada de
milisegundos start.elf, junto con boot_delay, antes de cargar el kernel. El valor
predeterminado es 0.
disable_poe_fan
De forma predeterminada, se activará una sonda en el bus I2C al inicio, incluso
cuando no se conecte un PoE HAT. Establecer esta opción en 1 deshabilita el control
de un ventilador PoE HAT a través de I2C (en los pines ID_SD e ID_SC). Si no tiene
la intención de utilizar un PoE HAT, hacerlo es útil si necesita minimizar el tiempo de
arranque.
disable_splash
Si disable_splash está configurado en 1, la pantalla de bienvenida del arco iris no se
mostrará al arrancar. El valor predeterminado es 0.
enable_gic (Solo Raspberry Pi 4)
En Raspberry Pi 4B, si este valor se establece en 0, las interrupciones se enrutarán a
los núcleos ARM utilizando el controlador de interrupciones heredado, en lugar de a
través del GIC-400. El valor predeterminado es 1.
enable_uart
enable_uart=1 (junto con console=serial0 in cmdline.txt) solicita que el kernel cree
una consola en serie, accesible mediante los GPIO 14 y 15 (pines 8 y 10 en el
encabezado de 40 pines). Editar cmdline.txt para eliminar la línea quiet permite que
los mensajes de arranque del kernel también aparezcan allí. Vea también
uart_2ndstage.
203
MANUAL RASPBERRY
PI 4
force_eeprom_read
Configure esta opción para 0 evitar que el firmware intente leer una EEPROM I2C
HAT (conectada a los pines ID_SD e ID_SC) en el momento del encendido. Vea
también disable_poe_fan.
os_prefix
os_prefix es una configuración opcional que le permite elegir entre varias versiones
del kernel y los archivos del árbol de dispositivos instalados en la misma tarjeta.
Cualquier valor en os_prefix se antepone al nombre de cualquier archivo del sistema
operativo cargado por el firmware, donde "archivos del sistema operativo" se define
como kernels, initramfs, cmdline.txt, .dtbs y superposiciones. El prefijo normalmente
sería un nombre de directorio, pero también podría ser parte del nombre de archivo,
como "prueba-". Por esta razón, los prefijos de directorio deben incluir el /carácter
final.
En un intento por reducir la posibilidad de un sistema no arrancable, el firmware
primero prueba el valor del prefijo proporcionado para la viabilidad - a menos que el
kernel esperado y .dtb se puedan encontrar en la nueva ubicación / nombre, el prefijo
se ignora (establecido en " "). Un caso especial de esta prueba de viabilidad se aplica
a las superposiciones, que solo se cargarán desde ${os_prefix}${overlay_prefix}
(donde el valor predeterminado de overlay_prefixes "superposiciones /") si $
{os_prefix}${overlay_prefix}README existe; de lo contrario, ignora os_prefix y trata
las superposiciones como compartidas.
(La razón por la que el firmware verifica la existencia de archivos clave en lugar de
directorios cuando verifica los prefijos es doble: es posible que el prefijo no sea un
directorio y no todos los métodos de arranque admiten la prueba de la existencia de
un directorio).
NOTA
Cualquier archivo de sistema operativo especificado por el usuario puede omitir todos
los prefijos utilizando una ruta absoluta (con respecto a la partición de inicio);
simplemente inicie la ruta del archivo con /, por ejemplo
kernel=/my_common_kernel.img.
Consulte también overlay_prefixy upstream_kernel.
204
MANUAL RASPBERRY
PI 4
la salida desde Linux, entonces puede producirse una pérdida de datos y provocar
una salida dañada. Esta función solo debería ser necesaria cuando se intenta
diagnosticar un problema de carga de inicio temprano.
upstream_kernel
Si upstream_kernel=1 se usa, el firmware se establece os_prefixen "upstream /", a
menos que se haya establecido explícitamente en otra cosa, pero al igual que otros
os_prefix valores, se ignorará si el kernel requerido y el archivo .dtb no se pueden
encontrar al usar el prefijo.
El firmware también preferirá nombres de Linux ascendentes para DTB (en
bcm2837-rpi-3-b.dtb lugar de bcm2710-rpi-3-b.dtb, por ejemplo). Si no se encuentra
el archivo ascendente, el firmware cargará la variante descendente en su lugar y
aplicará automáticamente la superposición "ascendente" para realizar algunos
ajustes. Tenga en cuenta que este proceso ocurre después de la os_prefix ha sido
finalizado.
Control GPIO
gpio
La gpio directiva permite que los pines GPIO se establezcan en modos y valores
específicos en el momento del arranque de una manera que antes hubiera
necesitado un dt-blob.bin archivo personalizado . Cada línea aplica la misma
configuración (o al menos hace los mismos cambios) a un conjunto de pines, ya sea
un solo pin ( 3), un rango de pines ( 3-4) o una lista separada por comas de ( 3-
4,6,8). El conjunto de pines va seguido de =uno o más atributos separados por
comas de esta lista:
ip - Aporte
op - Producción
a0-a5 - Alt0-Alt5
dh - Conducir alto (para salidas)
dl - Conducir bajo (para salidas)
pu - Levantar
pd - Derribar
pn/np - Sin tirón
206
MANUAL RASPBERRY
PI 4
gpio Los ajustes se aplican en orden, por lo que los que aparecen más tarde anulan
los que aparecen antes.
Ejemplos:
# Seleccione Alt2 para los pines GPIO 0 a 27 (para DPI24)
gpio = 0-27 = a2
GPIO22 ARM_TRST
207
MANUAL RASPBERRY
PI 4
GPIO23 ARM_RTCK
GPIO24 ARM_TDO
GPIO25 ARM_TCK
GPIO26 ARM_TDI
GPIO27 ARM_TMS
Tabla 0-19 Configuración enable_jtag_gpio=1
Opciones de overclocking
El kernel tiene un controlador CPUFreq con el gobernador "powersave" habilitado por
defecto, cambiado a "ondemand" durante el arranque, cuando raspi-config está
instalado. Con el gobernador "bajo demanda", la frecuencia de la CPU variará con la
carga del procesador. Puede ajustar los valores mínimos con las *_min opciones de
configuración o deshabilitar el reloj dinámico aplicando un regulador de escala
estático ("ahorro de energía" o "rendimiento") o con force_turbo=1.
El overclocking y la sobretensión se desactivarán en tiempo de ejecución cuando el
SoC alcance temp_limit (ver más abajo), que por defecto es 85 ° C, para enfriar el
SoC. No debe alcanzar este límite con los modelos 1 y 2 de Raspberry Pi, pero es
más probable que lo haga con Raspberry Pi 3 y Raspberry Pi 4B. El overclocking y la
sobretensión también se desactivan cuando se detecta una situación de subtensión.
NOTA
Para obtener más información, consulte la sección sobre gestión de frecuencia y
control térmico .
ADVERTENCIA
Establecer cualquier parámetro de overclocking en valores distintos a los utilizados
por raspi-config puede establecer un bit permanente dentro del SoC, lo que hace
posible detectar que su Raspberry Pi ha sido overclockeado. Las circunstancias
específicas en las que se establece el bit de overclock son si force_turbose establece
en 1 y cualquiera de las over_voltage_* opciones se establece en un valor> 0.
Consulte la publicación del blog sobre el modo Turbo para obtener más información.
Overclocking
Opción Descripción
208
MANUAL RASPBERRY
PI 4
Esta tabla proporciona los valores predeterminados para las opciones en varios
modelos de Raspberry Pi, todas las frecuencias se expresan en MHz.
Pi3A
Pi
+/ Pi4 / Pi
Opción 0/ Pi1 Pi2 Pi3
Pi3B CM4 400
W
+
Esta tabla proporciona valores predeterminados para las opciones que son iguales
en todos los modelos.
Opción Defecto
211
MANUAL RASPBERRY
PI 4
initial_turbo 0 (segundos)
temp_limit 85 (° C)
sobretensión 0 (1,35 V, 1,2 V en RPi 1)
over_voltage_min 0 (1,2 V)
over_voltage_sdram 0 (1,2 V)
over_voltage_sdram_c 0 (1,2 V)
over_voltage_sdram_i 0 (1,2 V)
over_voltage_sdram_p 0 (1,2 V)
Tabla 0-22 Valores predeterminados en todos los modelos
El firmware usa Adaptive Voltage Scaling (AVS) para determinar el voltaje de núcleo
de CPU / GPU óptimo en el rango definido por over_voltagey over_voltage_min.
Defect
Modelo Voltaje resultante
o
Pi 1 0 1,2 V
Pi 2 0 1.2-1.3125V
Pi 3 0 1.2-1.3125V
Pi 4, Pi400, CM4 0 0,88 V
Pi cero 6 1,35 V
Tabla 0-23 Voltaje de núcleo de CPU / GPU óptimo
Defecto 500
hdmi_enable_4kp60 550
Tabla 0-24 Frecuencia específica para Raspberry Pi 4, Raspberry Pi 400 y CM4
212
MANUAL RASPBERRY
PI 4
213
MANUAL RASPBERRY
PI 4
frecuencia solicitada por el kernel y es posible que cualquier limitación (por ejemplo,
a altas temperaturas) pueda significar que la CPU está funcionando más lentamente
de lo informado. Se puede recuperar una medición instantánea de la frecuencia real
de la CPU ARM utilizando vcgencmd vcgencmd measure_clock arm. Esto se
muestra en hercios.
Supervisión de la temperatura central
Para ver la temperatura de la Raspberry Pi, escriba cat
/sys/class/thermal/thermal_zone0/temp. Divida el resultado por 1000 para encontrar
el valor en grados Celsius. Alternativamente, hay un vcgencmd, vcgencmd
measure_temp que interroga a la GPU directamente por su temperatura.
Si bien alcanzar el límite de temperatura no es perjudicial para el SoC, provocará un
estrangulamiento de la CPU. Un disipador de calor puede ayudar a controlar la
temperatura central y, por lo tanto, el rendimiento. Esto es especialmente útil si el Pi
se ejecuta dentro de una carcasa. El flujo de aire sobre el disipador de calor hará que
el enfriamiento sea más eficiente.
Con firmware del 12 de septiembre de 2016 o posterior, cuando la temperatura
central esté entre 80 ° C y 85 ° C, se mostrará un icono de advertencia que muestra
un termómetro rojo medio lleno y los núcleos ARM se reducirán. Si la temperatura
excede los 85 ° C, se mostrará un ícono que muestra un termómetro completamente
lleno, y tanto los núcleos ARM como la GPU se reducirán.
Para la Raspberry Pi 3 Modelo B +, la tecnología de PCB se ha cambiado para
proporcionar una mejor disipación de calor y una mayor masa térmica. Además, se
ha introducido un límite de temperatura suave, con el objetivo de maximizar el tiempo
durante el cual un dispositivo puede "correr" antes de alcanzar el límite estricto a 85 °
C. Cuando se alcanza el límite suave, la velocidad del reloj se reduce de 1,4 GHz a
1,2 GHz y el voltaje de funcionamiento se reduce ligeramente. Esto reduce la tasa de
aumento de temperatura: negociamos un período corto a 1.4GHz por un período más
largo a 1.2GHz. De forma predeterminada, el límite suave es 60 ° C, y esto se puede
cambiar a través de la temp_soft_limit configuración en config.txt.
214
MANUAL RASPBERRY
PI 4
Voltaje de monitoreo
Es esencial mantener la tensión de alimentación por encima de 4,8 V para un
rendimiento fiable. Tenga en cuenta que el voltaje de algunos cargadores / fuentes
de alimentación USB puede descender hasta 4,2 V. Esto se debe a que
generalmente están diseñados para cargar una batería LiPo de 3,7 V, no para
suministrar 5 V a una computadora.
Para monitorear el voltaje de la PSU de Pi, necesitará usar un multímetro para medir
entre los pines VCC y GND en el GPIO. Más información está disponible en power .
Si el voltaje cae por debajo de 4.63V (+ -5%), las versiones recientes del firmware
mostrarán un símbolo de rayo amarillo en la pantalla para indicar una falta de
energía, y se agregará al kernel un mensaje que indica el estado de bajo voltaje
Iniciar sesión.
Problemas de overclocking
La mayoría de los problemas de overclocking aparecen inmediatamente con una falla
al arrancar. Si esto ocurre, mantenga presionada la shift tecla durante el próximo
arranque. Esto desactivará temporalmente todo el overclocking, lo que le permitirá
arrancar correctamente y luego editar su configuración.
Filtros condicionales
Cuando se usa una sola tarjeta SD (o imagen de tarjeta) con una Raspberry Pi y un
monitor, es fácil configurarla config.txt según sea necesario para esa combinación
específica y mantenerla así, modificándola solo cuando algo cambia.
Sin embargo, si se intercambia una Raspberry Pi entre diferentes monitores, o si la
tarjeta SD (o la imagen de la tarjeta) se intercambia entre varias placas, es posible
que un solo conjunto de configuraciones ya no sea suficiente. Los filtros
condicionales le permiten definir ciertas secciones del archivo de configuración para
que se usen solo en casos específicos, lo que permite que uno solo config.txt cree
configuraciones diferentes cuando lo lee un hardware diferente.
El [all] filtro
El [all] filtro es el filtro más básico. Restablece todos los filtros establecidos
previamente y permite que las configuraciones enumeradas a continuación se
apliquen a todo el hardware. Por lo general, es una buena idea agregar un [all] filtro
215
MANUAL RASPBERRY
PI 4
Estos son particularmente útiles para definir diferentes kernel, initramfs y cmdlinela
configuración, como el Pi 1 y Pi 2 requieren diferentes granos. También pueden ser
útiles para definir diferentes configuraciones de overclocking, ya que Pi 1 y Pi 2
tienen diferentes velocidades predeterminadas. Por ejemplo, para definir initramfs
imágenes separadas para cada uno:
[pi1]
initramfs initrd.img-3.18.7 + followkernel
[pi2]
initramfs initrd.img-3.18.7-v7 + followkernel
[todos]
Recuerde usar el [all] filtro al final, para que cualquier configuración posterior no se
limite solo al hardware Pi 2.
216
MANUAL RASPBERRY
PI 4
[gpio2=0]
218
MANUAL RASPBERRY
PI 4
[all]
# settings here are applied to all hardware
El [HDMI:*] filtro
NOTA
Este filtro es solo para Raspberry Pi 4.
La Raspberry Pi 4 tiene dos puertos HDMI y, para muchos config.txt comandos
relacionados con HDMI, es necesario especificar a qué puerto HDMI se hace
referencia. El condicional HDMI filtra las configuraciones HDMI posteriores al puerto
específico.
[HDMI:0]
hdmi_group=2
hdmi_mode=45
[HDMI:1]
hdmi_group=2
hdmi_mode=67
Una variable:index sintaxis alternativa está disponible en todos los comandos HDMI
específicos del puerto. Puede usar lo siguiente, que es el mismo que el ejemplo
anterior:
hdmi_group:0=2
hdmi_mode:0=45
hdmi_group:1=2
hdmi_mode:1=67
Combinar filtros condicionales
Los filtros del mismo tipo se reemplazan entre sí, por lo que se [pi2]anula [pi1],
porque no es posible que ambos sean verdaderos a la vez.
Los filtros de diferentes tipos se pueden combinar simplemente enumerándolos uno
tras otro, por ejemplo:
# settings here are applied to all hardware
[EDID=VSC-TD2220]
219
MANUAL RASPBERRY
PI 4
220
MANUAL RASPBERRY
PI 4
256 MB 128
512 MB 384
1 GB o más 512, 256en el Pi4
Tabla 0-26 Valores máximos recomendados
Es posible establecer gpu_mem valores más altos, sin embargo, esto debe evitarse
ya que puede causar problemas, como evitar que Linux se inicie. El valor mínimo es
16, sin embargo, esto deshabilita ciertas funciones de la GPU.
También puede usar gpu_mem_256, gpu_mem_512 y gpu_mem_1024 para permitir
intercambiar la misma tarjeta SD entre Pis con diferentes cantidades de RAM sin
tener que editar config.txt cada vez:
gpu_mem_256
El gpu_mem_256 comando establece la memoria de la GPU en megabytes para
Raspberry Pis con 256 MB de memoria. (Se ignora si el tamaño de la memoria no es
de 256 MB). Esto anula gpu_mem.
gpu_mem_512
El gpu_mem_512 comando establece la memoria de la GPU en megabytes para
Raspberry Pis con 512 MB de memoria. (Se ignora si el tamaño de la memoria no es
de 512 MB). Esto anula gpu_mem.
221
MANUAL RASPBERRY
PI 4
gpu_mem_1024
El gpu_mem_1024 comando establece la memoria de la GPU en megabytes para
Raspberry Pis con 1 GB o más de memoria. (Se ignora si el tamaño de la memoria
es inferior a 1 GB). Esto anula gpu_mem.
total_mem
Este parámetro se puede usar para forzar a una Raspberry Pi a limitar su capacidad
de memoria: especifique la cantidad total de RAM, en megabytes, que desea que use
la Raspberry Pi. Por ejemplo, para hacer que una Raspberry Pi 4B de 4GB se
comporte como si fuera un modelo de 1GB, use lo siguiente:
total_mem = 1024
Este valor se fijará entre un mínimo de 128 MB y un máximo de la memoria total
instalada en la placa.
disable_l2cache
Establecer esto en 1deshabilita el acceso de las CPU a la caché L2 de las GPU y
requiere un kernel deshabilitado L2 correspondiente. El valor predeterminado en
BCM2835 es 0. En BCM2836, BCM2837 y BCM2711, los ARM tienen su propia
caché L2 y, por lo tanto, el valor predeterminado es 1. El Pi kernel.img y las
kernel7.img compilaciones estándar reflejan esta diferencia en la configuración de la
caché.
Opciones de clave de licencia y códec
La decodificación de hardware de códecs adicionales en Pi 3 y modelos anteriores se
puede habilitar comprando una licencia que esté bloqueada en el número de serie de
la CPU de su Raspberry Pi.
En Raspberry Pi 4, los códecs de hardware para MPEG2 o VC1 están desactivados
permanentemente y no se pueden activar ni siquiera con una clave de licencia; en el
Pi 4, gracias a su mayor potencia de procesamiento en comparación con los modelos
anteriores, MPEG2 y VC1 se pueden decodificar en software a través de
aplicaciones como VLC. Por lo tanto, no se necesita una clave de licencia de códec
de hardware si está utilizando un Pi 4.
222
MANUAL RASPBERRY
PI 4
decode_MPG2
decode_MPG2 es una clave de licencia para permitir la decodificación MPEG-2 por
hardware, por ejemplo decode_MPG2=0x12345678.
decode_WVC1
decode_WVC1 es una clave de licencia para permitir la decodificación de hardware
VC-1, por ejemplo decode_WVC1=0x12345678.
Si tiene varias Raspberry Pis y compró una licencia de códec para cada una de ellas,
puede enumerar hasta ocho claves de licencia en una sola config.txt, por ejemplo,
decode_MPG2=0x12345678,0xabcdabcd,0x87654321. Esto le permite intercambiar
la misma tarjeta SD entre los diferentes Pis sin tener que editar config.txt cada vez.
Opciones de video
Modo de video compuesto
sdtv_mode
El sdtv_mode comando define el estándar de TV utilizado para la salida de video
compuesto. En la Raspberry Pi original, el video compuesto se emite en el conector
RCA. En otras Raspberry Pi, a excepción de Pi Zero y Compute Module, el video
compuesto se emite junto con el sonido en la toma TRRS ("auriculares") de 4 polos.
En el Pi Zero, hay un encabezado vacío con la etiqueta "TV" que emite video
compuesto. En el módulo de cómputo, el video compuesto está disponible a través
del pin TVDAC. El valor predeterminado de sdtv_mode es 0.
sdtv_mode resultado
0 NTSC normal
1 Versión japonesa de NTSC - sin pedestal
2 PAL normal
Versión brasileña de PAL - 525/60 en lugar de 625/50,
3
subportadora diferente
dieciséis Escaneo progresivo NTSC
18 PAL de barrido progresivo
Tabla 0-27 Modo de video compuesto
sdtv_aspect
223
MANUAL RASPBERRY
PI 4
1 4: 3
2 14: 9
3 16: 9
Tabla 0-28 sdtv_aspect comando
sdtv_disable_colourburst
Si se establece sdtv_disable_colourburst en, se 1 deshabilita la explosión de color
en la salida de video compuesto. La imagen se mostrará en monocromo, pero puede
parecer más nítida.
enable_tvout (Solo Raspberry Pi 4, modelo B)
En Raspberry Pi 4, la salida compuesta está deshabilitada de forma predeterminada,
debido a la forma en que los relojes internos están interrelacionados y asignados.
Debido a que el video compuesto requiere un reloj muy específico, configurar ese
reloj a la velocidad requerida en el Pi 4 significa que otros relojes conectados a él se
ven afectados negativamente, lo que ralentiza ligeramente todo el sistema. Dado que
el vídeo compuesto es una función que se utiliza con menos frecuencia, decidimos
desactivarlo de forma predeterminada para evitar la ralentización del sistema.
Para habilitar la salida compuesta, use la enable_tvout=1 opción. Como se describió
anteriormente, esto afectará negativamente al rendimiento en un pequeño grado.
En modelos Pi más antiguos, el comportamiento compuesto sigue siendo el mismo.
Modo HDMI
NOTA
Debido a que la Raspberry Pi 4B tiene dos puertos HDMI, algunos comandos HDMI
se pueden aplicar a cualquiera de los puertos. Puede usar la sintaxis
<command>:<port>, donde el puerto es 0 o 1, para especificar a qué puerto se debe
aplicar la configuración. Si no se especifica ningún puerto, el valor predeterminado es
0. Si especifica un número de puerto en un comando que no requiere un número de
puerto, el puerto se ignora. Se pueden encontrar más detalles sobre la sintaxis y los
224
MANUAL RASPBERRY
PI 4
hdmi_safe
Ajuste hdmi_safe a 1 dará lugar a la configuración de "modo seguro" se utiliza para
tratar de arranque con la máxima compatibilidad HDMI. Es lo mismo que configurar
los siguientes parámetros:
hdmi_force_hotplug = 1
hdmi_ignore_edid = 0xa5000080
config_hdmi_boost = 4
hdmi_group = 2
hdmi_mode = 4
disable_overscan = 0
overscan_left = 24
overscan_right = 24
overscan_top = 24
overscan_bottom = 24
hdmi_ignore_edid
Si se establece hdmi_ignore_edid en 0xa5000080, se pueden ignorar los datos de
pantalla / EDID si su pantalla no tiene un EDID preciso . Requiere este valor inusual
para garantizar que no se active accidentalmente.
hdmi_edid_file
La configuración hdmi_edid_file en 1 hará que la GPU lea los datos EDID del
edid.dat archivo, ubicado en la partición de arranque, en lugar de leerlos desde el
monitor. Más información está disponible en los foros .
hdmi_edid_filename
En la Raspberry Pi 4B, puede usar el hdmi_edid_filename comando para especificar
el nombre de archivo del archivo EDID a usar y también para especificar a qué
225
MANUAL RASPBERRY
PI 4
226
MANUAL RASPBERRY
PI 4
hdmi_max_pixel_freq
El firmware y KMS utilizan la frecuencia de píxeles para filtrar los modos HDMI.
Tenga en cuenta que esto no es lo mismo que la velocidad de fotogramas. Especifica
la frecuencia máxima que puede tener un modo válido, eliminando así los modos de
frecuencia más alta. Entonces, por ejemplo, si desea deshabilitar todos los modos
4K, puede especificar una frecuencia máxima de 200000000, ya que todos los
modos 4K tienen frecuencias mayores que esto.
hdmi_blanking
El hdmi_blanking comando controla lo que sucede cuando el sistema operativo
solicita que la pantalla se ponga en modo de espera, utilizando DPMS, para ahorrar
energía. Si esta opción no está configurada o configurada en 0, la salida HDMI se
pone en blanco pero no se apaga. Para imitar el comportamiento de otras
computadoras, también puede configurar la salida HDMI para que se apague
configurando esta opción en 1: la pantalla adjunta entrará en un modo de espera de
bajo consumo.
NOTA
En la Raspberry Pi 4, la configuración hdmi_blanking=1 no hará que la salida HDMI
se apague, ya que esta función aún no se ha implementado. Esta característica
227
MANUAL RASPBERRY
PI 4
hdmi_drive
El hdmi_drive comando le permite elegir entre los modos de salida HDMI y DVI.
hdmi_drive resultado
config_hdmi_boost
Configura la intensidad de la señal de la interfaz HDMI. El valor mínimo es 0 y el
máximo es 11.
El valor predeterminado para los modelos B y A originales es 2. El valor
predeterminado para el Modelo B + y todos los modelos posteriores es 5.
Si observa problemas con HDMI (manchas, interferencias), inténtelo 7. Los cables
HDMI muy largos pueden necesitar hasta 11, pero valores tan altos no deben usarse
a menos que sea absolutamente necesario.
Esta opción se ignora en Raspberry Pi 4.
hdmi_group
El hdmi_group comando define el grupo de salida HDMI como CEA (Consumer
Electronics Association, el estándar que suelen utilizar los televisores) o DMT
(Display Monitor Timings, el estándar que suelen utilizar los monitores). Esta
configuración debe usarse junto con hdmi_mode.
hdmi_grou resultado
p
228
MANUAL RASPBERRY
PI 4
hdmi_mode
Junto con hdmi_group, hdmi_mode define el formato de salida HDMI. Los números
de modo de formato se derivan de la especificación de CTA .
Para configurar un modo de visualización personalizado que no se enumera aquí,
consulte más información en los foros.
NOTA
No todos los modos están disponibles en todos los modelos.
Estos valores son válidos si hdmi_group=1 (CEA):
Aspecto de la
hdmi_mode Resolución Frecuencia Notas
pantalla
VGA
1 60 Hz 4: 3
(640x480)
2 480p 60 Hz 4: 3
3 480p 60 Hz 16: 9
4 720p 60 Hz 16: 9
5 1080i 60 Hz 16: 9
6 480i 60 Hz 4: 3
7 480i 60 Hz 16: 9
8 240p 60 Hz 4: 3
9 240p 60 Hz 16: 9
cuadriplicado
10 480i 60 Hz 4: 3
de píxeles
cuadriplicado
11 480i 60 Hz 16: 9
de píxeles
229
MANUAL RASPBERRY
PI 4
cuadriplicado
12 240p 60 Hz 4: 3
de píxeles
cuadriplicado
13 240p 60 Hz 16: 9
de píxeles
duplicación de
14 480p 60 Hz 4: 3
píxeles
duplicación de
15 480p 60 Hz 16: 9
píxeles
dieciséis 1080p 60 Hz 16: 9
17 576p 50 Hz 4: 3
18 576p 50 Hz 16: 9
19 720p 50 Hz 16: 9
20 1080i 50 Hz 16: 9
21 576i 50 Hz 4: 3
22 576i 50 Hz 16: 9
23 288p 50 Hz 4: 3
24 288p 50 Hz 16: 9
cuadriplicado
25 576i 50 Hz 4: 3
de píxeles
cuadriplicado
26 576i 50 Hz 16: 9
de píxeles
cuadriplicado
27 288p 50 Hz 4: 3
de píxeles
cuadriplicado
28 288p 50 Hz 16: 9
de píxeles
duplicación de
29 576p 50 Hz 4: 3
píxeles
duplicación de
30 576p 50 Hz 16: 9
píxeles
230
MANUAL RASPBERRY
PI 4
31 1080p 50 Hz 16: 9
32 1080p 24 Hz 16: 9
33 1080p 25 Hz 16: 9
34 1080p 30 Hz 16: 9
cuadriplicado
35 480p 60 Hz 4: 3
de píxeles
cuadriplicado
36 480p 60 Hz 16: 9
de píxeles
cuadriplicado
37 576p 50 Hz 4: 3
de píxeles
cuadriplicado
38 576p 50 Hz 16: 9
de píxeles
blanking
39 1080i 50 Hz 16: 9
reducido
40 1080i 100 Hz 16: 9
42 576p 100 Hz 4: 3
44 576i 100 Hz 4: 3
48 480p 120 Hz 4: 3
50 480i 120 Hz 4: 3
52 576p 200 Hz 4: 3
54 576i 200 Hz 4: 3
56 480p 240 Hz 4: 3
58 480i 240 Hz 4: 3
60 720p 24 Hz 16: 9
61 720p 25 Hz 16: 9
62 720p 30 Hz 16: 9
233
MANUAL RASPBERRY
PI 4
1 640 x 350 85 Hz
2 640x400 85 Hz 16:10
3 720x400 85 Hz
4 640x480 60 Hz 4: 3
5 640x480 72 Hz 4: 3
6 640x480 75 Hz 4: 3
7 640x480 85 Hz 4: 3
8 800 x 600 56 Hz 4: 3
9 800 x 600 60 Hz 4: 3
10 800 x 600 72 Hz 4: 3
11 800 x 600 75 Hz 4: 3
12 800 x 600 85 Hz 4: 3
14 848x480 60 Hz 16: 9
incompatible con la
15 1024 x 768 43 Hz 4: 3
Raspberry Pi
dieciséis 1024 x 768 60 Hz 4: 3
17 1024 x 768 70 Hz 4: 3
18 1024 x 768 75 Hz 4: 3
19 1024 x 768 85 Hz 4: 3
234
MANUAL RASPBERRY
PI 4
21 1152x864 75 Hz 4: 3
22 1280x768 60 Hz 15: 9 blanking reducido
23 1280x768 60 Hz 15: 9
24 1280x768 75 Hz 15: 9
25 1280x768 85 Hz 15: 9
26 1280x768 120 Hz 15: 9 blanking reducido
27 1280 x 800 60 16:10 blanking reducido
28 1280 x 800 60 Hz 16:10
33 1280 x 960 85 Hz 4: 3
34 1280 x 960 120 Hz 4: 3 blanking reducido
35 1280x1024 60 Hz 5: 4
36 1280x1024 75 Hz 5: 4
37 1280x1024 85 Hz 5: 4
38 1280x1024 120 Hz 5: 4 blanking reducido
39 1360 x 768 60 Hz 16: 9
40 1360 x 768 120 Hz 16: 9 blanking reducido
41 1400x1050 60 Hz 4: 3 blanking reducido
42 1400x1050 60 Hz 4: 3
43 1400x1050 75 Hz 4: 3
44 1400x1050 85 Hz 4: 3
45 1400x1050 120 Hz 4: 3 blanking reducido
235
MANUAL RASPBERRY
PI 4
52 1600x1200 65 Hz 4: 3
53 1600x1200 70 Hz 4: 3
54 1600x1200 75 Hz 4: 3
55 1600x1200 85 Hz 4: 3
56 1600x1200 120 Hz 4: 3 blanking reducido
57 1680x1050 60 Hz 16:10 blanking reducido
58 1680x1050 60 Hz 16:10
59 1680x1050 75 Hz 16:10
60 1680x1050 85 Hz 16:10
61 1680x1050 120 Hz 16:10 blanking reducido
62 1792x1344 60 Hz 4: 3
63 1792x1344 75 Hz 4: 3
64 1792x1344 120 Hz 4: 3 blanking reducido
sesenta y
1856x1392 60 Hz 4: 3
cinco
66 1856x1392 75 Hz 4: 3
67 1856x1392 120 Hz 4: 3 blanking reducido
68 1920x1200 60 Hz 16:10 blanking reducido
69 1920x1200 60 Hz 16:10
70 1920x1200 75 Hz 16:10
236
MANUAL RASPBERRY
PI 4
71 1920x1200 85 Hz 16:10
72 1920x1200 120 Hz 16:10 blanking reducido
73 1920x1440 60 Hz 4: 3
74 1920x1440 75 Hz 4: 3
75 1920x1440 120 Hz 4: 3 blanking reducido
76 2560x1600 60 Hz 16:10 blanking reducido
77 2560x1600 60 Hz 16:10
78 2560x1600 75 Hz 16:10
79 2560x1600 85 Hz 16:10
80 2560x1600 120 Hz 16:10 blanking reducido
NO en Raspberry Pi
81 1366 x 768 60 Hz 16: 9
4
1920 x
82 60 Hz 16: 9 1080p
1080
83 1600 x 900 60 Hz 16: 9 blanking reducido
84 2048x1152 60 Hz 16: 9 blanking reducido
85 1280 x 720 60 Hz 16: 9 720p
86 1366 x 768 60 Hz 16: 9 blanking reducido
Tabla 0-34 Valores válidos si hdmi_group=2 (DMT)
NOTA Hay un límite de reloj de píxeles . El modo admitido más alto en modelos
anteriores a la Raspberry Pi 4 es 1920x1200 a 60Hz con supresión reducida,
mientras que Raspberry Pi 4 puede admitir hasta 4096x2160 (conocido como 4k) a
60Hz. También tenga en cuenta que si está utilizando ambos puertos HDMI de la
Raspberry Pi 4 para salida 4k, entonces está limitado a 30Hz en ambos.
hdmi_timings
Esto permite configurar valores de sincronización HDMI sin procesar para un modo
personalizado, seleccionado mediante hdmi_group=2 y hdmi_mode=87.
hdmi_timings=<h_active_pixels> <h_sync_polarity> <h_front_porch>
<h_sync_pulse> <h_back_porch> <v_active_lines> <v_sync_polarity>
237
MANUAL RASPBERRY
PI 4
238
MANUAL RASPBERRY
PI 4
HDMI_ASPECT_64_27 = 8
hdmi_force_mode
Si 1 se establece en, se eliminarán todos los demás modos, excepto los
especificados por hdmi_mode y hdmi_group de la lista interna, lo que significa que no
aparecerán en ninguna lista de modos enumerada. Esta opción puede ayudar si una
pantalla parece ignorar la configuración hdmi_mode y hdmi_group.
edid_content_type
Fuerza el tipo de contenido EDID a un valor específico.
Las opciones son:
0= EDID_ContentType_NODATA, tipo de contenido ninguno.
1= EDID_ContentType_Graphics, gráficos de tipo de contenido, ITC debe
establecerse en 1
2= EDID_ContentType_Photo, foto del tipo de contenido
3= EDID_ContentType_Cinema, tipo de contenido cine
4= EDID_ContentType_Game, juego de tipo de contenido
¿Qué valores son válidos para mi monitor?
Es posible que su monitor HDMI solo admita un conjunto limitado de formatos. Para
averiguar qué formatos son compatibles, utilice el siguiente método:
1. Configure el formato de salida en VGA 60Hz ( hdmi_group=1 y hdmi_mode=1)
e inicie su Raspberry Pi
2. Ingrese el siguiente comando para dar una lista de modos compatibles con
CEA: /opt/vc/bin/tvservice -m CEA
3. Ingrese el siguiente comando para obtener una lista de los modos compatibles
con DMT: /opt/vc/bin/tvservice -m DMT
4. Ingrese el siguiente comando para mostrar su estado actual:
/opt/vc/bin/tvservice -s
5. Ingrese los siguientes comandos para descargar información más detallada de
su monitor: /opt/vc/bin/tvservice -d edid.dat; /opt/vc/bin/edidparser edid.dat
El edid.dat también debe proporcionarse la hora de solucionar problemas con el
modo por defecto de HDMI.
239
MANUAL RASPBERRY
PI 4
Modo personalizado
Si su monitor requiere un modo que no está en una de las tablas anteriores,
entonces es posible definir un modo CVT personalizado para él:
hdmi_cvt=<width> <height> <framerate> <aspect> <margins> <interlace> <rb>
Valor Defecto Descripción
Los campos al final se pueden omitir para usar los valores predeterminados.
Tenga en cuenta que esto simplemente crea el modo (grupo 2 modo 87). Para que Pi
use esto de forma predeterminada, debe agregar algunas configuraciones
adicionales. Por ejemplo, lo siguiente selecciona una resolución de 800 × 480 y
habilita la unidad de audio:
hdmi_cvt = 800 480 60 6
hdmi_group = 2
hdmi_mode = 87
hdmi_drive = 2
Es posible que esto no funcione si su monitor no es compatible con los tiempos CVT
estándar.
Pantallas LCD y pantallas táctiles
ignore_lcd
240
MANUAL RASPBERRY
PI 4
lcd_framerate
Especifique la velocidad de fotogramas de la pantalla LCD de la Raspberry Pi, en
hercios / fps. El valor predeterminado es 60 Hz.
lcd_rotate
Esto voltea la pantalla usando la funcionalidad de volteo incorporada de la pantalla
LCD, que es una operación más barata que usar la operación de rotación basada en
GPU.
Por ejemplo, lcd_rotate=2 compensará una pantalla al revés.
disable_touchscreen
Activar / desactivar la pantalla táctil.
disable_touchscreen=1 desactivará la pantalla táctil en la pantalla LCD oficial de
Raspberry Pi.
enable_dpi_lcd
Habilite las pantallas LCD conectadas a los GPIO de DPI. Esto es para permitir el
uso de pantallas LCD de terceros mediante la interfaz de pantalla paralela.
dpi_group, dpi_mode,dpi_output_format
Los parámetros dpi_group y dpi_mode config.txt se usan para establecer modos
predeterminados (modos DMT o CEA como los usa HDMI arriba). Un usuario puede
241
MANUAL RASPBERRY
PI 4
242
MANUAL RASPBERRY
PI 4
Aumente este valor si el texto fluye por el borde derecho de la pantalla; Disminuirlo
si hay un borde negro entre el borde derecho de la pantalla y el texto.
overscan_top
El overscan_top comando especifica la cantidad de píxeles que se agregarán al valor
predeterminado del firmware de sobreexploración en el borde superior de la pantalla.
El valor predeterminado es 0.
Aumente este valor si el texto fluye por el borde superior de la pantalla; redúzcalo si
hay un borde negro entre el borde superior de la pantalla y el texto.
overscan_bottom
El overscan_bottom comando especifica la cantidad de píxeles que se agregarán al
valor predeterminado del firmware de sobreexploración en el borde inferior de la
pantalla. El valor predeterminado es 0.
Aumente este valor si el texto fluye por el borde inferior de la pantalla; redúzcalo si
hay un borde negro entre el borde inferior de la pantalla y el texto.
overscan_scale
Configure overscan_scale en 1 para forzar a cualquier capa que no sea framebuffer a
ajustarse a la configuración de sobreexploración. El valor predeterminado es 0.
NOTA: esta función generalmente no se recomienda: puede reducir la calidad de la
imagen porque la GPU escalará todas las capas de la pantalla. La desactivación de
la sobreexploración en la pantalla es la opción recomendada para evitar que las
imágenes se escalen dos veces (por la GPU y la pantalla).
framebuffer_width
El framebuffer_width comando especifica el ancho del framebuffer de la consola en
píxeles. El valor predeterminado es el ancho de la pantalla menos el sobrebarrido
horizontal total.
framebuffer_height
El framebuffer_height comando especifica la altura del framebuffer de la consola en
píxeles. El valor predeterminado es la altura de la pantalla menos la sobreexploración
vertical total.
max_framebuffer_height, max_framebuffer_width
244
MANUAL RASPBERRY
PI 4
Especifica las dimensiones máximas que puede tener el búfer de marco interno.
framebuffer_depth
Se utiliza framebuffer_depth para especificar la profundidad del búfer de fotogramas
de la consola en bits por píxel. El valor predeterminado es 16.
framebuffer_depth resultado notas
framebuffer_ignore_alpha
Configure framebuffer_ignore_alpha en 1 para deshabilitar el canal alfa. Puede
ayudar con la visualización de un 32bit framebuffer_depth.
framebuffer_priority
En un sistema con múltiples pantallas, utilizando el controlador de gráficos heredado
(pre-KMS), esto obliga a un dispositivo de pantalla interno específico a ser el primer
framebuffer de Linux (es decir /dev/fb0).
Las opciones que se pueden configurar son:
Monitor IDENTIFICACIÓN
LCD principal 0
LCD secundario 1
HDMI 0 2
Compuesto 3
HDMI 1 7
Tabla 0-37 framebuffer_priority multiples pantallas
max_framebuffers
245
MANUAL RASPBERRY
PI 4
Establecer este valor en 0 se puede usar para reducir los requisitos de memoria
cuando se usa en modo sin cabeza, ya que evitará que se asignen búferes de
fotogramas.
test_mode
El test_mode comando muestra una imagen y un sonido de prueba durante el inicio
(solo a través de las salidas de video compuesto y audio analógico) durante la
cantidad de segundos especificada, antes de continuar iniciando el sistema operativo
con normalidad. Esto se utiliza como prueba de fabricación; el valor predeterminado
es 0.
display_hdmi_rotate
Úselo display_hdmi_rotate para rotar o voltear la orientación de la pantalla HDMI. El
valor predeterminado es 0.
display_hdmi_rotate resultado
0 sin rotación
1 girar 90 grados en el sentido de las agujas del reloj
2 girar 180 grados en el sentido de las agujas del reloj
3 girar 270 grados en el sentido de las agujas del reloj
0x10000 volteo horizontal
0x20000 volteo vertical
Tabla 0-38 display_hdmi_rotate para orientación de la pantalla
246
MANUAL RASPBERRY
PI 4
247
MANUAL RASPBERRY
PI 4
250
MANUAL RASPBERRY
PI 4
251
MANUAL RASPBERRY
PI 4
El git clone comando anterior descargará la rama activa actual (desde la que
estamos creando las imágenes del sistema operativo Raspberry Pi) sin ningún
historial. Omitir --depth=1 descargará todo el repositorio, incluido el historial completo
de todas las ramas, pero esto lleva mucho más tiempo y ocupa mucho más espacio
de almacenamiento.
Para descargar una rama diferente (nuevamente sin historial), use la –branch opción:
git clone --depth=1 --branch <branch> https://github.com/raspberrypi/linux
donde <branch> está el nombre de la rama que desea descargar.
Consulte el repositorio de GitHub original para obtener información sobre las ramas
disponibles.
Configuración del kernel
Configure el kernel; además de la configuración predeterminada, es posible que
desee configurar su kernel con más detalle o aplicar parches de otra fuente para
agregar o eliminar la funcionalidad requerida.
Aplicar la configuración predeterminada
Primero, prepare la configuración predeterminada ejecutando los siguientes
comandos, según su versión de Raspberry Pi:
Para la configuración de compilación predeterminada de Raspberry Pi 1, Pi Zero, Pi
Zero W y Compute Module
cd linux
KERNEL=kernel
make bcmrpi_defconfig
Para la configuración de compilación predeterminada de Raspberry Pi 2, Pi 3, Pi 3+ y
Compute Module 3
cd linux
KERNEL=kernel7
make bcm2709_defconfig
Para la configuración de compilación predeterminada de Raspberry Pi 4 (32 bits)
cd linux
KERNEL=kernel7l
252
MANUAL RASPBERRY
PI 4
make bcm2711_defconfig
Para la configuración de compilación predeterminada de Raspberry Pi 4 (64 bits)
cd linux
KERNEL=kernel8
make bcm2711_defconfig
Personalización de la versión del kernel mediante LOCALVERSION
Además de los cambios de configuración de su kernel, es posible que desee ajustar
LOCALVERSION para asegurarse de que su nuevo kernel no reciba la misma
cadena de versión que el kernel ascendente. Esto aclara que está ejecutando su
propio kernel en la salida uname y garantiza que los módulos existentes /lib/modules
no se sobrescriban.
Para hacerlo, cambie la siguiente línea en .config:
CONFIG_LOCALVERSION = "- v7l-MY_CUSTOM_KERNEL"
También puede cambiar esa configuración gráficamente como se muestra en las
instrucciones de configuración del kernel . Se encuentra en "Configuración general"
=> "Versión local - agregar a la versión del kernel".
Construyendo el Kernel
Cree e instale el kernel, los módulos y los blobs del árbol de dispositivos; este paso
puede llevar mucho tiempo dependiendo del modelo de Pi que se utilice. Para el
kernel de 32 bits:
make -j4 zImage modules dtbs
sudo make modules_install
sudo cp arch/arm/boot/dts/*.dtb /boot/
sudo cp arch/arm/boot/dts/overlays/*.dtb* /boot/overlays/
sudo cp arch/arm/boot/dts/overlays/README /boot/overlays/
sudo cp arch/arm/boot/zImage /boot/$KERNEL.img
Para el kernel de 64 bits:
make -j4 Image modules dtbs
sudo make modules_install
sudo cp arch/arm64/boot/dts/broadcom/*.dtb /boot/
253
MANUAL RASPBERRY
PI 4
254
MANUAL RASPBERRY
PI 4
Ingrese los siguientes comandos para construir las fuentes y los archivos del árbol
de dispositivos:
Configuraciones de 32 bits
Para Pi 1, Pi Zero, Pi Zero W o Compute Module:
cd linux
KERNEL=kernel
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bcmrpi_defconfig
Para Pi 2, Pi 3, Pi 3+ o Compute Module 3:
cd linux
KERNEL=kernel7
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bcm2709_defconfig
Para Raspberry Pi 4:
cd linux
KERNEL=kernel7l
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bcm2711_defconfig
Configuraciones de 64 bits
Para Pi 3, Pi 3+ o Compute Module 3:
cd linux
KERNEL=kernel8
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- bcmrpi3_defconfig
Para Raspberry Pi 4:
cd linux
KERNEL=kernel8
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- bcm2711_defconfig
Construir con configuraciones
NOTA
Para acelerar la compilación en sistemas multiprocesador y obtener algunas mejoras
en los de un solo procesador, use -j n, donde n es el número de procesadores * 1.5.
255
MANUAL RASPBERRY
PI 4
256
MANUAL RASPBERRY
PI 4
257
MANUAL RASPBERRY
PI 4
258
MANUAL RASPBERRY
PI 4
Use las teclas de flecha para navegar, la tecla Enter para ingresar a un submenú
(indicado por --->), Escape dos veces para subir un nivel o salir, y la barra
espaciadora para cambiar el estado de una opción. Algunas opciones tienen
múltiples opciones, en cuyo caso aparecerán como un submenú y la tecla Enter
seleccionará una opción. Puede presionar hen la mayoría de las entradas para
obtener ayuda sobre esa opción o menú específico.
Resista la tentación de habilitar o deshabilitar muchas cosas en su primer intento; es
relativamente fácil romper su configuración, así que comience poco a poco y siéntase
cómodo con la configuración y el proceso de construcción.
Guardar sus cambios
Una vez que haya terminado de realizar los cambios que desea, presione Escape
hasta que se le solicite que guarde su nueva configuración. De forma
predeterminada, esto se guardará en el .config archivo. Puede guardar y cargar
configuraciones copiando este archivo.
Parcheando el Kernel
Al construir su kernel personalizado, es posible que desee aplicar parches, o
colecciones de parches ('conjuntos de parches'), al kernel de Linux.
Los conjuntos de parches a menudo se proporcionan con hardware más nuevo como
una medida temporal, antes de que los parches se apliquen al kernel de Linux
ascendente ('línea principal') y luego se propaguen a las fuentes del kernel de
Raspberry Pi. Sin embargo, existen conjuntos de parches para otros propósitos, por
ejemplo, para habilitar un kernel totalmente prioritario para uso en tiempo real.
Identificación de la versión
Es importante verificar qué versión del kernel tiene al descargar y aplicar parches. En
un directorio de fuentes del kernel, la ejecución head Makefile -n 3 le mostrará la
versión con la que se relacionan las fuentes:
VERSION = 3
PATCHLEVEL = 10
SUBLEVEL = 25
En este caso, las fuentes son para un kernel 3.10.25. Puede ver qué versión está
ejecutando en su sistema con el uname –r comando.
259
MANUAL RASPBERRY
PI 4
Aplicando parches
La forma de aplicar los parches depende del formato en el que estén disponibles. La
mayoría de los parches son un solo archivo y se aplican con la patch utilidad. Por
ejemplo, descarguemos y parcheemos nuestra versión de kernel de ejemplo con los
parches del kernel en tiempo real:
wget https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/older/patch-3.10.25-
rt23.patch.gz
gunzip patch-3.10.25-rt23.patch.gz
cat patch-3.10.25-rt23.patch | patch -p1
En nuestro ejemplo, simplemente descargamos el archivo, lo descomprimimos y
luego lo pasamos a la patch utilidad usando la cat herramienta y una tubería Unix.
260
MANUAL RASPBERRY
PI 4
NOTA
Este comando puede tardar bastante en completarse, ya que instala muchos
archivos pequeños. No hay indicador de progreso.
Cuando se realiza una nueva versión del kernel, necesitará los encabezados que
coincidan con esa versión del kernel. Pueden pasar varias semanas hasta que el
repositorio se actualice para reflejar la última versión del kernel. Si esto sucede, el
mejor enfoque es clonar el kernel como se describe en la sección de compilación.
261
MANUAL RASPBERRY
PI 4
262
MANUAL RASPBERRY
PI 4
Sudo Puede encontrar más información sobre el usuario root en la página raíz de
Linux.
264
MANUAL RASPBERRY
PI 4
mkdir: Esto mkdir new_dir crea un nuevo directorio, por ejemplo , crearía el
directorio new_dir en el directorio de trabajo actual.
cat enumera el contenido de los archivos, por ejemplo cat some_file, mostrará
el contenido de some_file.
Otros comandos que puede encontrar útiles se pueden encontrar en la página de
comandos .
Descubriendo un comando
Para obtener más información sobre un comando en particular, puede ejecutar man
el comando seguido del comando del que desea obtener más información (por
ejemplo man ls). Se mostrará la página de manual (o página de manual) de ese
comando, incluida la información sobre los indicadores de ese programa y el efecto
que tienen. Algunas páginas de manual darán ejemplos de uso.
Navegue /home/ y ejecute 1s, y verá las carpetas de inicio de cada uno de los
usuarios en el sistema.
Tenga en cuenta que si ha iniciado sesión como usuario raíz, escribir cd o cd ~ lo
llevará al directorio de inicio del usuario raíz; a diferencia de los usuarios normales,
este se encuentra en /root/ not /home/root/.
Comandos de Linux
A continuación, se muestran algunos comandos de Linux fundamentales y comunes
con ejemplos de uso:
Sistema de archivos
1s
El 1s comando enumera el contenido del directorio actual (o uno especificado). Se
puede usar con la -lbandera para mostrar información adicional (permisos,
propietario, grupo, tamaño, fecha y marca de tiempo de la última edición) sobre cada
archivo y directorio en un formato de lista. La –a bandera le permite ver archivos que
comienzan con . (es decir, dotfiles).
CD
El uso cd cambia el directorio actual al especificado. Puede utilizar rutas relativas (es
decir cd directoryA) o absolutas (es decir cd /home/pi/directoryA).
pwd
El pwd comando muestra el nombre del directorio de trabajo actual: en una
Raspberry Pi, ingresar pwd generará algo como /home/pi.
mkdir
Puede utilizar mkdir para crear un nuevo directorio, por ejemplo mkdir newDir, crearía
el directorio newDir en el directorio de trabajo actual.
rmdir
Para eliminar directorios vacíos, use rmdir. Entonces, por ejemplo, rmdir oldDir
eliminará el directorio oldDir solo si está vacío.
rm
El comando rm elimina el archivo especificado (o de forma recursiva de un directorio
cuando se usa con -r). Tenga cuidado con este comando: ¡los archivos eliminados de
esta manera en su mayoría desaparecen para siempre!
267
MANUAL RASPBERRY
PI 4
cp
El uso cp hace una copia de un archivo y lo coloca en la ubicación especificada (esto
es similar a copiar y pegar). Por ejemplo, cp ~/fileA /home/otherUser/ copiaría el
archivo fileA de su directorio de inicio al del usuario otherUser (asumiendo que tiene
permiso para copiarlo allí). Este comando puede tomar FILE FILE ( cp fileA fileB),
FILE DIR( cp fileA /directoryB/) o -r DIR DIR (que copia recursivamente el contenido
de los directorios) como argumentos.
mv
El mv comando mueve un archivo y lo coloca en la ubicación especificada (por lo
tanto, donde cp realiza un 'copiar y pegar', mv realiza un 'cortar y pegar'). El uso es
similar a cp. Por mv ~/fileA /home/otherUser/ lo tanto, movería el archivo fileA de su
directorio de inicio al del usuario otherUser. Este comando puede tomar FILE FILE
( mv fileA fileB), FILE DIR ( mv fileA /directoryB/) o DIR DIR ( mv /directoryB
/directoryC) como argumentos. Este comando también es útil como método para
cambiar el nombre de archivos y directorios una vez creados.
tocar
El comando touch establece la última marca de tiempo modificada de los archivos
especificados o la crea si aún no existe.
gato
Puede utilizar cat para enumerar el contenido de archivo (s), por ejemplo cat thisFile,
mostrará el contenido de thisFile. Se puede utilizar para enumerar el contenido de
varios archivos, es decir cat *.txt, enumerará el contenido de todos los .txt archivos
en el directorio actual.
cabeza
El head comando muestra el comienzo de un archivo. Se puede usar con –n para
especificar el número de líneas que se mostrarán (por defecto diez), o con –c para
especificar el número de bytes.
cola
268
MANUAL RASPBERRY
PI 4
269
MANUAL RASPBERRY
PI 4
270
MANUAL RASPBERRY
PI 4
hombre
Muestre la página de manual de un archivo con man. Para obtener más información,
ejecute man man para ver la página del manual del comando man.
Buscar
grep
Utilícelo grep para buscar en archivos determinados patrones de búsqueda. Por
ejemplo, grep "search" *.txt buscará en todos los archivos del directorio actual que
terminan con .txt la búsqueda de cadenas.
El grep comando admite expresiones regulares que permiten incluir combinaciones
especiales de letras en la búsqueda.
awk
awk es un lenguaje de programación útil para buscar y manipular archivos de texto.
encontrar
El find comando busca en un directorio y subdirectorios archivos que coincidan con
ciertos patrones.
dónde está
Úselo whereis para encontrar la ubicación de un comando. Busca en las ubicaciones
de programas estándar hasta que encuentra el comando solicitado.
Redes
silbido
La ping utilidad se usa generalmente para verificar si se puede establecer
comunicación con otro host. Se puede utilizar con la configuración predeterminada
simplemente especificando un nombre de host (p ping raspberrypi.com. Ej. ) O una
dirección IP (p ping 8.8.8.8. Ej .). Puede especificar la cantidad de paquetes a enviar
con la -cbandera.
nmap
nmap es una herramienta de exploración y escaneo de redes. Puede devolver
información sobre el puerto y el sistema operativo sobre un host o una variedad de
hosts. Ejecutar solo nmap mostrará las opciones disponibles, así como el uso de
ejemplo.
271
MANUAL RASPBERRY
PI 4
nombre de host
El hostname comando muestra el nombre de host actual del sistema. Un (super)
usuario privilegiado puede establecer el nombre de host a uno nuevo
proporcionándolo como un argumento (por ejemplo hostname new-host).
ifconfig
Úselo ifconfig para mostrar los detalles de configuración de red para las interfaces en
el sistema actual cuando se ejecuta sin ningún argumento (es decir ifconfig). Al
proporcionar el comando con el nombre de una interfaz (por ejemplo, eth0 o 1o),
puede modificar la configuración: consulte la página del manual para obtener más
detalles.
Editores de texto
En Linux, puede elegir entre editores de texto. Algunos son fáciles de usar pero
tienen una funcionalidad limitada; otros requieren entrenamiento para usarlos y
requieren mucho tiempo para dominarlos, pero ofrecen una funcionalidad increíble.
Editores de texto en el escritorio
Editor de texto
Al usar Raspberry Pi OS Desktop, en el menú de accesorios hay una opción para
ejecutar un Editor de texto. Este es un editor simple que se abre en una ventana
como una aplicación normal. Permite el uso del mouse y el teclado, y tiene pestañas
y resaltado de sintaxis.
Puede utilizar atajos de teclado, como Ctrl + S guardar un archivo y Ctrl + X salir.
Thonny
Thonny es un IDE y REPL de Python, por lo que puede escribir y editar código
Python en una ventana y ejecutarlo directamente desde el editor. Thonny tiene
ventanas independientes y resaltado de sintaxis, y usa Python 3.
Geany
Un IDE rápido y liviano, que admite muchos tipos de archivos diferentes, incluidos C /
C ++ y Python. Se instala de forma predeterminada en el sistema operativo
Raspberry Pi.
Editores de texto en la terminal
Nano
272
MANUAL RASPBERRY
PI 4
GNU Nano está en el extremo fácil de usar de los editores de línea de comandos.
Está instalado de forma predeterminada, así que utilícelo nano somefile.txt para
editar un archivo y los atajos de teclado como Ctrl + O guardar y Ctrl + X salir.
Vi
Vi es un editor de línea de comandos muy antiguo (c. 1976), que está disponible en
la mayoría de los sistemas UNIX y está preinstalado en el sistema operativo
Raspberry Pi. Lo reemplaza Vim (Vi mejorado), que requiere instalación.
A diferencia de la mayoría de los editores, Vi y Vim tienen varios modos diferentes.
Cuando abre Vi con vi somefile.txt, comienza en el modo de comando que no permite
directamente la entrada de texto. Presione i para cambiar al modo de inserción para
editar el archivo y escriba. Para guardar el archivo debe volver al modo de comando,
así que presione la Escape tecla e ingrese :w (seguido de Enter), que es el comando
para escribir el archivo en el disco.
Para buscar la palabra 'frambuesa' en un archivo, asegúrese de estar en el modo de
comando (presione Escape), luego escriba /raspberry seguido de n y N para
desplazarse hacia adelante o hacia atrás a través de los resultados.
Para guardar y salir, ingrese el comando :wq. Para salir sin guardar, ingrese el
comando :q!.
Dependiendo de la configuración de su teclado, es posible que las teclas del cursor
no funcionen. En este caso, puede usar las teclas HJKL (que se mueven hacia la
izquierda, abajo, arriba y derecha respectivamente) para navegar por el archivo en
modo comando.
Empuje
Vim es una extensión de Vi y funciona de la misma manera, con una serie de
mejoras. Solo Vi está instalado de forma predeterminada, por lo que para obtener
todas las funciones de Vim, instálelo con APT:
sudo apt install vim
Puede editar un archivo en Vim con vim somefile.txt.
Emacs
273
MANUAL RASPBERRY
PI 4
274
MANUAL RASPBERRY
PI 4
275
MANUAL RASPBERRY
PI 4
Raspberry Pi como pi usuario, entonces está iniciando sesión como usuario normal.
Puede ejecutar comandos como root usuario utilizando el sudo comando antes del
programa que desea ejecutar.
Por ejemplo, si desea instalar software adicional en el sistema operativo Raspberry
Pi, normalmente usa la apt herramienta. Para actualizar la lista de software
disponible, debe anteponer el apt comando con sudo:
sudo apt update
También puede ejecutar un shell de superusuario utilizando sudo su. Al ejecutar
comandos como superusuario, no hay nada que proteger contra errores que podrían
dañar el sistema. Se recomienda que solo ejecute comandos como superusuario
cuando sea necesario y que salga de un shell de superusuario cuando ya no sea
necesario.
La lista de Sudo'ers
El pi usuario predeterminado en Raspberry Pi OS es un miembro del sudo grupo.
Esto le da la capacidad de ejecutar comandos como root cuando está precedido por
sudo y de cambiar al usuario root con sudo su.
Para agregar un nuevo usuario al sudo grupo, use el adduser comando:
sudo adduser bob sudo
Tenga en cuenta que bob se le pedirá al usuario que introduzca su contraseña
cuando se ejecute sudo. Esto difiere del comportamiento del pi usuario, ya pi que no
se le solicita su contraseña. Si desea eliminar la solicitud de contraseña del nuevo
usuario, cree un archivo sudoers personalizado y colóquelo en el /etc/sudoers.d
directorio.
1. Cree el archivo usando sudo visudo /etc/sudoers.d/010_bob-nopasswd.
2. Inserte el siguiente contenido en una sola línea: bob ALL=(ALL) NOPASSWD:
ALL
3. Guarda el archivo y cierra.
Una vez que haya salido del editor, se verificará el archivo en busca de errores de
sintaxis. Si no se detectaron errores, el archivo se guardará y volverá a la línea de
comandos. Si se detectaron errores, se le preguntará "¿y ahora qué?" Presione la
tecla 'enter' en su teclado: esto mostrará una lista de opciones. Probablemente desee
276
MANUAL RASPBERRY
PI 4
usar 'e' para '(e) dit sudoers file again', para poder editar el archivo y solucionar el
problema.
NOTA
Elegir la opción 'Q' guardará el archivo con cualquier error de sintaxis aún en su
lugar, lo que hace imposible que cualquier usuario use el comando sudo.
NOTA
Es una práctica estándar en Linux que el usuario solicite su contraseña cuando se
ejecuta sudo, ya que hace que el sistema sea un poco más seguro.
El archivo `.bashrc`
En su carpeta de inicio encontrará un archivo oculto llamado .bashrc que contiene
algunas opciones de configuración de usuario. Puede editar este archivo para
adaptarlo a sus necesidades. Los cambios realizados en este archivo se aplicarán la
próxima vez que se abra un terminal, ya que es cuando .bashrc se lee el archivo.
Si desea que sus cambios se realicen en su terminal actual, puede usar source
~/.bashrc o exec bash. Estos en realidad hacen cosas ligeramente diferentes: el
primero simplemente vuelve a ejecutar el .bashrc archivo, lo que puede resultar en
cambios no deseados en cosas como la ruta, el último reemplaza el shell actual con
un nuevo shell bash, que restablece el shell al estado al iniciar sesión , desechando
cualquier variable de shell que haya establecido. Elija el que sea más apropiado.
Se le proporcionan algunas adaptaciones útiles; algunos de estos están comentados
con un de forma predeterminada. Para habilitarlos, elimine el y estarán activos la
próxima vez que inicie su Pi o inicie una nueva terminal.
Por ejemplo, algunos 1s alias:
alias ls = 'ls --color = auto'
#alias dir = 'dir --color = auto'
#alias vdir = 'vdir --color = auto'
Se proporcionan alias como estos para ayudar a los usuarios de otros sistemas
como Microsoft Windows ( dir es el 1s de DOS / Windows). Otros son para agregar
color a la salida de comandos como 1s y grep por defecto.
while :
do
278
MANUAL RASPBERRY
PI 4
279
MANUAL RASPBERRY
PI 4
280
MANUAL RASPBERRY
PI 4
[Servicio]
ExecStart = / usr / bin / python3 -u main.py
WorkingDirectory = / home / pi / myscript
StandardOutput = heredar
StandardError = heredar
Reiniciar = siempre
Usuario = pi
[Instalar en pc]
WantedBy = multi-user.target
Entonces, en esta instancia, el servicio ejecutaría Python 3 desde nuestro directorio
de trabajo /home/pi/myscript que contiene nuestro programa Python para ejecutar
main.py. Pero no está limitado a los programas de Python: simplemente cambie la
ExecStart línea para que sea el comando para iniciar cualquier programa o
secuencia de comandos que desee ejecutar desde el inicio.
Copie este archivo /etc/systemd/system como root, por ejemplo:
sudo cp myscript.service /etc/systemd/system/myscript.service
Una vez que se haya copiado, debe informar systemdque se ha agregado un nuevo
servicio. Esto se hace con el siguiente comando:
sudo systemctl daemon-reload
281
MANUAL RASPBERRY
PI 4
282
MANUAL RASPBERRY
PI 4
NOTA
Si está utilizando una pantalla con su Raspberry Pi y si arranca desde la línea de
comando en lugar del escritorio, su dirección IP debería aparecer en los últimos
mensajes antes del indicador de inicio de sesión. De lo contrario, abra una ventana
de Terminal y escriba, hostname –I lo que revelará la dirección IP de su Raspberry
Pi.
Lista de dispositivos de enrutador
En un navegador web, navegue hasta la dirección IP de su enrutador, por ejemplo
http://192.168.1.1, que generalmente está impresa en una etiqueta en su enrutador;
esto lo llevará a un panel de control. Luego, inicie sesión con sus credenciales, que
generalmente también están impresas en el enrutador o se le envían en la
documentación adjunta. Busque la lista de dispositivos conectados o similar (todos
los enrutadores son diferentes) y debería ver algunos dispositivos que reconoce.
Algunos dispositivos se detectan como PC, tabletas, teléfonos, impresoras, etc., por
lo que debes reconocer algunos y descartarlos para averiguar cuál es tu Raspberry
Pi. También tenga en cuenta el tipo de conexión; si su Pi está conectado con un
cable, debería haber menos dispositivos para elegir.
Resolución raspberrypi.localcon mDNS
En el sistema operativo Raspberry Pi, el servicio Avahi admite DNS de multidifusión
de forma inmediata.
Si su dispositivo es compatible con mDNS, puede acceder a su Raspberry Pi
utilizando su nombre de host y el .local sufijo. El nombre de host predeterminado en
una instalación nueva del sistema operativo Raspberry Pi es raspberrypi, por lo que,
de forma predeterminada, cualquier Raspberry Pi que ejecute el sistema operativo
Raspberry Pi responde a:
ping raspberrypi.local
Si se puede acceder a la Raspberry Pi, pingse mostrará su dirección IP:
PING raspberrypi.local (192.168.1.131): 56 bytes de datos
64 bytes de 192.168.1.131: icmp_seq = 0 ttl = 255 tiempo = 2.618 ms
283
MANUAL RASPBERRY
PI 4
284
MANUAL RASPBERRY
PI 4
El escaneo de ping solo hace ping a todas las direcciones IP para ver si responden.
Para cada dispositivo que responde al ping, la salida muestra el nombre de host y la
dirección IP así:
A partir de Nmap 6.40 (http://nmap.org) en 2014-03-10 12:46 GMT
Informe de escaneo de Nmap para hpprinter (192.168.1.2)
El host está activo (latencia de 0.00044s).
Informe de escaneo de Nmap para Gordons-MBP (192.168.1.4)
El host está activo (latencia de 0,0010 s).
Informe de escaneo de Nmap para ubuntu (192.168.1.5)
El host está activo (latencia de 0,0010 s).
Informe de escaneo de Nmap para raspberrypi (192.168.1.8)
El host está activo (latencia de 0,0030 s).
Nmap hecho: 256 direcciones IP (4 hosts arriba) escaneadas en 2,41 segundos
Aquí puede ver que un dispositivo con nombre de host raspberrypi tiene una
dirección IP 192.168.1.8. Tenga en cuenta que para ver los nombres de host, debe
ejecutar nmap como root anteponiendo sudo el comando.
Obtener direcciones IPv6 haciendo ping desde un segundo dispositivo
Primero busque su (s) propia (s) dirección (es) IP, en otras palabras, la de la
computadora que está usando para encontrar la dirección IP de su Pi mediante
hostname -I
fd00::ba27:ebff:feb6:f293 2001:db8:494:9d01:ba27:ebff:feb6:f293
El ejemplo muestra dos direcciones IP. La primera es una dirección unicast local
única ( fc00::/7). El segundo es la dirección de unidifusión global ( 2000::/3). También
es posible ver solo uno de ellos dependiendo de la configuración de su red
(enrutador). Ambas direcciones son válidas para acceder a la Raspberry Pi dentro de
su LAN. La dirección de salida 2000::/3 es accesible en todo el mundo, siempre que
el firewall de su enrutador esté abierto.
Ahora use una de las direcciones IP del primer paso para hacer ping a todos los
nodos locales:
ping -c 2 -I 2001: db8: 494: 9d01: ba27: ebff: feb6: f293 ff02 :: 1
285
MANUAL RASPBERRY
PI 4
ping -c 2 -I 2001: db8: 494: 9d01: ba27: ebff: feb6: f293 ff02 :: 1% eth0
-c 2 significa enviar dos solicitudes de eco
-I con la dirección IP, establece la interfaz y la dirección de origen de la solicitud de
eco, es necesario elegir la dirección IP de la interfaz, eth0 no es suficiente, la
respuesta sería la dirección del enlace local ( fe80::/10), necesitamos la dirección
global o local dirección de unidifusión
ff02::1 es una dirección de multidifusión bien conocida para todos los nodos en el
enlace, por lo que se comporta como una transmisión local, por lo general se define
en, /etc/hosts por lo que también puede usar el nombre ( ip6-allnodes o ipv6-
allnodes) en lugar de la dirección literal
Algunos sistemas más nuevos esperan el ID de interfaz detrás de la dirección de
multidifusión.
ping -c 2 -I 2001: db8: 494: 9d01: ba27: ebff: feb6: f293 ip6-allnodes
PING ip6-allnodes (ip6-allnodes (ff02 :: 1)) desde 2001: db8: 494: 9d01: ba27: ebff:
feb6: f293: 56 bytes de datos
64 bytes de 2001: db8: 494: 9d01: ba27: ebff: feb6: f293: icmp_seq = 1 ttl = 64
tiempo = 0,597 ms
64 bytes de witz.fritz.box (2001: db8: 494: 9d01: 728b: cdff: fe7d: a2e): icmp_seq = 1
ttl = 255 tiempo = 1.05 ms (DUP!)
64 bytes de raspberrypi4.fritz.box (2001: db8: 494: 9d01: dea6: 32ff: fe23: 6be1):
icmp_seq = 1 ttl = 64 tiempo = 1.05 ms (DUP!)
64 bytes de 2001: db8: 494: 9d01: da37: beff: fefd: f09d (2001: db8: 494: 9d01: da37:
beff: fefd: f09d): icmp_seq = 1 ttl = 255 tiempo = 1.05 ms (DUP!)
64 bytes de fusion.fritz.box (2001: db8: 494: 9d01: 1e6f: 65ff: fec9: 8746): icmp_seq =
1 ttl = 255 tiempo = 2,12 ms (DUP!)
64 bytes de fritz.box (2001: db8: 494: 9d01: 464e: 6dff: fe72: 8a08): icmp_seq = 1 ttl
= 64 tiempo = 2.62 ms (DUP!)
64 bytes de raspberrypi.fritz.box (2001: db8: 494: 9d01: ba27: ebff: feb6: f293):
icmp_seq = 2 ttl = 64 tiempo = 0,480 ms
286
MANUAL RASPBERRY
PI 4
...
pi @ raspberrypi4: ~ $
Obtener la dirección IP de un Pi usando su teléfono inteligente
La aplicación Fing es un escáner de red gratuito para teléfonos inteligentes. Está
disponible para Android e iOS .
Su teléfono y su Raspberry Pi deben estar en la misma red, así que conecte su
teléfono a la red inalámbrica correcta.
Cuando abra la aplicación Fing, toque el botón de actualización en la esquina
superior derecha de la pantalla. Después de unos segundos obtendrá una lista con
287
MANUAL RASPBERRY
PI 4
290
MANUAL RASPBERRY
PI 4
También se le pedirá que ingrese una frase de contraseña, que es opcional. La frase
de contraseña se utiliza para cifrar la clave SSH privada, de modo que si alguien más
copia la clave, no puede hacerse pasar por usted para obtener acceso. Si elige usar
una frase de contraseña, escríbala aquí y presione Enter, luego escríbala
nuevamente cuando se le solicite. Deje el campo vacío si no hay frase de
contraseña.
Ahora mire dentro de su .ssh directorio:
ls ~/.ssh
y debería ver los archivos id_rsa y id_rsa.pub:
claves_autorizadas id_rsa id_rsa.pub hosts_conocidos
El id_rsa archivo es su clave privada. Guarde esto en su computadora.
El id_rsa.pub archivo es su clave pública. Esto es lo que comparte con las máquinas
a las que se conecta: en este caso, su Raspberry Pi. Cuando la máquina a la que
intenta conectarse coincida con su clave pública y privada, le permitirá conectarse.
Eche un vistazo a su clave pública para ver cómo se ve:
cat ~/.ssh/id_rsa.pub
Debe tener la forma:
ssh-rsa <REALLY LONG STRING OF RANDOM CHARACTERS> user@host
Copia tu clave a tu Raspberry Pi
Usando la computadora desde la que se conectará, agregue la clave pública a su
authorized_keys archivo en la Raspberry Pi enviándola a través de SSH:
ssh-copy-id <USERNAME>@<IP-ADDRESS>
NOTA
292
MANUAL RASPBERRY
PI 4
294
MANUAL RASPBERRY
PI 4
295
MANUAL RASPBERRY
PI 4
Nadie-Usuario = nadie
Nobody-Group = nogroup
297
MANUAL RASPBERRY
PI 4
Sin embargo, tenga en cuenta que el cliente puede tener diferentes requisitos para
Nobody-User y Nobody-Group. Por ejemplo, en las variantes de RedHat, es
nfsnobody para ambos. Si no está seguro, verifique a través de los siguientes
comandos para ver si nobody y nogroup están allí:
cat /etc/passwd
cat /etc/group
De esta manera, el servidor y el cliente no necesitan que los usuarios compartan el
mismo UID / GUID. Para aquellos que usan la autenticación basada en LDAP,
agregue las siguientes líneas a la idmapd.conf de sus clientes:
[Traducción]
Método = nsswitch
Esto hará idmapd que sepa mirar nsswitch.conf para determinar dónde debe buscar
información de credenciales. Si ya tiene la autenticación LDAP funcionando, nsswitch
no debería requerir más explicaciones.
Para exportar nuestros directorios a una red local 192.168.1.0/24, agregamos las
siguientes dos líneas a /etc/exports:
/ export 192.168.1.0/24(rw,fsid=0,insecure,no_subtree_check,async)
/ export / users 192.168.1.0/24(rw,nohide,insecure,no_subtree_check,async)
Bloqueo de mapa de puertos (opcional)
Los archivos de su NFS están abiertos para cualquier persona en la red. Como
medida de seguridad, puede restringir el acceso a clientes específicos.
Agregue la siguiente línea a /etc/hosts.deny:
rpcbind mountd nfsd statd lockd rquotad: TODOS
Al bloquear a todos los clientes primero, solo los clientes de /etc/hosts.allow
(agregados a continuación) podrán acceder al servidor.
Ahora agregue la siguiente línea a /etc/hosts.allow:
rpcbind mountd nfsd statd lockd rquotad: <lista de IPv4s>
donde <list of IPv4s> es una lista de las direcciones IP del servidor y todos los
clientes. (Estas tienen que ser direcciones IP debido a una limitación en rpcbind, que
298
MANUAL RASPBERRY
PI 4
no le gustan los nombres de host). Tenga en cuenta que si tiene NIS configurado,
puede agregarlas a la misma línea.
Asegúrese de que la lista de direcciones IP autorizadas incluya la localhost dirección
( 127.0.0.1), ya que los scripts de inicio en las versiones recientes de Ubuntu usan el
rpcinfo comando para descubrir la compatibilidad con NFSv3, y esto se desactivará si
localhost no puede conectarse.
Finalmente, para que sus cambios surtan efecto, reinicie el servicio:
sudo systemctl restart nfs-kernel-server
Configuración de un cliente NFS
Ahora que su servidor se está ejecutando, debe configurar cualquier cliente para
poder acceder a él. Para comenzar, instale los paquetes requeridos:
sudo apt install nfs-common
En el cliente, podemos montar el árbol de exportación completo con un comando:
mount -t nfs -o proto=tcp,port=2049 <nfs-server-IP>:/ /mnt
También puede especificar el nombre de host del servidor NFS en lugar de su
dirección IP, pero en este caso debe asegurarse de que el nombre de host se pueda
resolver en una IP en el lado del cliente. Una forma sólida de asegurarse de que esto
siempre se resolverá es utilizar el /etc/hosts archivo.
Tenga en cuenta que <nfs-server-IP>:/export no es necesario en NFSv4, como lo fue
en NFSv3. La exportación raíz está :/predeterminada para exportar con fsid=0.
También podemos montar un subárbol exportado con:
mount -t nfs -o proto=tcp,port=2049 <nfs-server-IP>:/users /home/users
Para asegurarse de que esté montado en cada reinicio, agregue la siguiente línea
a /etc/fstab:
<nfs-server-IP>: / / mnt nfs auto 0 0
Si, después del montaje, la entrada es /proc/mounts appears como <nfs-server-IP>://
(con dos barras), es posible que deba especificar dos barras /etc/fstab, o de lo
contrario umount podría quejarse de que no puede encontrar el montaje.
Bloqueo de mapa de puertos (opcional)
Agregue la siguiente línea a /etc/hosts.deny:
rpcbind: TODOS
299
MANUAL RASPBERRY
PI 4
300
MANUAL RASPBERRY
PI 4
301
MANUAL RASPBERRY
PI 4
302
MANUAL RASPBERRY
PI 4
303
MANUAL RASPBERRY
PI 4
304
MANUAL RASPBERRY
PI 4
305
MANUAL RASPBERRY
PI 4
mkdir windowshare
Ahora, necesitamos montar la carpeta remota en esa ubicación. La carpeta remota
es el nombre de host o la dirección IP de la PC con Windows y el nombre del recurso
compartido que se utiliza al compartirlo. También debemos proporcionar el nombre
de usuario de Windows que se utilizará para acceder a la máquina remota.
sudo mount.cifs //<hostname or IP address>/share /home/pi/windowshare -o
user=<name>
Ahora debería poder ver el contenido del recurso compartido de Windows en su
Raspberry Pi.
cd windowshare
ls
Error "El host está inactivo"
Este error se debe a una combinación de dos cosas: una falta de coincidencia de la
versión del protocolo SMB y el cliente CIFS en Linux que devuelve un mensaje de
error engañoso. Para solucionar este problema, es necesario agregar una entrada de
versión al comando de montaje. De forma predeterminada, el sistema operativo
Raspberry Pi solo usará las versiones 2.1 y superiores, que son compatibles con
Windows 7 y versiones posteriores. Los dispositivos más antiguos, incluidos algunos
NAS, pueden requerir la versión 1.0:
307
MANUAL RASPBERRY
PI 4
309
MANUAL RASPBERRY
PI 4
310
MANUAL RASPBERRY
PI 4
311
MANUAL RASPBERRY
PI 4
312
MANUAL RASPBERRY
PI 4
Navegue a este directorio en una ventana de terminal y eche un vistazo a lo que hay
dentro:
cd / var / www / html
ls -al
Esto le mostrará:
313
MANUAL RASPBERRY
PI 4
total 12
drwxr-xr-x 2 root root 4096 Jan 8 01:29 .
drwxr-xr-x 12 root root 4096 Jan 8 01:28 ..
-rw-r--r-- 1 root root 177 Jan 8 01:29 index.html
Esto muestra que, de forma predeterminada, hay un archivo /var/www/html/ llamado
index.html y es propiedad del root usuario (al igual que la carpeta adjunta). Para
editar el archivo, debe cambiar su propiedad a su propio nombre de usuario. Cambie
el propietario del archivo ( pi aquí se asume el usuario predeterminado ) usando sudo
chown pi: index.html.
Ahora puede intentar editar este archivo y luego actualizar el navegador para ver el
cambio de la página web. Si conoce HTML, puede poner sus propios archivos HTML
y otros activos en este directorio y servirlos como un sitio web en su red local.
Instalación de PHP para Apache
Para permitir que su servidor Apache procese archivos PHP, deberá instalar la última
versión de PHP y el módulo PHP para Apache. Escriba el siguiente comando para
instalarlos:
sudo apt install php libapache2-mod-php -y
Ahora elimine el index.htmlarchivo:
sudo rm index.html
y crea el archivo index.php:
sudo nano index.php
Pon algo de contenido PHP en él:
<?php echo "hello world"; ?>
Ahora guarde y actualice su navegador. Debería ver "hola mundo". Esto no es
dinámico, pero aún así lo ofrece PHP. Prueba algo dinámico:
<?php echo date('Y-m-d H:i:s'); ?>
o muestra tu información de PHP:
<?php phpinfo(); ?>
Arranque en red su Raspberry Pi
Puede configurar un servidor DHCP / TFTP que le permitirá arrancar una Raspberry
Pi 3 o 4 desde la red.
314
MANUAL RASPBERRY
PI 4
Las instrucciones asumen que tiene una red doméstica existente y que desea usar
una Raspberry Pi para el servidor. También necesitará una Raspberry Pi 3 o 4
adicional como cliente para arrancar. Solo se necesita una tarjeta SD porque el
cliente se iniciará desde el servidor después de la configuración inicial del cliente.
NOTA
Debido a la amplia gama de dispositivos de red y enrutadores disponibles, no
podemos garantizar que el inicio de la red funcione con cualquier dispositivo. Hemos
recibido informes de que, si no puede hacer que el arranque de la red funcione,
deshabilitar los marcos STP en su red puede ayudar.
Configuración del cliente
Raspberry Pi 3, modelo B
NOTA
Esta sección solo se aplica a la Raspberry Pi 3, Modelo B, ya que el arranque de red
está habilitado en la Raspberry Pi 3, Modelo B + en la fábrica.
Antes de la Raspberry Pi 3, el Modelo B arrancará en red, debe arrancarse desde
una tarjeta SD con una opción de configuración para habilitar el modo de arranque
USB. Esto establecerá un bit en la memoria OTP (programable por única vez) en el
SoC de Raspberry Pi que permite el arranque en red. Una vez hecho esto, el Pi 3B
intentará arrancar desde USB y desde la red, si no puede arrancar desde la tarjeta
SD.
Instale Raspberry Pi OS Lite, o Raspberry Pi OS con Raspberry Pi Desktop, en la
tarjeta SD de la forma habitual. A continuación, habilite el modo de arranque USB
con el siguiente comando:
echo program_usb_boot_mode=1 | sudo tee -a /boot/config.txt
Esto se suma program_usb_boot_mode=1al final de /boot/config.txt. Reinicie la
Raspberry Pi con sudo reboot. Una vez que el cliente Raspberry Pi se haya
reiniciado, verifique que la OTP haya sido programada con:
vcgencmd otp_dump | grep 17:
17:3020000a
Asegúrese de que la salida 0x3020000a sea correcta.
315
MANUAL RASPBERRY
PI 4
La configuración del cliente está casi lista. Lo último que debe hacer es eliminar la
program_usb_boot_mode línea de config.txt. Puede hacer esto con sudo nano
/boot/config.txt, por ejemplo. Finalmente, apague el cliente Raspberry Pi con sudo
poweroff.
Raspberry Pi 4, modelo B
El arranque de red se puede habilitar en el Pi 4 usando la raspi-config herramienta.
Primero, ejecute de la raspi-config siguiente manera:
sudo raspi-config
Dentro raspi-config, elige Advanced Options, luego Boot Order, luego Network Boot.
Luego debe reiniciar el dispositivo para que el cambio en el orden de inicio se
programe en la EEPROM del cargador de inicio. Una vez que la Pi se haya
reiniciado, verifique que el orden de inicio sea ahora 0xf21:
vcgencmd bootloader_config
Para obtener más detalles sobre la configuración del cargador de arranque Pi 4,
consulte Configuración del cargador de arranque Pi 4 .
Dirección MAC Ethernet
Antes de configurar el arranque de red, anote el número de serie y la dirección mac
para que el servidor TFTP / DHCP pueda identificar la placa.
En Raspberry Pi 4, la dirección MAC está programada en la fabricación y no existe
un vínculo entre la dirección MAC y el número de serie. Tanto la dirección MAC como
los números de serie se muestran en la pantalla de diagnóstico HDMI del cargador
de arranque.
Para encontrar la dirección MAC de Ethernet:
ethtool -P eth0
Para encontrar el número de serie:
grep Serial /proc/cpuinfo | cut -d ' ' -f 2 | cut -c 8-16
Configuración del servidor
Conecte la tarjeta SD en el servidor Raspberry Pi y luego inicie el servidor. El cliente
Raspberry Pi necesitará un sistema de archivos raíz para arrancar: usaremos una
copia del sistema de archivos raíz del servidor y la colocaremos en /nfs/client1:
sudo mkdir -p /nfs/client1
316
MANUAL RASPBERRY
PI 4
317
MANUAL RASPBERRY
PI 4
[La red]
DHCP = no
Luego crea un archivo de red:
sudo nano /etc/systemd/network/11-eth0.network
Agregue los siguientes contenidos:
[Fósforo]
Nombre = eth0
[La red]
Dirección = 10.42.0.211 / 24
DNS = 10.42.0.1
[Ruta]
Puerta de enlace = 10.42.0.1
En este punto, no tendrá DNS en funcionamiento, por lo que deberá agregar el
servidor que anotó antes systemd/resolved.conf. En este ejemplo, la dirección de la
puerta de enlace es 10.42.0.1.
sudo nano /etc/systemd/resolved.conf
Descomente la línea DNS y agregue la dirección IP DNS allí. Además, si tiene un
servidor DNS alternativo, agréguelo allí también.
[Resolve]
318
MANUAL RASPBERRY
PI 4
DNS=10.42.0.1
#FallbackDNS=
Habilite systemd-networkd y luego reinicie para que los cambios surtan efecto:
sudo systemctl enable systemd-networkd
sudo reboot
Ahora comience tcpdumppara que pueda buscar paquetes DHCP desde el cliente
Raspberry Pi:
sudo apt install tcpdump dnsmasq
sudo systemctl enable dnsmasq
sudo tcpdump -i eth0 port bootpc
Conecte el cliente Raspberry Pi a su red y enciéndalo. Compruebe que los LED se
iluminan en el cliente después de unos 10 segundos, luego debería recibir un
paquete del cliente "DHCP / BOOTP, Solicitud de ..."
IP 0.0.0.0.bootpc> 255.255.255.255.bootps: BOOTP / DHCP, Solicitud de b8: 27:
eb ...
Ahora debe modificar la dnsmasq configuración para permitir que DHCP responda al
dispositivo. Presione CTRL + Cpara salir del tcpdump programa, luego escriba lo
siguiente:
echo | sudo tee /etc/dnsmasq.conf
sudo nano /etc/dnsmasq.conf
Luego reemplace el contenido de dnsmasq.conf con:
# Nota: comente el puerto si desea servicios DNS para sistemas en la red.
puerto = 0
dhcp-range = 10.42.0.255, proxy
log-dhcp
enable-tftp
tftp-root = / tftpboot
pxe-service = 0, "Arranque de Raspberry Pi"
Donde está la primera dirección de la dhcp-range línea, use la dirección de
transmisión que anotó anteriormente.
319
MANUAL RASPBERRY
PI 4
320
MANUAL RASPBERRY
PI 4
wget https://datasheets.raspberrypi.com/soft/prepare_pxetools.sh
321
MANUAL RASPBERRY
PI 4
bash prepare_pxetools
Cuando se le pregunte acerca de cómo guardar las iptables reglas, diga no.
El prepare_pxetools guión debe preparar todo lo que necesita para usar pxetools.
Descubrimos que necesitábamos reiniciar el nfs servidor después de usarlo pxetools
por primera vez. Haz esto con:
sudo systemctl reiniciar nfs-kernel-server
Luego, conecte su Raspberry Pi y debería arrancar.
temperatura interno, cuyo software en la GPU sondea para garantizar que las
temperaturas no superen un límite predefinido; esto es 85 ° C en todos los modelos.
Es posible establecer esto en un valor más bajo, pero no en uno más alto. A medida
que el dispositivo se acerca al límite, se reducen varias frecuencias y, a veces, los
voltajes utilizados en el chip (ARM, GPU). Esto reduce la cantidad de calor generado,
manteniendo la temperatura bajo control.
Cuando la temperatura central esté entre 80 ° C y 85 ° C, se mostrará un icono de
advertencia que muestra un termómetro rojo medio lleno y los núcleos ARM se
reducirán progresivamente. Si la temperatura alcanza los 85 ° C, se mostrará un
icono que muestra un termómetro completamente lleno, y tanto los núcleos ARM
como la GPU se reducirán. Consulte la página sobre iconos de advertencia para ver
imágenes de los iconos.
El Raspberry Pi 4 Modelo B, la tecnología de PCB se ha cambiado para proporcionar
una mejor disipación de calor y una mayor masa térmica. Además, se ha introducido
un límite de temperatura suave, con el objetivo de maximizar el tiempo durante el
cual un dispositivo puede "correr" antes de alcanzar el límite estricto a 85 ° C.
Cuando se alcanza el límite suave, la velocidad del reloj se reduce de 1,4 GHz a 1,2
GHz y el voltaje de funcionamiento se reduce ligeramente. Esto reduce la tasa de
aumento de temperatura: negociamos un período corto a 1.4GHz por un período más
largo a 1.2GHz. De forma predeterminada, el límite suave es 60 ° C, y esto se puede
cambiar a través de la temp_soft_limit configuración en config.txt .. Actualmente no
hay un límite flexible definido.
Usando DVFS
NOTA
La discusión de DVFS aplica a Frambuesa Pi Modelo B 4, Raspbery Pi 400, y
calcular el módulo 4 solamente.
Los dispositivos Raspberry Pi 4 implementan escalado dinámico de voltaje y
frecuencia (DVFS). Esta técnica permite que los dispositivos Raspberry Pi 4
funcionen a temperaturas más bajas sin dejar de ofrecer el mismo rendimiento.
Varios relojes (por ejemplo, ARM, Core, V3D, ISP, H264, HEVC) dentro del SoC son
monitoreados por el firmware, y siempre que no estén funcionando a toda velocidad,
323
MANUAL RASPBERRY
PI 4
325
MANUAL RASPBERRY
PI 4
326
MANUAL RASPBERRY
PI 4
327
MANUAL RASPBERRY
PI 4
Actualizaciones automáticas
El rpi-eeprom-update systemd servicio se ejecuta al inicio y aplica una actualización
si hay una nueva imagen disponible, migrando automáticamente la configuración
actual del cargador de arranque.
Para deshabilitar las actualizaciones automáticas:
sudo systemctl mask rpi-eeprom-update
Para volver a habilitar las actualizaciones automáticas:
sudo systemctl unmask rpi-eeprom-update
NOTA
Si se establece la configuración de EEPROM del cargador de arranque
FREEZE_VERSION , el servicio de actualización de EEPROM omitirá las
actualizaciones automáticas. Esto elimina la necesidad de deshabilitar
individualmente el servicio de actualización de EEPROM si hay varios sistemas
operativos instalados o al intercambiar tarjetas SD.
rpi-eeprom-update
El sistema operativo Raspberry Pi utiliza el rpi-eeprom-update script para
implementar un servicio de actualización automática. La secuencia de comandos
también se puede ejecutar de forma interactiva o encapsulada para crear un servicio
de actualización del cargador de arranque personalizado.
Leyendo la versión actual de EEPROM:
vcgencmd bootloader_version
Compruebe si hay una actualización disponible:
sudo rpi-eeprom-update
Instale la actualización:
sudo rpi-eeprom-update -a
sudo reiniciar
Cancelar la actualización pendiente:
sudo rpi-eeprom-update -r
Instalación de una imagen EEPROM de cargador de arranque específica:
sudo rpi-eeprom-update -d -f pieeprom.bin
328
MANUAL RASPBERRY
PI 4
329
MANUAL RASPBERRY
PI 4
330
MANUAL RASPBERRY
PI 4
331
MANUAL RASPBERRY
PI 4
cargador de
Versión del cargador de arranque: fecha de compilación
arranque
Revisión de la placa - Número de serie - Dirección MAC de
tablero
Ethernet
bota modo: (modo de arranque ROM - 6 SPI), orden: EEPROM
332
MANUAL RASPBERRY
PI 4
NOTA
Actualmente solo CM4 reserva un GPIO para nRPIBOOT.
NOTA
recovery.bin es un programa mínimo de segunda etapa que se utiliza para actualizar
la imagen EEPROM del cargador de arranque SPI.
Cargador de arranque de segunda etapa
Esta sección describe el flujo de alto nivel del cargador de arranque de la segunda
etapa.
Inicializar relojes y SDRAM
Leer el archivo de configuración de EEPROM
Verifique el PM_RSTS registro para determinar si se solicita HALT
o Compruebe POWER_OFF_ON_HALT y WAKE_ON_GPIO ajustes de
configuración EEPROM.
o Si POWER_OFF_ON_HALT es 1 y WAKE_ON_GPIO es 0 entonces
Utilice PMIC para apagar el sistema
o si no WAKE_ON_GPIO es 1
Habilite las interrupciones de borde de caída en GPIO3 para
despertar si GPIO3 se baja
o dormir
Si bien es cierto
334
MANUAL RASPBERRY
PI 4
336
MANUAL RASPBERRY
PI 4
337
MANUAL RASPBERRY
PI 4
La versión mínima del cargador de arranque compatible para los modos de arranque
personalizados es 2020-09-03.
338
MANUAL RASPBERRY
PI 4
RPIBOOT está diseñado para usarse con Compute Module 4 para cargar una
imagen de depuración personalizada (por ejemplo, un disco RAM de Linux) en lugar
del inicio normal. Esta debería ser la última opción de inicio porque actualmente no
admite tiempos de espera ni reintentos.
ORDEN DE Descripción
INICIO
MAX_RESTARTS
Si el 0xf modo de inicio RESTART ( ) se encuentra más de MAX_RESTARTS veces,
se activa un reinicio del perro guardián. Esto no se recomienda para uso general,
pero puede ser útil para sistemas de prueba o remotos donde se necesita un reinicio
completo para resolver problemas con el hardware o las interfaces de red.
Por defecto: -1 (infinito)
SD_BOOT_MAX_RETRIES
La cantidad de veces que se reintentará el arranque SD después de un error antes
de pasar al siguiente modo de arranque definido por BOOT_ORDER.
-1 significa reintentos infinitos.
Defecto: 0
NET_BOOT_MAX_RETRIES
339
MANUAL RASPBERRY
PI 4
340
MANUAL RASPBERRY
PI 4
Predeterminado: 0
TFTP_PREFIX_STR
Especifique la cadena de prefijo de directorio personalizado que se utiliza cuando
TFTP_PREFIX se establece en 1. Por ejemplo: -TFTP_PREFIX_STR=tftp_test/
Predeterminado: ""
Longitud máxima: 32 caracteres
PXE_OPTION43
Anula la cadena de coincidencia de PXE Option43 con una cadena diferente.
Normalmente es mejor aplicar personalizaciones al servidor DHCP que cambiar el
comportamiento del cliente, pero esta opción se proporciona en caso de que eso no
sea posible.
Defecto: Raspberry Pi Boot
DHCP_OPTION97
En versiones anteriores, el GUID del cliente (Option97) era solo el número de serie
repetido 4 veces. De forma predeterminada, el nuevo formato GUID es la
concatenación de fourcc para RPi4 (0x34695052 - little endian), la revisión de la
placa (por ejemplo, 0x00c03111) (4 bytes), los 4 bytes menos significativos de la
dirección mac y la serie de 4 bytes. número. Esto pretende ser único, pero también
proporcionar información estructurada al servidor DHCP, lo que permite identificar las
computadoras Raspberry Pi4 sin depender del OUID MAC de Ethernet.
341
MANUAL RASPBERRY
PI 4
342
MANUAL RASPBERRY
PI 4
Defecto: 5
ENABLE_SELF_UPDATE
Permite que el cargador de arranque se actualice a sí mismo desde un sistema de
archivos de arranque TFTP o dispositivo de almacenamiento masivo USB (MSD).
Si la actualización automática está habilitada, el cargador de arranque buscará los
archivos de actualización (.sig / .upd) en el sistema de archivos de arranque. Si la
imagen de actualización difiere de la imagen actual, se aplica la actualización y se
reinicia el sistema. De lo contrario, si las imágenes EEPROM son idénticas byte por
byte, el arranque continúa normalmente.
Notas: -
La actualización automática no está habilitada en el arranque SD; la ROM ya
puede cargar recovery.bin desde la tarjeta SD.
Antes de que se pueda utilizar la autoactualización, el gestor de arranque ya
debe haberse actualizado a una versión que admita la autoactualización. El
enfoque recomendado sería usar Raspberry Pi Imager y una tarjeta SD de
repuesto para actualizar a pieeprom-2020-09-03 y luego usar la actualización
automática para actualizaciones posteriores.
Para el arranque en red, asegúrese de que el boot directorio TFTP se pueda
montar a través de NFS y que rpi-eeprom-update pueda escribir en él.
Predeterminado: 1 (0 en versiones anteriores a 2020-09-03)
FREEZE_VERSION
Anteriormente, esta propiedad solo era verificada por el rpi-eeprom-update script. Sin
embargo, ahora que la actualización automática está habilitada, el cargador de
arranque también verificará esta propiedad. Si se establece en 1, esto se anula
ENABLE_SELF_UPDATE para detener las actualizaciones automáticas. Para
deshabilitar FREEZE_VERSION, tendrá que usar un arranque de tarjeta SD con
recovery.bin.
Los scripts de actualización de EEPROM personalizados también deben marcar este
indicador.
Defecto: 0
343
MANUAL RASPBERRY
PI 4
344
MANUAL RASPBERRY
PI 4
USB_MSD_EXCLUDE_VID_PID
Una lista de hasta 4 pares de VID / PID que especifican los dispositivos que el
cargador de arranque debe ignorar. Si coincide con un HUB, el HUB no se
enumerará, lo que provocará que se excluyan todos los dispositivos posteriores. Esto
está destinado a permitir que los dispositivos problemáticos (por ejemplo, muy lentos
para enumerar) sean ignorados durante la enumeración de arranque. Esto es
específico del cargador de arranque y no se transmite al sistema operativo.
El formato es una lista separada por comas de valores hexadecimales con el VID
como mordisco más significativo. No se permiten espacios. P.ej 034700a0,a4231234
Defecto: ""
USB_MSD_DISCOVER_TIMEOUT
Si no se encuentran dispositivos de almacenamiento masivo USB dentro de este
tiempo de espera, USB-MSD se detiene y se selecciona el siguiente modo de inicio.
Predeterminado: 20000 (20 segundos)
Versión: 2020-09-03
USB_MSD_LUN_TIMEOUT
Cuánto tiempo esperar en milisegundos antes de avanzar al siguiente LUN, por
ejemplo, un lector de TARJETA SD de múltiples ranuras. Esto aún se está
modificando, pero puede ayudar a acelerar el arranque si se conectan dispositivos
antiguos / lentos, así como un dispositivo USB-MSD rápido que contiene el sistema
operativo.
Predeterminado: 2000 (2 segundos)
USB_MSD_PWR_OFF_TIME
Durante el arranque del almacenamiento masivo USB, la alimentación de los puertos
USB se apaga durante un breve período de tiempo para garantizar el correcto
funcionamiento de los dispositivos de almacenamiento masivo USB. La mayoría de
los dispositivos funcionan correctamente con la configuración predeterminada:
cámbiela solo si tiene problemas para arrancar desde un dispositivo en particular. La
configuración USB_MSD_PWR_OFF_TIME=0 evitará que se apague la alimentación
de los puertos USB durante el arranque del almacenamiento masivo USB.
345
MANUAL RASPBERRY
PI 4
Mínimo: 250
Máximo: 5000
Predeterminado: 1000 (1 segundo)
XHCI_DEBUG
Esta propiedad es un campo de bits que controla la verbosidad de los mensajes de
depuración USB para el modo de arranque de almacenamiento masivo. Habilitar
todos estos mensajes genera una gran cantidad de datos de registro que ralentizarán
el arranque e incluso pueden provocar que el arranque falle. Para registros
detallados, es mejor usar NETCONSOLE.
Valor Tronco
346
MANUAL RASPBERRY
PI 4
347
MANUAL RASPBERRY
PI 4
348
MANUAL RASPBERRY
PI 4
349
MANUAL RASPBERRY
PI 4
351
MANUAL RASPBERRY
PI 4
NOTA
Hay varias formas en que los valores de color se pueden presentar en los pines de
salida DPI en los modos 565, 666 o 24 bits.
352
MANUAL RASPBERRY
PI 4
formato de salida:
1: DPI_OUTPUT_FORMAT_9BIT_666
353
MANUAL RASPBERRY
PI 4
2: DPI_OUTPUT_FORMAT_16BIT_565_CFG1
3: DPI_OUTPUT_FORMAT_16BIT_565_CFG2
4: DPI_OUTPUT_FORMAT_16BIT_565_CFG3
5: DPI_OUTPUT_FORMAT_18BIT_666_CFG1
6: DPI_OUTPUT_FORMAT_18BIT_666_CFG2
7: DPI_OUTPUT_FORMAT_24BIT_888
rgb_order:
1: DPI_RGB_ORDER_RGB
2: DPI_RGB_ORDER_BGR
3: DPI_RGB_ORDER_GRB
4: DPI_RGB_ORDER_BRG
output_enable_mode:
0: DPI_OUTPUT_ENABLE_MODE_DATA_VALID
1: DPI_OUTPUT_ENABLE_MODE_COMBINED_SYNCS
invert_pixel_clock:
0: los datos RGB cambian en el borde ascendente y son estables en el borde
descendente
1: Los datos RGB cambian en el borde descendente y son estables en el borde
ascendente.
354
MANUAL RASPBERRY
PI 4
HDMI_ASPECT_4_3 = 1
HDMI_ASPECT_14_9 = 2
HDMI_ASPECT_16_9 = 3
HDMI_ASPECT_5_4 = 4
HDMI_ASPECT_16_10 = 5
HDMI_ASPECT_15_9 = 6
HDMI_ASPECT_21_9 = 7
HDMI_ASPECT_64_27 = 8
Superposiciones
Se utiliza una superposición de árbol de dispositivos de Linux para cambiar los pines
GPIO al modo correcto (función alternativa 2). Como se mencionó anteriormente, la
GPU es responsable de impulsar la pantalla DPI. Por lo tanto, no existe un
controlador de Linux; la superposición simplemente establece las funciones alt GPIO
correctamente.
Se proporciona una superposición de DPI 'completa' (dpi24.dtb) que establece los 28
GPIO en modo ALT2, proporcionando los 24 bits completos de bus de color, así
356
MANUAL RASPBERRY
PI 4
enable_dpi_lcd = 1
display_default_lcd = 1
dpi_group = 2
dpi_mode = 87
dpi_output_format = 0x6f005
dpi_timings = 800 0 40 48 88480 0 13 3 32 0 0 0 60 0 32000000 6
E / S de uso general (GPIO)
Los pines de E / S de propósito general (GPIO) se pueden configurar como entrada
de propósito general, salida de propósito general o como una de hasta seis
configuraciones alternativas especiales, cuyas funciones dependen de los pines.
Hay tres bancos GPIO en BCM2835. Cada uno de los tres bancos tiene su propio pin
de entrada VDD. En Raspberry Pi, todos los bancos GPIO se alimentan desde 3.3V.
ADVERTENCIA
La conexión de un GPIO a un voltaje superior a 3.3V probablemente destruirá el
bloque GPIO dentro del SoC.
Una selección de pines del Banco 0 está disponible en el encabezado P1 en
Raspberry Pi.
Almohadillas GPIO
Las conexiones GPIO en el paquete BCM2835 a veces se denominan en la hoja de
datos de periféricos "pads", un término de diseño de semiconductores que significa
"conexión de chip al mundo exterior".
Los pads son controladores de salida / búfer de entrada CMOS configurables push-
pull. Los ajustes de control basados en registros están disponibles para:
Activar / desactivar pull-up / pull-down interno
Fuerza de transmisión de salida
Filtrado de disparador Schmitt de entrada
Estados de encendido
Todos los pines GPIO vuelven a las entradas de uso general en el reinicio de
encendido. También se aplican los estados de extracción predeterminados, que se
detallan en la tabla de funciones alternativas en la hoja de datos de periféricos ARM.
La mayoría de los GPIO tienen aplicada una extracción predeterminada.
358
MANUAL RASPBERRY
PI 4
Interrupciones
Cada pin GPIO, cuando se configura como una entrada de propósito general, se
puede configurar como una fuente de interrupción para el ARM. Se pueden
configurar varias fuentes de generación de interrupciones:
Sensible al nivel (alto / bajo)
Borde ascendente / descendente
Flanco ascendente / descendente asincrónico
Las interrupciones de nivel mantienen el estado de interrupción hasta que el software
del sistema borra el nivel (por ejemplo, dando servicio al periférico adjunto que
genera la interrupción).
La detección normal de flanco ascendente / descendente tiene una pequeña cantidad
de sincronización incorporada en la detección. A la frecuencia del reloj del sistema, el
pin se muestrea con el criterio para la generación de una interrupción siendo una
transición estable dentro de una ventana de tres ciclos, es decir, un registro de '1 0 0'
o '0 1 1'. La detección asincrónica evita esta sincronización para permitir la detección
de eventos muy estrechos.
Funciones alternativas
Casi todos los pines GPIO tienen funciones alternativas. Los bloques periféricos
internos de BCM2835 se pueden seleccionar para que aparezcan en uno o más de
un conjunto de pines GPIO, por ejemplo, los buses I2C se pueden configurar en al
menos 3 ubicaciones separadas. El control de almohadilla, como la fuerza de la
unidad o el filtrado de Schmitt, todavía se aplica cuando el pin está configurado como
una función alternativa.
Especificaciones de voltaje
La siguiente tabla proporciona las diversas especificaciones de voltaje para los pines
GPIO.
Condiciones
Símbolo Parámetro Min Típico Max Unidad
359
MANUAL RASPBERRY
PI 4
VDD IO = 2,7
- - 0,8 V
V
VDD IO = 3,3
- - 0,9 V
V
Entrada de VDD IO = 1,8
V IH 1.0 - - V
alto voltaje a V
VDD IO = 2,7
1.3 - - V
V
VDD IO = 3,3
1,6 - - V
V
Corriente de
Yo IL fuga de TA = + 85 ° C - - 5 µA
entrada
Capacitancia
C EN - - 5 - pF
de entrada
VDD IO =
Salida de baja
V OL 1.8V, LIO = - - - 0,2 V
tensión b
2mA
VDD IO = 2,7
V, LIO = -2 - - 0,15 V
mA
VDD IO = 3,3
V, LIO = -2 - - 0,14 V
mA
VDD IO =
Salida de alto
V OH 1.8V, IOH = 1,6 - - V
voltaje b
2mA
VDD IO = 2,7
V, IOH = 2 2.5 - - V
mA
VDD IO = 3,3
V, IOH = 2 3,0 - - V
mA
360
MANUAL RASPBERRY
PI 4
a Histéresis habilitada
b Intensidad del variador predeterminada (8mA)
c Intensidad máxima del variador (16mA)
Control de pads GPIO
Las intensidades de la unidad GPIO no indican una corriente máxima, sino una
corriente máxima por debajo de la cual la almohadilla seguirá cumpliendo con la
especificación. Debe configurar las potencias de la unidad GPIO para que coincidan
con el dispositivo que se está conectando para que el dispositivo funcione
correctamente.
Cómo se controla la fuerza de la unidad
Dentro de la almohadilla hay varios controladores en paralelo. Si la fuerza del
variador se establece en un valor bajo (0b000), la mayoría de estos son de tres
estados, por lo que no agregan nada a la corriente de salida. Si se aumenta la fuerza
361
MANUAL RASPBERRY
PI 4
362
MANUAL RASPBERRY
PI 4
363
MANUAL RASPBERRY
PI 4
364
MANUAL RASPBERRY
PI 4
365
MANUAL RASPBERRY
PI 4
int main(void) {
printf("bcm_host_get_peripheral_address -> 0x%08x\n",
bcm_host_get_peripheral_address());
printf("bcm_host_get_peripheral_size -> 0x%08x\n",
bcm_host_get_peripheral_size());
printf("bcm_host_get_sdram_address -> 0x%08x\n",
bcm_host_get_sdram_address());
return 0;
}
Vincular con:
-lbcm_host
Entonces, una compilación de línea de comando simple podría ser:
cc myfile.c -I/opt/vc/include -L/opt/vc/lib -lbcm_host -o myfile
Uso industrial de Raspberry Pi
La Raspberry Pi se usa a menudo como parte de otro producto. Esta documentación
describe algunas instalaciones adicionales disponibles para usar otras capacidades
del Pi.
366
MANUAL RASPBERRY
PI 4
367
MANUAL RASPBERRY
PI 4
368
MANUAL RASPBERRY
PI 4
369
MANUAL RASPBERRY
PI 4
Módulo de cálculo 4
o Bit 30: si el módulo de cómputo tiene un módulo WiFi instalado
0 - WiFi
1 - Sin WiFi
o Bit 31: Si el módulo de cálculo tiene instalado un módulo EMMC
0 - EMMC
1 - Sin EMMC (Lite)
Pi 400
o Bits 0-7: el código de país del teclado predeterminado utilizado por
piwiz
36-43 - Valores OTP del cliente
45 - Clave de decodificación MPG2
46 - Clave de decodificación WVC1 47-55
- Reservado para inicio firmado en el módulo de
cómputo 4 64/65 - Dirección MAC; si está configurado, el sistema lo usará con
preferencia a la dirección generada automáticamente según el número de serie
66 - registro de inicio avanzado (no BCM2711)
Bits 0-6: GPIO para el pin de salida ETH_CLK
Bit 7: habilita la salida ETH_CLK
Bits 8-14: GPIO para pin de salida LAN_RUN
Bit 15: habilita la salida LAN_RUN
Bit 24: extiende el parámetro de tiempo de espera del HUB USB
Bit 25: Frecuencia ETH_CLK:
o 0 - 25 MHz
o 1 - 24 MHz
También contiene bits para deshabilitar la sobretensión, la programación de OTP y la
lectura de OTP.
Fuente de alimentación
Los requisitos de la fuente de alimentación varían según el modelo de Raspberry Pi.
Todos los modelos requieren un suministro de 5.1V, pero la corriente requerida
370
MANUAL RASPBERRY
PI 4
Raspberry
700 mA 500 mA 200 mA
Pi Modelo A
Raspberry
1.2A 500 mA 500 mA
Pi Modelo B
Raspberry
Pi Modelo A 700 mA 500 mA 180 mA
+
Raspberry
Pi Modelo B 1.8A 1.2A 330mA
+
Raspberry
Pi 2 Modelo 1.8A 1.2A 350 mA
B
Raspberry
Pi 3 Modelo 2.5A 1.2A 400 mA
B
Limitado únicamente
Raspberry
por las clasificaciones
Pi 3 Modelo 2.5A 350 mA
de PSU, placa y
A+
conector.
Raspberry
Pi 3 Modelo 2.5A 1.2A 500 mA
B+
Raspberry 3.0A 1.2A 600 mA
371
MANUAL RASPBERRY
PI 4
Pi 4 Modelo
B
Limitado únicamente
Raspberry por las clasificaciones
1.2A 100 mA
Pi Zero de PSU, placa y
conector
Limitado únicamente
Raspberry
por las clasificaciones
Pi Zero W / 1.2A 150 mA
de PSU, placa y
WH
conector.
Limitado únicamente
Raspberry por las clasificaciones
2A 350 mA
Pi Zero 2 W de PSU, placa y
conector.
Tabla 0-51 Fuente de alimentación
Raspberry Pi
700 mA 500 mA 200 mA
Modelo A
Raspberry Pi
1.2A 500 mA 500 mA
Modelo B
Raspberry Pi 700 mA 500 mA 180 mA
372
MANUAL RASPBERRY
PI 4
Modelo A +
Raspberry Pi
1.8A 1.2A 330mA
Modelo B +
Raspberry Pi 2
1.8A 1.2A 350 mA
Modelo B
Raspberry Pi 3
2.5A 1.2A 400 mA
Modelo B
Limitado
únicamente por
Raspberry Pi 3
2.5A las clasificaciones 350 mA
Modelo A +
de PSU, placa y
conector.
Raspberry Pi 3
2.5A 1.2A 500 mA
Modelo B +
Raspberry Pi 4
3.0A 1.2A 600 mA
Modelo B
Frambuesa pi 400 3.0A 1.2A 800 mA
Limitado
únicamente por
Raspberry Pi Zero
1.2A las clasificaciones 150 mA
W / WH
de PSU, placa y
conector.
Limitado
únicamente por
Raspberry Pi Zero 1.2A las clasificaciones 100 mA
de PSU, placa y
conector
Tabla 0-52 Requisitos de energía
373
MANUAL RASPBERRY
PI 4
Los dispositivos de muy alta corriente, o los dispositivos que pueden generar una
sobretensión, como ciertos módems y discos duros USB, aún requerirán un
concentrador USB con alimentación externa. Los requisitos de energía de la
Raspberry Pi aumentan a medida que utiliza las diversas interfaces de la Raspberry
Pi. Los pines GPIO pueden extraer 50 mA de forma segura (tenga en cuenta que eso
significa 50 mA distribuidos en todos los pines: un pin GPIO individual solo puede
extraer 16 mA de forma segura), el puerto HDMI usa 50 mA, el módulo de la cámara
requiere 250 mA y los teclados y ratones pueden tomar tan poco ¡como 100mA o
hasta 1000mA! Verifique la potencia nominal de los dispositivos que planea conectar
a la Raspberry Pi y compre una fuente de alimentación en consecuencia.
Esta es la cantidad típica de energía (en amperios) consumida por diferentes
modelos de Raspberry Pi durante los procesos estándar:
374
MANUAL RASPBERRY
PI 4
NOTA
Para estas mediciones, usamos una imagen estándar del sistema operativo
Raspberry Pi (actual al 26 de febrero de 2016, o junio de 2019 para la Raspberry Pi
4), a temperatura ambiente, con la Raspberry Pi conectada a un monitor HDMI,
teclado USB y mouse USB. La Raspberry Pi 3 Modelo B se conectó a un punto de
acceso LAN inalámbrico, la Raspberry Pi 4 se conectó a Ethernet. Todas estas
medidas de energía son aproximadas y no tienen en cuenta el consumo de energía
de dispositivos USB adicionales; El consumo de energía puede superar fácilmente
estas medidas si se conectan varios dispositivos USB adicionales o un HAT a la
Raspberry Pi.
Advertencias sobre la fuente de alimentación
En todos los modelos de Raspberry Pi desde Raspberry Pi B + (2014), excepto el
rango Zero, hay un circuito de detección de bajo voltaje que detectará si el voltaje de
suministro cae por debajo de 4.63V (+/- 5%). Esto resultará en un icono de
advertencia que se mostrará en todas las pantallas adjuntas y se agregará una
entrada al registro del kernel.
Si está viendo advertencias, debe mejorar la fuente de alimentación y / o el cable, ya
que la baja potencia puede causar problemas con la corrupción de las tarjetas SD o
un comportamiento errático de la propia Pi; por ejemplo, accidentes inexplicables.
Los voltajes pueden caer por una variedad de razones, por ejemplo, si la fuente de
alimentación en sí es inadecuada, el cable de la fuente de alimentación está hecho
de cables demasiado delgados o si ha conectado dispositivos USB de alta demanda.
Respaldo
La especificación USB requiere que los dispositivos USB no suministren corriente a
los dispositivos ascendentes. Si un dispositivo USB suministra corriente a un
dispositivo ascendente, esto se denomina retroalimentación. A menudo, esto sucede
cuando se conecta un concentrador USB con alimentación defectuosa, y dará como
resultado que el concentrador USB alimentado suministre energía a la Raspberry Pi
host. Esto no se recomienda ya que la energía que se suministra al Pi a través del
concentrador evitará el circuito de protección integrado en el Pi, dejándolo vulnerable
a daños en caso de una sobretensión.
375
MANUAL RASPBERRY
PI 4
Nombre de PIN de
Función SPI Función Pin Broadcom
Broadcom
376
MANUAL RASPBERRY
PI 4
Nombre de PIN de
Función SPI Función Pin Broadcom
Broadcom
MOSI GPIO41 SPI2_MOSI
MISO GPIO40 SPI2_MISO
SCLK GPIO42 SPI2_SCLK
CE0 GPIO43 SPI2_CE0_N
CE1 GPIO44 SPI2_CE1_N
CE2 GPIO45 SPI2_CE2_N
Tabla 0-57 SPI2 (solo módulos de cálculo, excepto CM4)
Modos maestros
Abreviaturas de nombres de señales
SCLK - Serie CLocK
CE - Chip Enable (a menudo llamado Chip Select)
MOSI - Master Out Slave In
MISO - Master In Slave Out
MOMI - Master Out Master In
378
MANUAL RASPBERRY
PI 4
Modo estandar
En el modo estándar SPI, el periférico implementa el protocolo serie estándar de 3
hilos (SCLK, MOSI y MISO).
Modo bidireccional
En el modo SPI bidireccional se implementa el mismo estándar SPI, excepto que se
usa un solo cable para datos (MOMI) en lugar de los dos usados en el modo
estándar (MISO y MOSI). En este modo, el pin MOSI sirve como pin MOMI.
Modo LoSSI (interfaz serial de baja velocidad)
El estándar LoSSI permite la emisión de comandos a los periféricos (LCD) y la
transferencia de datos hacia y desde ellos. Los comandos y parámetros de LoSSI
tienen una longitud de 8 bits, pero se utiliza un bit adicional para indicar si el byte es
un comando o un parámetro / dato. Este bit adicional se establece alto para un dato y
bajo para un comando. El valor de 9 bits resultante se serializa en la salida. LoSSI se
usa comúnmente con controladores LCD compatibles con MIPI DBI tipo C.
NOTA
Algunos comandos activan una lectura automática por parte del controlador SPI, por
lo que este modo no se puede utilizar como SPI multipropósito de 9 bits.
Modos de transferencia
Encuestados
Interrumpir
DMA
Velocidad
El campo CDIV (Clock Divider) del registro CLK establece la velocidad del reloj SPI:
SCLK = Reloj de núcleo / CDIV
Si CDIV se establece en 0, el divisor es 65536. El divisor debe ser un múltiplo de 2,
con números impares redondeados hacia abajo. Tenga en cuenta que no se pueden
utilizar todas las velocidades de reloj posibles debido a problemas eléctricos
analógicos (tiempos de subida, potencia de la unidad, etc.).
Selección de chip
379
MANUAL RASPBERRY
PI 4
381
MANUAL RASPBERRY
PI 4
Usando spidev de C
Hay un programa de prueba de bucle invertido en la documentación de Linux que se
puede utilizar como punto de partida.
Usando spidev de Python
Hay varias bibliotecas de Python que brindan acceso spidev, incluidas spidev( pip
install spidev- consulte https://pypi.org/project/spidev/ ) y SPI-Py (
https://github.com/lthiery/SPI-Py ).
Usando spidev desde un shell como bash
# Write binary 1, 2 and 3
echo -ne "\x01\x02\x03" > /dev/spidev0.0
Otras bibliotecas de SPI
Hay otras bibliotecas de espacio de usuario que proporcionan control SPI
manipulando directamente el hardware: esto no se recomienda.
Solución de problemas
Prueba de bucle invertido
Esto se puede utilizar para probar el envío y la recepción de SPI. Coloque un cable
entre MOSI y MISO. No prueba CE0 y CE1.
wget https://raw.githubusercontent.com/raspberrypi/linux/rpi-3.10.y/Documentation/
spi/spidev_test.c
gcc -o spidev_test spidev_test.c
./spidev_test -D /dev/spidev0.0
spi mode: 0
bits per word: 8
max speed: 500000 Hz (500 KHz)
FF FF FF FF FF FF
40 00 00 00 00 95
FF FF FF FF FF FF
FF FF FF FF FF FF
FF FF FF FF FF FF
DE AD BE EF BA AD
382
MANUAL RASPBERRY
PI 4
F0 0D
Parte del contenido anterior se ha copiado de la página de elinux SPI , que también
se toma prestada de raspberry.com Ambos están cubiertos por la licencia CC-SA.
Bus serie universal (USB)
En general, todos los dispositivos compatibles con Linux se pueden utilizar con una
Raspberry Pi, aunque existen algunas limitaciones para los modelos anteriores a Pi
4.
Salida de potencia máxima
Como ocurre con todas las computadoras, los puertos USB de la Raspberry Pi
suministran una cantidad limitada de energía. A menudo, los problemas con los
dispositivos USB se deben a problemas de alimentación. Para descartar que la
energía sea la causa de un problema, conecte sus dispositivos USB a la Raspberry
Pi utilizando un concentrador con alimentación.
Salida de potencia máxima de los
Modelo
puertos USB
383
MANUAL RASPBERRY
PI 4
Existe un problema con los concentradores USB 3.0 junto con el uso de dispositivos
de velocidad completa o baja, incluida la mayoría de los ratones y teclados. Un error
en la mayoría del hardware del concentrador USB 3.0 significa que los modelos
anteriores a Pi 4 no pueden comunicarse con dispositivos de velocidad máxima o
baja conectados a un concentrador USB 3.0.
Los dispositivos USB 2.0 de alta velocidad, incluidos los concentradores USB 2.0,
funcionan correctamente cuando se conectan a través de un concentrador USB 3.0.
Evite conectar dispositivos de velocidad baja o completa en un concentrador USB
3.0. Como solución alternativa, conecte un concentrador USB 2.0 en el puerto
descendente del concentrador USB 3.0 y conecte el dispositivo de baja velocidad, o
utilice un concentrador USB 2.0 entre el Pi y el concentrador USB 3.0, luego conecte
los dispositivos de baja velocidad al concentrador USB 2.0 .
Cámaras web USB 1.1
Las cámaras web antiguas pueden ser dispositivos de alta velocidad. Debido a que
estos dispositivos transfieren una gran cantidad de datos y generan una sobrecarga
de software adicional, no se garantiza un funcionamiento confiable. Como solución
alternativa, intente utilizar la cámara con una resolución más baja.
Tarjetas de sonido USB Esoteric
Las costosas tarjetas de sonido para audiófilos suelen utilizar grandes cantidades de
ancho de banda USB: no se garantiza un funcionamiento fiable con DAC de 96 kHz /
192 kHz. Como solución alternativa, forzar la transmisión de salida a calidad de CD
(44,1 kHz / 48 kHz de 16 bits) reducirá el ancho de banda de la transmisión a niveles
confiables.
Concentradores USB TT individuales
Los concentradores USB 2.0 y 3.0 tienen un mecanismo para hablar con dispositivos
de velocidad completa o baja conectados a sus puertos de bajada llamado traductor
de transacciones (TT). Este dispositivo almacena en búfer las solicitudes de alta
velocidad del host y las transmite a velocidad máxima o baja al dispositivo de bajada.
La especificación USB permite dos configuraciones de concentrador: TT simple (un
TT para todos los puertos) y TT múltiple (un TT por puerto). Debido a una limitación
384
MANUAL RASPBERRY
PI 4
385
MANUAL RASPBERRY
PI 4
386
MANUAL RASPBERRY
PI 4
2: 1 GB
3: 2 GB
4: 4 GB
5: 8 GB
CCCC Fabricante 0: Sony Reino Unido
1: Egoman
2: Embest
3: Sony Japón
4: Embest
5: Estadio
PPPP Procesador 0: BCM2835
1: BCM2836
2: BCM2837
3: BCM2711
TTTTTTTT Escribe 0: A
1: B
2: A +
3: B +
4: 2B
387
MANUAL RASPBERRY
PI 4
6: CM1
8: 3B
9: cero
a: CM3
c: cero W
d: 3B +
e: 3A +
10: CM3 +
11: 4B
12: cero 2 W
13: 400
14: CM4
RRRR Revisión 0, 1, 2, etc.
Tabla 0-64 Códigos de revisión de nuevo estilo
Sony Reino
900021 A+ 1.1 512 MB
Unido
Sony Reino
900032 B+ 1.2 512 MB
Unido
Sony Reino
900092 Cero 1.2 512 MB
Unido
Sony Reino
900093 Cero 1.3 512 MB
Unido
388
MANUAL RASPBERRY
PI 4
Sony Reino
9000c1 Cero W 1.1 512 MB
Unido
Sony Reino
9020e0 3A + 1.0 512 MB
Unido
920092 Cero 1.2 512 MB Embest
920093 Cero 1.3 512 MB Embest
Sony Reino
900061 CM 1.1 512 MB
Unido
Sony Reino
a01040 2B 1.0 1 GB
Unido
Sony Reino
a01041 2B 1.1 1 GB
Unido
Sony Reino
a02082 3B 1.2 1 GB
Unido
Sony Reino
a020a0 CM3 1.0 1 GB
Unido
Sony Reino
a020d3 3B + 1.3 1 GB
Unido
2B (con Sony Reino
a02042 1.2 1 GB
BCM2837) Unido
a21041 2B 1.1 1 GB Embest
2B (con
a22042 1.2 1 GB Embest
BCM2837)
a22082 3B 1.2 1 GB Embest
a220a0 CM3 1.0 1 GB Embest
a32082 3B 1.2 1 GB Sony Japón
a52082 3B 1.2 1 GB Estadio
a22083 3B 1.3 1 GB Embest
Sony Reino
a02100 CM3 + 1.0 1 GB
Unido
Sony Reino
a03111 4B 1.1 1 GB
Unido
b03111 4B 1.1 2GB Sony Reino
389
MANUAL RASPBERRY
PI 4
Unido
Sony Reino
b03112 4B 1.2 2GB
Unido
Sony Reino
b03114 4B 1.4 2GB
Unido
Sony Reino
c03111 4B 1.1 4 GB
Unido
Sony Reino
c03112 4B 1.2 4 GB
Unido
Sony Reino
c03114 4B 1.4 4 GB
Unido
Sony Reino
d03114 4B 1.4 8GB
Unido
Sony Reino
c03130 Pi 400 1.0 4 GB
Unido
Sony Reino
a03140 CM4 1.0 1 GB
Unido
Sony Reino
b03140 CM4 1.0 2GB
Unido
Sony Reino
c03140 CM4 1.0 4 GB
Unido
Sony Reino
d03140 CM4 1.0 8GB
Unido
Sony Reino
902120 Cero 2 W 1.0 512 MB
Unido
Tabla 0-65 Códigos de revisión de nuevo estilo en uso
390
MANUAL RASPBERRY
PI 4
391
MANUAL RASPBERRY
PI 4
393
MANUAL RASPBERRY
PI 4
Ahora necesita escribir una imagen del sistema operativo sin procesar (como el
sistema operativo Raspberry Pi ) en el dispositivo. Tenga en cuenta que el siguiente
comando puede tardar algún tiempo en completarse, según el tamaño de la imagen:
(Cambie /dev/sdX al dispositivo apropiado).
sudo dd if=raw_os_image_of_your_choice.img of=/dev/sdX bs=4MiB
Una vez que se haya escrito la imagen, desconecte y vuelva a conectar el USB;
debería ver aparecer dos particiones (para Raspberry Pi OS) en /dev. En total,
debería ver algo similar a esto:
/dev/sdX <- Device
/dev/sdX1 <- First partition (FAT)
/dev/sdX2 <- Second partition (Linux filesystem)
Las particiones /dev/sdX1 y /dev/sdX2 ahora se pueden montar normalmente.
Asegúrese de que J4 (USB SLAVE BOOT ENABLE) / J2 (nRPI_BOOT) esté
configurado en la posición deshabilitada y / o que no haya nada conectado al puerto
USB esclavo. Apagar y encender la placa de E / S ahora debería dar como resultado
que el módulo de cómputo se inicie desde eMMC.
Cargador de arranque del módulo de cálculo 4
La configuración predeterminada del cargador de arranque en CM4 está diseñada
para admitir la activación y el desarrollo en una placa de E / S de Compute Module 4
y la versión de software que se muestra en la fabricación puede ser anterior a la
última versión. Para productos finales, considere: -
Seleccionar y verificar una versión específica del cargador de arranque. La
versión del usbboot repositorio es siempre una versión estable reciente.
Configuración del dispositivo de arranque (por ejemplo, arranque de red).
Consulte la BOOT_ORDER sección en la guía de configuración del cargador
de arranque.
Habilitar la protección contra escritura de hardware en la EEPROM del
cargador de arranque para garantizar que el cargador de arranque no se
pueda modificar en productos remotos o inaccesibles.
394
MANUAL RASPBERRY
PI 4
395
MANUAL RASPBERRY
PI 4
Para usar el Módulo de Computación, un usuario necesita diseñar una 'placa base'
(relativamente simple) que pueda proporcionar energía al Módulo de Computación
(3.3V y 1.8V como mínimo), y que conecte los pines a los periféricos requeridos para
la aplicación del usuario.
Raspberry Pi proporciona una placa base mínima para el módulo de cómputo
(llamado placa de E / S del módulo de cómputo o placa CMIO) que alimenta el
módulo, saca el GPIO a los encabezados de clavija y lleva la cámara y las interfaces
de pantalla a los conectores FFC. También proporciona HDMI, USB y un LED 'ACT',
así como la capacidad de programar el eMMC de un módulo a través de USB desde
una PC o Raspberry Pi.
Esta guía primero explica el proceso de arranque y cómo se usa el árbol de
dispositivos para describir el hardware adjunto; estos son aspectos esenciales que
debe comprender al diseñar con el Módulo de cálculo. A continuación, proporciona
un ejemplo práctico de cómo conectar un periférico I2C y SPI a una placa CMIO (o
CMIO V3 para CM3) y crear los archivos del árbol de dispositivos necesarios para
que ambos periféricos funcionen en Linux, a partir de una imagen básica del sistema
operativo Raspberry Pi.
GPIO BCM283x
BCM283x tiene tres bancos de pines de entrada / salida de uso general (GPIO): 28
pines en el banco 0, 18 pines en el banco 1 y 8 pines en el banco 2, lo que hace un
total de 54 pines. Estos pines se pueden usar como pines GPIO verdaderos, es
decir, el software puede configurarlos como entradas o salidas, leer y / o configurar el
estado y usarlos como interrupciones. También se pueden configurar para 'funciones
alternativas' como I2C, SPI, I2S, UART, tarjeta SD y otras.
En un módulo de cómputo, tanto el banco 0 como el banco 1 son de uso gratuito. El
banco 2 se utiliza para la detección de conexión en caliente eMMC y HDMI y el
control de arranque ACT LED / USB.
Es útil en un sistema en ejecución observar el estado de cada uno de los pines GPIO
(en qué función están configurados y el nivel de voltaje en el pin) para que pueda ver
si el sistema está configurado como se esperaba. Esto es particularmente útil si
397
MANUAL RASPBERRY
PI 4
desea ver si un árbol de dispositivos está funcionando como se espera, o para ver
los estados de los pines durante la depuración de hardware.
Raspberry Pi proporciona el raspi-gpio paquete que es una herramienta para piratear
y depurar GPIO
NOTA
Necesita ejecutar raspi-gpio como root.
Para instalar raspi-gpio:
sudo apt instalar raspi-gpio
Si aptno puede encontrar el raspi-gpiopaquete, primero deberá realizar una
actualización:
actualización de sudo apt
Para obtener ayuda raspi-gpio, ejecútelo con el helpargumento:
ayuda de sudo raspi-gpio
Por ejemplo, para ver la función actual y el nivel de todos los pines GPIO, use:
sudo raspi-gpio get
NOTA
raspi-gpio se puede usar con el funcs argumento para obtener una lista de todas las
funciones GPIO compatibles por pin. Imprimirá una tabla en formato CSV. La idea es
canalizar la tabla a un .csv archivo y luego cargar este archivo usando, por ejemplo,
Excel:
sudo raspi-gpio funcs> gpio-funcs.csv
Proceso de arranque BCM283x
Los dispositivos BCM283x constan de una GPU VideoCore y núcleos de CPU ARM.
De hecho, la GPU es un sistema que consta de un procesador DSP y aceleradores
de hardware para imágenes, codificación y decodificación de video, gráficos 3D y
composición de imágenes.
En los dispositivos BCM283x, es el núcleo DSP de la GPU el que arranca primero.
Es responsable de la configuración general y el mantenimiento antes de arrancar los
procesadores ARM principales.
Los dispositivos BCM283x que se utilizan en las placas Raspberry Pi y Compute
Module tienen un proceso de arranque de tres etapas:
398
MANUAL RASPBERRY
PI 4
1. El GPU DSP sale del reinicio y ejecuta el código desde una pequeña ROM
interna (la ROM de arranque). El único propósito de este código es cargar un
cargador de arranque de segunda etapa a través de una de las interfaces
externas. En un módulo de cómputo o Raspberry Pi, este código busca
primero un cargador de arranque de segunda etapa en la tarjeta SD (eMMC);
espera que se llame bootcode.bin y esté en la primera partición (que debe ser
FAT32). Si no se encuentra ninguna tarjeta SD o bootcode.bin no se
encuentra, la ROM de arranque se coloca y espera en el modo 'arranque
USB', esperando que un host le dé un cargador de arranque de segunda
etapa a través de la interfaz USB.
2. El cargador de arranque de la segunda etapa ( bootcode.bin en la tarjeta sd o
usbbootcode.bin para el arranque USB) es responsable de configurar la
interfaz LPDDR2 SDRAM y varias otras funciones críticas del sistema y luego
cargar y ejecutar el firmware de la GPU principal (llamado start.elf,
nuevamente en la partición primaria de la tarjeta SD).
3. start.elf asume el control y es responsable de la configuración adicional del
sistema y el arranque del subsistema del procesador ARM, y contiene el
firmware que se ejecuta en las diversas partes de la GPU. Primero lee dt-
blob.bin para determinar los estados iniciales de los pines GPIO y las
interfaces y relojes específicos de la GPU, luego analiza config.txt. A
continuación, carga un archivo de árbol de dispositivos ARM (por ejemplo,
bcm2708-rpi-cm.dtb para un módulo de cómputo) y cualquier superposición de
árbol de dispositivos especificada config.txt antes de iniciar el subsistema
ARM y pasar los datos del árbol de dispositivos al kernel de Linux de
arranque.
Árbol de dispositivos
El árbol de dispositivos es una forma especial de codificar toda la información sobre
el hardware adjunto a un sistema (y, en consecuencia, los controladores necesarios).
En un módulo Pi o Compute, hay varios archivos en la primera partición FAT de la
SD / eMMC que son archivos binarios del 'árbol de dispositivos'. Estos archivos
binarios (generalmente con extensión .dtb) se compilan a partir de descripciones de
399
MANUAL RASPBERRY
PI 4
texto legibles por humanos (generalmente archivos con extensión .dts) por el
compilador Device Tree.
En una imagen estándar del sistema operativo Raspberry Pi en la primera partición
(FAT), encontrará dos tipos diferentes de archivos de árbol de dispositivos, uno solo
lo usa la GPU y el resto son archivos de árbol de dispositivos ARM estándar para
cada uno de los productos Pi basados en BCM283x:
dt-blob.bin (usado por la GPU)
bcm2708-rpi-b.dtb (Usado para Pi modelo A y B)
bcm2708-rpi-b-plus.dtb (Usado para el modelo Pi B + y A +)
bcm2709-rpi-2-b.dtb (Usado para Pi 2 modelo B)
bcm2710-rpi-3-b.dtb (Usado para Pi 3 modelo B)
bcm2708-rpi-cm.dtb (Usado para el módulo de cómputo Pi)
bcm2710-rpi-cm3.dtb (Usado para Pi Compute Module 3)
dt-blob.bin de forma predeterminada no existe ya que hay una versión
'predeterminada' compilada start.elf, pero para los proyectos de Compute Module a
menudo será necesario proporcionar un dt-blob.bin (que anula el archivo integrado
predeterminado).
dt-blob.bin está en formato de árbol de dispositivos compilado, pero solo el firmware
de la GPU lo lee para configurar funciones exclusivas de la GPU.
Durante el arranque, el usuario puede especificar un árbol de dispositivos ARM
específico para utilizarlo a través del device_tree parámetro en config.txt, por
ejemplo, la adición de la línea device_tree=mydt.dtb a config.txt donde mydt.dtb está
el archivo de DTB a cargar en lugar de uno de los archivos ARM DTB estándar. Si
bien un usuario puede crear un árbol de dispositivos completo para su producto
Compute Module, la forma recomendada de agregar hardware es usar
superposiciones (consulte la siguiente sección).
Además de cargar un dtb ARM, start.elf admite la carga de 'superposiciones'
adicionales del árbol de dispositivos a través del dtoverlay parámetro en config.txt,
por ejemplo, agregando tantas dtoverlay=myoverlay líneas como se requiera como
superposiciones config.txt, teniendo en cuenta que las superposiciones viven
400
MANUAL RASPBERRY
PI 4
403
MANUAL RASPBERRY
PI 4
Puede utilizar dtcpara escribir esto como un archivo dts legible por humanos para la
depuración. Puede ver el árbol de dispositivos completamente ensamblado, que a
menudo es muy útil:
dtc -I fs -O dts -o proc-dt.dts / proc / device-tree
Como se explicó anteriormente en la sección GPIO, también es muy útil usarlo raspi-
gpiopara ver la configuración de los pines GPIO para verificar que sean los
esperados:
raspi-gpio obtener
Si algo parece ir mal, también se puede encontrar información útil volcando los
mensajes de registro de la GPU:
sudo vcdbg log msg
Puede incluir más diagnósticos en la salida agregando dtdebug=1a config.txt.
Conexión de un módulo de cámara Raspberry Pi
El módulo de cómputo tiene dos interfaces de cámara CSI-2. CAM0 tiene dos líneas
de datos CSI-2, mientras que CAM1 tiene cuatro líneas de datos. La placa de E / S
del módulo de cálculo expone ambas interfaces. Tenga en cuenta que los
dispositivos Raspberry Pi estándar usan CAM1, pero solo exponen dos carriles.
Los módulos de la cámara no están diseñados para conectarse en caliente. Siempre
deben estar conectados o desconectados con la energía apagada.
Actualización de su sistema
El software de la cámara está en constante desarrollo, el sistema debe estar
actualizado antes de usar estas instrucciones.
actualización de sudo apt
actualización completa de sudo apt
Chip criptográfico
Cuando utilice el módulo de cómputo para controlar cámaras, NO es necesario
incorporar el chip de cifrado utilizado en las placas de cámara diseñadas por
Raspberry Pi al conectar los módulos de cámara OM5647, IMX219 o HQ
directamente a la placa portadora del módulo de cómputo. El firmware Raspberry Pi
detectará automáticamente el CM y permitirá que las comunicaciones con el módulo
de la cámara continúen sin que el chip criptográfico esté presente.
404
MANUAL RASPBERRY
PI 4
4. (Solo CM1 y CM3) Conecte los pines GPIO como se muestra a continuación.
405
MANUAL RASPBERRY
PI 4
406
MANUAL RASPBERRY
PI 4
407
MANUAL RASPBERRY
PI 4
MMAL_PARAMETER_INT32_T camera_num =
{{MMAL_PARAMETER_CAMERA_NUM, sizeof (camera_num)},
CAMERA_NUMBER};
status = mmal_port_parameter_set (cámara-> control, & camera_num.hdr);
Problemas avanzados
La placa de E / S del módulo de cómputo tiene un FFC de 22 vías de 0,5 mm para
cada puerto de cámara, siendo CAM0 una interfaz de dos carriles y CAM1 la interfaz
completa de cuatro carriles. La Raspberry Pi estándar utiliza un cable FFC de 1 mm
de 15 vías, por lo que necesitará un adaptador (pieza n.o RPI-CAMERA) o un cable
de cámara Pi Zero.
La placa CMIO para los módulos de cómputo 1 y 3 difiere ligeramente en el enfoque
de la del módulo de cómputo 4. Se considerarán por separado.
Módulo de cálculo 1 y 3
En la placa de E / S del módulo de cómputo, es necesario unir las interfaces GPIO e
I2C requeridas por el sistema operativo Raspberry Pi al conector CAM1. Esto se
hace conectando los GPIO desde el conector J6 GPIO a los pines CD1_SDA / SCL y
CAM1_IO0 / 1 en el conector J5 usando cables de puente.
Los números de pin a continuación se proporcionan solo como ejemplo. Los pines
LED y SHUTDOWN pueden ser compartidos por ambas cámaras, si es necesario.
Los pines SDA y SCL deben ser GPIO 0 y 1, GPIO 28 y 29 o GPIO 44 y 45, y deben
ser individuales para cada cámara.
Pasos para conectar una cámara Raspberry Pi (a CAM1)
1. Conecte el flexi FFC de 22 W de 0,5 mm (incluido con la placa RPI-CAMERA)
al conector CAM1 (los contactos flexibles hacia abajo). Como alternativa, se
puede utilizar el cable de la cámara Pi Zero.
2. Conecte la placa adaptadora RPI-CAMERA al otro extremo del flex de 0,5 mm
(los contactos del flex hacia abajo).
3. Conecte una cámara Raspberry Pi a la otra FFC de 15 W 1 mm más grande
en la placa adaptadora RPI-CAMERA (los contactos en el flex de la cámara
Raspberry Pi deben mirar hacia arriba ).
4. Conecte CD1_SDA (pin 37 de J6) a GPIO0 (pin 1 de J5).
408
MANUAL RASPBERRY
PI 4
409
MANUAL RASPBERRY
PI 4
410
MANUAL RASPBERRY
PI 4
Una vez que se han realizado todos los cambios necesarios en el dts archivo, es
necesario compilarlo y colocarlo en la partición de arranque del dispositivo
configurando los pines.
Colocación de la pantalla oficial de 7 pulgadas
El software de su sistema esté actualizado antes de comenzar. En términos
generales, el enfoque adoptado para los módulos de cómputo 1, 3 y 4 es el mismo,
pero existen pequeñas diferencias en la configuración física requerida.
El cable de la cámara Raspberry Pi Zero no se puede utilizar como alternativa al
adaptador RPI-DISPLAY, porque su cableado es diferente y lapantalla no está
diseñada para conectarse en caliente. Este (y los módulos de la cámara) siempre
deben estar conectados o desconectados con la alimentación apagada.
Guía de inicio rápido (pantalla)
Conexión a DISP1
411
MANUAL RASPBERRY
PI 4
Ilustración 0-60 Conexión GPIO para una sola pantalla y módulos de cámara
412
MANUAL RASPBERRY
PI 4
DISPLAY_I2C_PORT
DISPLAY_SDA
DISPLAY_SCL
DISPLAY_DSI_PORT
Los números de pin del puerto I2C, SDA y SCL se explican por sí mismos.
DISPLAY_DSI_PORT selecciona entre DSI1 (el predeterminado) y DSI0.
Una vez que se han realizado todos los cambios necesarios en el dts archivo, es
necesario compilarlo y colocarlo en la partición de arranque del dispositivo.
Las instrucciones para hacer esto se pueden encontrar en la página de configuración
de pines.
Fuentes
dt-blob-disp1-only.dts
dt-blob-disp1-cam1.dts
dt-blob-disp1-cam2.dts
dt-blob-disp0-only.dts (usa cableado como para CAM0)
3.12 Procesadores.
BCM2835
El BCM2835 es el chip Broadcom utilizado en Raspberry Pi Model A, B, B +,
Compute Module y Raspberry Pi Zero.
BCM2836
El chip Broadcom utilizado en Raspberry Pi 2 Model B. La arquitectura subyacente
en BCM2836 es idéntica a BCM2835. La única diferencia significativa es la
eliminación del procesador ARM1176JZF-S y el reemplazo por un clúster Cortex-A7
de cuatro núcleos.
BCM2837
Este es el chip Broadcom utilizado en la Raspberry Pi 3 y en los modelos posteriores
de la Raspberry Pi 2. La arquitectura subyacente del BCM2837 es idéntica a la del
BCM2836. La única diferencia significativa es el reemplazo del clúster de cuatro
núcleos ARMv7 por un clúster ARM Cortex A53 (ARMv8) de cuatro núcleos.
Los núcleos ARM funcionan a 1,2 GHz, lo que hace que el dispositivo sea un 50%
más rápido que la Raspberry Pi 2. El VideoCore IV funciona a 400 MHz.
414
MANUAL RASPBERRY
PI 4
BCM2837B0
Este es el chip Broadcom utilizado en Raspberry Pi 3B + y 3A +. La arquitectura
subyacente del BCM2837B0 es idéntica al chip BCM2837 utilizado en otras
versiones del Pi. El hardware del núcleo ARM es el mismo, solo que la frecuencia
tiene una clasificación más alta.
Los núcleos ARM son capaces de funcionar a hasta 1,4 GHz, lo que hace que el 3B
+ / 3A + sea aproximadamente un 17% más rápido que el Raspberry Pi 3. El
VideoCore IV funciona a 400 MHz. El núcleo ARM es de 64 bits, mientras que el
VideoCore IV es de 32 bits.
El chip BCM2837B0 está empaquetado de manera ligeramente diferente al
BCM2837, y lo más notable es que incluye un esparcidor de calor para mejores
térmicas. Esto permite frecuencias de reloj más altas y un monitoreo y control más
preciso de la temperatura del chip.
BCM2711
Este es el chip Broadcom utilizado en el modelo B de Raspberry Pi 4. La arquitectura
del BCM2711 es una mejora considerable con respecto a la utilizada por los SoC en
los modelos anteriores de Raspberry Pi. Continúa con el diseño de CPU de cuatro
núcleos del BCM2837, pero utiliza el núcleo ARM A72 más potente. Tiene un
conjunto de funciones de GPU muy mejorado con una entrada / salida mucho más
rápida, debido a la incorporación de un enlace PCIe que conecta los puertos USB 2 y
USB 3, y un controlador Ethernet conectado de forma nativa. También es capaz de
direccionar más memoria que los SoC utilizados antes.
Los núcleos ARM son capaces de funcionar a hasta 1,5 GHz, lo que hace que el Pi 4
sea un 50% más rápido que el Raspberry Pi 3B +. La nueva unidad VideoCore VI 3D
ahora funciona a hasta 500 MHz. Los núcleos ARM son de 64 bits y, aunque
VideoCore es de 32 bits, hay una nueva Unidad de administración de memoria, lo
que significa que puede acceder a más memoria que las versiones anteriores.
El chip BCM2711 continúa utilizando la tecnología de dispersión de calor iniciada con
BCM2837B0, que proporciona una mejor gestión térmica.
Procesador: SoC de 64 bits Cortex-A72 (ARM v8) de cuatro núcleos a 1,5 GHz.
Memoria: accede a hasta 8GB LPDDR4-2400 SDRAM (según el modelo)
415
MANUAL RASPBERRY
PI 4
El RP3A0 es una CPU Arm Cortex A53 de cuatro núcleos y 64 bits con una
frecuencia de reloj de 1 GHz, aunque con un disipador de calor u otra solución de
enfriamiento en su lugar, el chip puede potencialmente overclockearse a 1.2 GHz.
416
MANUAL RASPBERRY
PI 4
CAPÍTULO IV PROYECTOS
417
MANUAL RASPBERRY
PI 4
Se describen con redacción clara y concisa las actividades del proyecto. Esto se
realizará mediante una estructuración de capítulos.
418
MANUAL RASPBERRY
PI 4
CAPÍTULO V PROGRAMACIÓN
419
MANUAL RASPBERRY
PI 4
Se describen con redacción clara y concisa las actividades del proyecto. Esto se
realizará mediante una estructuración de capítulos.
420
MANUAL RASPBERRY
PI 4
CAPÍTULO VI PRUEBAS
421
MANUAL RASPBERRY
PI 4
Se describen con redacción clara y concisa las actividades del proyecto. Esto se
realizará mediante una estructuración de capítulos.
422
MANUAL RASPBERRY
PI 4
423
MANUAL RASPBERRY
PI 4
Se describen con redacción clara y concisa las actividades del proyecto. Esto se
realizará mediante una estructuración de capítulos.
424
MANUAL RASPBERRY
PI 4
425
MANUAL RASPBERRY
PI 4
Se describen con redacción clara y concisa las actividades del proyecto. Esto se
realizará mediante una estructuración de capítulos.
426
MANUAL RASPBERRY
PI 4
427
MANUAL RASPBERRY
PI 4
Se describen con redacción clara y concisa las actividades del proyecto. Esto se
realizará mediante una estructuración de capítulos.
428
MANUAL RASPBERRY
PI 4
10.1. RECOMENDACIONES
Los resultados se presentan por medio de texto, tablas y figuras. Texto es la forma
más rápida y efectiva de exponer pocos datos. Las tablas son preferibles para
presentar datos precisos o repetitivos. Las figuras son ideales cuando los datos
exhiben tendencias o patrones interesantes. Evita presentar los datos de más de una
forma. Usa el sistema internacional (métrico) para los pesos y medidas. Esta sección
también se redacta en tiempo pasado (se contó, se observó, etc.).
429
MANUAL RASPBERRY
PI 4
• Colocar las tablas en el orden en que van a ser analizadas (que no es siempre el
mismo orden en que se realizaron).
• Analizar con que herramienta (texto, tabla o figura) es la óptima para presentar los
resultados.
• Describir los resultados más significativos de cada uno de los cuadros, haciendo
referencia a ellos de dos formas:
“Como se observa en la Tabla 3.1…….”
Descripción de los resultados y al finalizar el párrafo colocar” (Ver Tabla 5.2)”,
también se puede señalar “(Ver figura 3)”.
• Después de describir la información, proceder a realizar los comentarios sobre
elementos claves, argumentos e interpretación de dichos resultados, en
correspondencia con las bases teóricas establecidas, los criterios del autor y los de
otros autores.
10.2 IMPLANTACIÓN
Resultado final del proyecto de estadía profesional.
Interfaces
Diagramas
Gráficas
Tablas
Fotografías
430
MANUAL RASPBERRY
PI 4
Planos
10.4 CONCLUSIONES
La sección debe ser corta y no debe dar detalles de los resultados, duplicar
excesivamente el contenido del resumen, o hacer referencia a artículos, tablas y
figuras.
Extensión mínima una cuartilla y máximo dos.
431
MANUAL RASPBERRY
PI 4
GLOSARIO
Deben de ir todos los términos técnicos y conceptos de importancia, cada uno con su
respectiva definición y en orden alfabético.
Ejemplo:
Desgastes.- Es la erosión de material sufrida por una superficie sólida por acción de
otra superficie. Está relacionado con las interacciones entre superficies y más
específicamente con la eliminación de material de una superficie como resultado de
una acción mecánica. La necesidad de una acción mecánica, en forma de contacto
debido a un movimiento relativo, es una distinción importante entre desgaste
mecánico y cualquier otro proceso con similares resultados.
433
MANUAL RASPBERRY
PI 4
REFERENCIAS
(BIBLIOGRAFÍA)
1. Referencia de un libro:
434
MANUAL RASPBERRY
PI 4
435
MANUAL RASPBERRY
PI 4
(2a. ed.) (Informe No. 90–B–003.1). Ann Arbor, MI, EE.UU.: University of Michigan,
National Center for Research to Improve Postsecondary Teaching and Learning.
(Autor del artículo. Título del artículo: subtitulo del artículo. En: nombre del periódico,
lugar de publicación (día, mes, año); páginas de la sección consultada.)
436
MANUAL RASPBERRY
PI 4
https://www.ecured.cu/Visual_Studio_Code
https://www.pccomponentes.com/caracteristicas-raspberry-pi-4?
__cf_chl_jschl_tk__=pmd_Eo3x1EQteFLwuTSaPhw0U1.yE2PuQcYG
K7yOpgVfLz4-1633524519-0-gqNtZGzNAjujcnBszQwR
https://www.profesionalreview.com/2021/07/18/que-es-raspberry-pi/
https://aurestic.es/que-es-flutter/
https://es.wikipedia.org/wiki/Flutter_(software)
https://www.qualitydevs.com/2019/07/05/que-es-flutter/
437
MANUAL RASPBERRY
PI 4
ANEXOS
438