GNU/Linux >> Tutoriales Linux >  >> Linux

Comenzando con PiFlash:Arrancando su Raspberry Pi en Linux

La mayoría de las personas instalan algún tipo de Linux cuando configuran una computadora Raspberry Pi. Hasta hace poco, las herramientas de instalación para crear una tarjeta SD de arranque solo estaban disponibles para escritorios de Windows y MacOS. Si estaba ejecutando Linux en su escritorio, obtuvo una página de instrucciones sobre cómo hacerlo manualmente desde la línea de comandos.

Eso funciona. Pero si experimenta con varias placas Raspberry Pi, con el tiempo esto se vuelve tedioso. Como ingeniero y programador, comencé a pensar en automatizarlo para hacerlo más fácil y, de la forma habitual en que se inician los proyectos de código abierto, obtuve PiFlash.

Escribí PiFlash solo para mí en 2016. Para febrero de 2017, había evolucionado lo suficiente como para presentarlo en una presentación en SVPerl (Silicon Valley Perl) sobre el uso de Perl en Raspberry Pi, luego me invitaron a escribir dos artículos para Opensource. com:Introducción a Perl en Raspberry Pi y Cómo proteger su Raspberry Pi.

Características de PiFlash

PiFlash tiene características que atraen a principiantes y expertos.

Como la mayoría de las otras herramientas de software de código abierto, no necesita ver el idioma en el que está escrito, si no le gusta eso. Pero el código fuente está disponible para usuarios avanzados y participantes.

Para usuarios expertos, PiFlash simplifica el proceso de escritura de una tarjeta SD. Cuando descarga un archivo de "imagen" del sistema operativo de arranque, generalmente está en un archivo ZIP o comprimido. Todas las distribuciones los empaquetan un poco diferente. Con PiFlash, no tiene que descomprimir ni descomprimir la imagen. Simplemente especifique el archivo descargado como entrada y PiFlash hará la parte tediosa de extraerlo.

Para los principiantes, hay una función de seguridad importante:PiFlash escribirá solo a una tarjeta SD y negarse a escribir en cualquier otro tipo de dispositivo. Como tiene que usar permisos de root para escribir la tarjeta, el sistema hará todo lo que le diga. Por lo tanto, es posible borrar accidentalmente el dispositivo incorrecto, tal vez un disco duro que desea conservar, al intentar flashear una tarjeta SD manualmente para una nueva Raspberry Pi.

Aquí es donde PiFlash te protege del peligro. Internamente, encuentra atributos de dispositivos con lsblk comando desde util-linux paquete, que forma parte de todas las distribuciones de Linux. Puede reconocer tarjetas SD utilizando varios controladores. Se negará a escribir en un dispositivo de bloqueo si no es una tarjeta SD.

Afortunadamente, la herramienta Etcher GUI que usa Raspberry Pi Foundation en sus instrucciones para usuarios de Windows y MacOS se ha ampliado a Linux, por lo que ahora hay una opción de GUI en Linux para aquellos que prefieran una. Pero si desea automatizar el proceso, o si desea niveles de personalización de usuario avanzado, solo una herramienta de línea de comandos hará el trabajo.

La última versión de PiFlash agrega módulos de complemento que pueden modificar el sistema de archivos de la tarjeta SD después de instalar la imagen del sistema operativo, para que pueda comenzar a explorar nuevas opciones de automatización.

Instalando PiFlash

PiFlash está disponible en CPAN, la red integral de archivos de Perl, pero antes de continuar, asegúrese de tener instalados todos los paquetes de dependencia. Para instalar las dependencias:

En sistemas Linux basados ​​en RPM (Red Hat Enterprise, Fedora, CentOS, etc.):

sudo dnf install coreutils util-linux perl file-libs perl-File-LibMagic perl-IO perl-Exception-Class perl-Try-Tiny perl-Module-Pluggable perl-File-Path perl-YAML-LibYAML gzip unzip xz e2fsprogs dosfstools

En sistemas Linux basados ​​en Debian (Debian, Ubuntu, Raspbian, etc.):

sudo apt-get install coreutils util-linux klibc-utils perl-base libmagic1 libfile-libmagic-perl libio-all-perl libexception-class-perl libtry-tiny-perl libmodule-pluggable-perl libyaml-libyaml-perl gzip xz-utils e2fsprogs dosfstools

Para distribuciones basadas en código fuente u otros sistemas de empaquetado, consulte la documentación de CPAN para obtener la lista de dependencias.

Luego, instale PiFlash usando la herramienta CPAN:

cpan PiFlash

Tengo la compilación basada en Dist::Zilla configurada para hacer paquetes DEB y RPM, pero aún no está en ninguno de los principales archivos de paquetes. Eso es posible en el futuro.

Ejecutando PiFlash

Si solo ejecuta el piflash comando sin ningún argumento, imprimirá la información de uso.

usage: piflash [--verbose] [--resize] [--config conf-file] input-file output-device
       piflash [--verbose] [--config conf-file] --SDsearch
       piflash --version

