GNU/Linux >> Tutoriels Linux >  >> Linux

Premiers pas avec PiFlash :démarrer votre Raspberry Pi sous Linux

La plupart des gens installent une forme de Linux lorsqu'ils configurent un ordinateur Raspberry Pi. Jusqu'à récemment, les outils d'installation pour créer une carte SD amorçable n'étaient disponibles que pour les ordinateurs de bureau Windows et MacOS. Si vous exécutiez Linux sur votre bureau, vous avez une page d'instructions pour le faire manuellement à partir de la ligne de commande.

Ça marche. Mais si vous expérimentez plusieurs cartes Raspberry Pi, cela devient fastidieux avec le temps. En tant qu'ingénieur et codeur, j'ai commencé à penser à l'automatiser pour le rendre plus facile et, comme d'habitude les projets open source démarrent, je suis reparti avec PiFlash.

J'ai écrit PiFlash juste pour moi en 2016. En février 2017, il avait suffisamment évolué pour que je l'introduise dans une présentation à SVPerl (Silicon Valley Perl) sur l'utilisation de Perl sur le Raspberry Pi, puis ai été invité à écrire deux articles pour Opensource. com :Démarrer avec Perl sur le Raspberry Pi et Comment sécuriser votre Raspberry Pi.

Fonctionnalités PiFlash

PiFlash a des fonctionnalités qui plaisent aux débutants et aux experts.

Comme la plupart des autres outils logiciels open source, vous n'avez pas besoin de voir le langage dans lequel il est écrit, si vous n'êtes pas intéressé par cela. Mais le code source est disponible pour les utilisateurs expérimentés et les participants.

Pour les utilisateurs experts, PiFlash simplifie le processus d'écriture d'une carte SD. Lorsque vous téléchargez un fichier "image" de système d'exploitation amorçable, il se trouve généralement dans une archive ZIP ou compressé. Toutes les distributions les conditionnent un peu différemment. Avec PiFlash, vous n'avez pas besoin de décompresser ou de décompresser l'image. Spécifiez simplement le fichier téléchargé comme entrée et PiFlash fera la partie fastidieuse de son extraction.

Pour les débutants, il existe une fonctionnalité de sécurité importante :PiFlash n'écrira que sur une carte SD et refuser d'écrire sur tout autre type d'appareil. Étant donné que vous devez utiliser les autorisations root pour écrire sur la carte, le système fera tout ce que vous lui direz. Par conséquent, il est possible d'effacer accidentellement le mauvais périphérique, peut-être un disque dur que vous souhaitez conserver, lorsque vous essayez de flasher manuellement une carte SD pour un nouveau Raspberry Pi.

C'est là que PiFlash vous protège du danger. En interne, il trouve les attributs de l'appareil avec le lsblk commande de util-linux package, qui fait partie de toutes les distributions Linux. Il peut reconnaître les cartes SD à l'aide de différents pilotes. Il refusera d'écrire sur un périphérique bloc s'il ne s'agit pas d'une carte SD.

Heureusement, l'outil Etcher GUI que Raspberry Pi Foundation utilise dans ses instructions pour les utilisateurs Windows et MacOS a été étendu à Linux, il existe donc désormais une option GUI sur Linux pour ceux qui en préfèrent une. Mais si vous souhaitez automatiser le processus ou si vous souhaitez des niveaux de personnalisation pour les utilisateurs expérimentés, seul un outil de ligne de commande fera l'affaire.

La dernière version de PiFlash ajoute des modules de plug-in qui peuvent modifier le système de fichiers de la carte SD après l'installation de l'image du système d'exploitation, afin que vous puissiez commencer à explorer de nouvelles options d'automatisation.

Installer PiFlash

PiFlash est disponible sur CPAN, le Comprehensive Perl Archive Network, mais avant de continuer, assurez-vous que tous les packages de dépendances sont installés. Pour installer les dépendances :

Sur les systèmes Linux basés sur 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

Sur les systèmes Linux basés sur 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

Pour les distributions basées sur la source ou d'autres systèmes de conditionnement, consultez la documentation CPAN pour la liste des dépendances.

Ensuite, installez PiFlash à l'aide de l'outil CPAN :

cpan PiFlash

J'ai configuré la version basée sur Dist::Zilla pour créer des packages DEB et RPM, mais elle ne figure pas encore dans les principales archives de packages. C'est possible à l'avenir.

Exécuter PiFlash

Si vous exécutez simplement le piflash commande sans aucun argument, elle imprimera les informations d'utilisation.

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

Analysez le système à la recherche de cartes SD pour obtenir le nom exact de l'appareil, dont vous aurez besoin pour le paramètre de périphérique de sortie Pi-Flash ci-dessous.

piflash --sdsearch

Si aucune carte SD n'est trouvée, il indique qu'il ne trouve rien.