Escanee el sistema en busca de tarjetas SD para obtener el nombre exacto del dispositivo, que necesitará para el parámetro de dispositivo de salida Pi-Flash a continuación.

piflash --sdsearch

Si no se encuentran tarjetas SD, dice que no puede encontrar nada.

no SD cards found on system

Más sobre Raspberry Pi

  • ¿Qué es Raspberry Pi?
  • eBook:Guía de Raspberry Pi
  • Introducción a la hoja de trucos de Raspberry Pi
  • Libro electrónico:Ejecución de Kubernetes en su Raspberry Pi
  • Informe:Aplicaciones inteligentes con uso intensivo de datos en un modelo de nube híbrida
  • Comprender la informática perimetral
  • Lo último sobre Raspberry Pi

Por cierto, si tiene un escritor de tarjetas SD que PiFlash no conoce, hágamelo saber mediante la presentación de un informe en GitHub. Para informes de problemas y resolución de problemas, recopile la información interna del programa utilizando --verbose para que pueda ver qué controlador tiene su sistema que PiFlash no reconoció.

El nombre exacto de su dispositivo puede variar según los controladores y los nombres utilizados por otros dispositivos en su sistema. Si tiene un lector/escritor SD basado en USB, puede decir algo como esto:

SD cards found: /dev/sdb

O si tiene una ranura para tarjeta SD integrada, puede usar un controlador diferente y tener un nombre que indique que es una tarjeta SD que usa el controlador MMC (MultiMediaCard):

SD cards found: /dev/mmcblk0

A continuación, descargue una imagen del sistema para instalar. La Fundación Raspberry Pi tiene una lista antigua de posibilidades que ya no se actualiza. Dado que Raspbian es la distribución oficial de Linux para Raspberry Pi, el soporte del controlador va allí primero. Pero otros funcionan:Ubuntu está en la lista, pero Fedora no porque la compatibilidad con ARM y Raspberry Pi llegó después de que se hizo la lista, sin embargo, puede descargarla.

El comando para flashear la tarjeta SD es piflash  . Estos son algunos ejemplos de comandos para flashearlo, según el sistema que descargó y qué dispositivo de bloque tiene su tarjeta SD:

piflash 2018-11-13-raspbian-stretch-full.zip /dev/mmcblk0
piflash Fedora-LXDE-armhfp-29-1.2-sda.raw.xz /dev/sdb

PiFlash ahora tiene un --redimensionar opción, que cambiará el tamaño de la partición raíz en la tarjeta SD para llenar el resto del dispositivo. Solo funciona si la raíz es un sistema de archivos Linux ext2/3/4. La mayoría de las distribuciones lo ofrecen como una opción que puede hacer manualmente después de la instalación, pero esto lo automatiza en un solo paso.

Complementos, automatización y desarrollo futuro

PiFlash 0.3.1 está actualizado al momento de escribir este artículo.

PiFlash 0.1.0 introdujo módulos de complementos, lo que significa módulos de Perl con nombres como PiFlash::Plugin::Algo estará disponible para el programa. Como medida de seguridad, porque PiFlash puede ejecutar comandos como sudo-root , los complementos no se cargan automáticamente. En su lugar, deben habilitarse a través de --plugin en la línea de comandos o en un archivo de configuración. El nombre del complemento es el nombre del módulo Perl sin el prefijo PiFlash::Plugin:: . Para más de un complemento, es una lista de nombres delimitada por comas. Los complementos habilitados pueden usar un gancho que se llama cuando los sistemas de archivos de arranque y raíz se montan después de escribir la tarjeta SD. Puede encontrar más información sobre complementos en PiFlash::Plugin documentación del módulo.

Aquí hay algunas ideas en mi propia lista de tareas pendientes para los próximos módulos de complementos...

  • Cambie la contraseña de las cuentas de usuario y root en la tarjeta SD antes de que se inicie
  • Establezca los parámetros de red y el nombre de host
  • Modifique los parámetros de configuración del sistema que normalmente requerirían ejecutar manualmente raspi-config o editando config.txt
  • Configure un entorno Linux personalizado en torno a los kernels ARM que cree

Mis ideas están, por supuesto, influenciadas por lo que quiero hacer. Es posible que desee ir en otras direcciones, así que considere contribuir con parches y complementos.

El repositorio del código fuente de PiFlash está en GitHub. Presente también allí informes de problemas y contribuciones de código/documentación.


Linux
  1. Introducción a los cortafuegos de Linux

  2. Primeros pasos con el comando tac de Linux

  3. Primeros pasos con el comando cat de Linux

  4. Primeros pasos con PostgreSQL en Linux

  5. Primeros pasos con SSH en Linux

Primeros pasos con GIT en Linux

Primeros pasos con el sistema operativo Linux

Tutorial de Vagrant:Primeros pasos con Vagrant en Linux

Primeros pasos con Docker Compose en Linux

Comenzando con VirtualBox en Linux – Parte 1

Primeros pasos con Flutter en el escritorio de Linux