no SD cards found on system

En savoir plus sur Raspberry Pi

  • Qu'est-ce que le Raspberry Pi ?
  • eBook :Guide du Raspberry Pi
  • Démarrer avec l'aide-mémoire Raspberry Pi
  • eBook :Exécuter Kubernetes sur votre Raspberry Pi
  • Livre blanc :Applications intelligentes gourmandes en données dans un modèle de cloud hybride
  • Comprendre l'informatique en périphérie
  • Notre actualité sur Raspberry Pi

Au fait, si vous avez un graveur de carte SD que PiFlash ne connaît pas, faites-le moi savoir en déposant un rapport sur GitHub. Pour les rapports de problèmes et le dépannage, veuillez collecter les informations internes du programme en utilisant le --verbose afin que je puisse voir quel pilote votre système a que PiFlash n'a pas reconnu.

Le nom exact de votre appareil peut varier selon les pilotes et les noms utilisés par d'autres appareils sur votre système. Si vous avez un lecteur/graveur de carte SD basé sur USB, cela peut indiquer quelque chose comme ceci :

SD cards found: /dev/sdb

Si vous disposez d'un emplacement pour carte SD intégré, il se peut qu'il utilise un pilote différent et porte un nom indiquant qu'il s'agit d'une carte SD utilisant le pilote MMC (MultiMediaCard) :

SD cards found: /dev/mmcblk0

Ensuite, téléchargez une image système à installer. La Fondation Raspberry Pi a une ancienne liste de possibilités qui n'est plus mise à jour. Puisque Raspbian est la distribution Linux officielle pour le Raspberry Pi, la prise en charge des pilotes y va en premier. Mais d'autres fonctionnent :Ubuntu est sur la liste, mais Fedora ne l'est pas car le support ARM et Raspberry Pi est venu après la création de la liste, cependant, vous pouvez le télécharger.

La commande pour flasher la carte SD est piflash  . Voici quelques exemples de commandes pour le flasher, en fonction du système que vous avez téléchargé et de l'appareil de blocage qui contient votre carte SD :

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

PiFlash a maintenant un --resize option, qui redimensionnera la partition racine sur la carte SD pour remplir le reste de l'appareil. Cela ne fonctionne que si la racine est un système de fichiers Linux ext2/3/4. La plupart des distributions le proposent comme une option que vous pouvez effectuer manuellement après l'installation, mais cela l'automatise en une seule étape.

Plugins, automatisation et développement futur

PiFlash 0.3.1 est à jour au moment d'écrire ces lignes.

PiFlash 0.1.0 a introduit des modules de plugin, ce qui signifie des modules Perl nommés comme PiFlash::Plugin::Something seront disponibles pour le programme. Par mesure de sécurité, car PiFlash peut exécuter des commandes en tant que sudo-root , les plugins ne sont pas automatiquement chargés. Au lieu de cela, ils doivent être activés via --plugin en ligne de commande ou dans un fichier de configuration. Le nom du plugin est le nom du module Perl sans le préfixe PiFlash::Plugin:: . Pour plus d'un plugin, c'est une liste de noms séparés par des virgules. Les plugins activés peuvent utiliser un crochet qui est appelé lorsque les systèmes de fichiers de démarrage et racine sont montés après l'écriture sur la carte SD. Plus d'informations sur les plugins peuvent être trouvées sur le PiFlash::Plugin documentation du module.

Voici quelques idées sur ma propre liste de choses à faire pour les modules de plugins à venir...

  • Modifier le mot de passe des comptes utilisateur et root sur la carte SD avant qu'elle ne démarre
  • Définir les paramètres réseau et le nom d'hôte
  • Modifier les paramètres de configuration du système qui nécessiteraient généralement l'exécution manuelle de raspi-config ou en modifiant config.txt
  • Configurez un environnement Linux personnalisé autour des noyaux ARM que vous créez

Mes idées sont, bien sûr, influencées par ce que je veux faire. Vous voudrez peut-être aller dans d'autres directions, alors pensez à contribuer des correctifs et des plugins.

Le référentiel de code source pour PiFlash est sur GitHub. Veuillez également y déposer les rapports de problème et les contributions au code/documentation.


Linux
  1. Premiers pas avec les pare-feux Linux

  2. Premiers pas avec la commande Linux tac

  3. Premiers pas avec la commande Linux cat

  4. Premiers pas avec PostgreSQL sous Linux

  5. Premiers pas avec SSH sous Linux

Premiers pas avec GIT sous Linux

Premiers pas avec le système d'exploitation Linux

Tutoriel Vagrant - Premiers pas avec Vagrant sous Linux

Premiers pas avec Docker Compose sous Linux

Premiers pas avec VirtualBox sous Linux - Partie 1

Premiers pas avec Flutter sur Linux Desktop