GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Erste Schritte mit PiFlash:Starten Sie Ihren Raspberry Pi unter Linux

Die meisten Leute installieren irgendeine Form von Linux, wenn sie einen Raspberry Pi-Computer einrichten. Bis vor kurzem waren die Installationstools zum Erstellen einer bootfähigen SD-Karte nur für Windows- und MacOS-Desktops verfügbar. Wenn Sie Linux auf Ihrem Desktop ausgeführt haben, erhalten Sie eine Seite mit Anweisungen, wie Sie dies manuell über die Befehlszeile tun können.

Das funktioniert. Wenn Sie jedoch mit mehreren Raspberry Pi-Platinen experimentieren, wird dies mit der Zeit mühsam. Als Ingenieur und Programmierer fing ich an, darüber nachzudenken, es zu automatisieren, um es einfacher zu machen, und wie es üblich ist, Open-Source-Projekte zu starten, kam ich mit PiFlash davon.

Ich habe PiFlash 2016 nur für mich selbst geschrieben. Bis Februar 2017 hatte es sich so weit entwickelt, dass ich es in einer Präsentation bei SVPerl (Silicon Valley Perl) über die Verwendung von Perl auf dem Raspberry Pi vorstellte und dann eingeladen wurde, zwei Artikel für Opensource zu schreiben. de:Erste Schritte mit Perl auf dem Raspberry Pi und So sichern Sie Ihren Raspberry Pi.

PiFlash-Funktionen

PiFlash hat Funktionen, die Anfänger und Experten ansprechen.

Wie bei den meisten anderen Open-Source-Softwaretools müssen Sie die Sprache, in der es geschrieben ist, nicht sehen, wenn Sie sich nicht dafür interessieren. Aber der Quellcode ist für Power-User und Teilnehmer verfügbar.

Für erfahrene Benutzer vereinfacht PiFlash das Beschreiben einer SD-Karte. Wenn Sie eine bootfähige Betriebssystem-Image-Datei herunterladen, befindet sie sich normalerweise in einem ZIP-Archiv oder ist komprimiert. Alle Distributionen packen sie ein wenig anders. Mit PiFlash müssen Sie das Bild nicht entpacken oder dekomprimieren. Geben Sie einfach die heruntergeladene Datei als Eingabe an und PiFlash übernimmt den mühsamen Teil des Extrahierens.

Für Anfänger gibt es eine wichtige Sicherheitsfunktion:PiFlash schreibt nur auf eine SD-Karte und verweigern das Schreiben auf andere Gerätetypen. Da Sie Root-Berechtigungen verwenden müssen, um die Karte zu schreiben, wird das System alles tun, was Sie ihm sagen. Daher ist es möglich, versehentlich das falsche Gerät zu löschen, vielleicht eine Festplatte, die Sie behalten möchten, wenn Sie versuchen, eine SD-Karte manuell für einen neuen Raspberry Pi zu flashen.

Hier schützt Sie PiFlash vor Gefahren. Intern findet es Geräteattribute mit dem lsblk Befehl aus dem util-linux Paket, das Bestandteil aller Linux-Distributionen ist. Es kann SD-Karten mit verschiedenen Treibern erkennen. Es weigert sich, auf ein Blockgerät zu schreiben, wenn es sich nicht um eine SD-Karte handelt.

Glücklicherweise wurde das Etcher-GUI-Tool, das die Raspberry Pi Foundation in ihren Anweisungen für Windows- und MacOS-Benutzer verwendet, auf Linux erweitert, sodass es jetzt eine GUI-Option unter Linux für diejenigen gibt, die eine bevorzugen. Aber wenn Sie den Prozess automatisieren möchten oder wenn Sie Power-User-Anpassungsebenen wünschen, wird nur ein Befehlszeilentool die Arbeit erledigen.

Die neueste Version von PiFlash fügt Plugin-Module hinzu, die das Dateisystem der SD-Karte nach der Installation des Betriebssystem-Images ändern können, sodass Sie beginnen können, neue Optionen für die Automatisierung zu erkunden.

Installieren von PiFlash

PiFlash ist bei CPAN, dem Comprehensive Perl Archive Network, erhältlich – aber bevor Sie fortfahren, vergewissern Sie sich, dass Sie alle Abhängigkeitspakete installiert haben. So installieren Sie die Abhängigkeiten:

Auf RPM-basierten Linux-Systemen (Red Hat Enterprise, Fedora, CentOS usw.):

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

Auf Debian-basierten Linux-Systemen (Debian, Ubuntu, Raspbian usw.):

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

Für quellenbasierte Distributionen oder andere Verpackungssysteme siehe die CPAN-Dokumentation für die Abhängigkeitsliste.

Als nächstes installieren Sie PiFlash mit dem CPAN-Tool:

cpan PiFlash

Ich habe den auf Dist::Zilla basierenden Build eingerichtet, um DEB- und RPM-Pakete zu erstellen, aber er befindet sich noch in keinem der großen Paketarchive. Das ist in Zukunft möglich.

PiFlash läuft

Wenn Sie einfach piflash ausführen Befehl ohne irgendwelche Argumente, wird er Nutzungsinformationen ausgeben.

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

Scannen Sie das System nach SD-Karten, um den genauen Gerätenamen zu erhalten, den Sie für den Parameter Pi-Flash output-device unten benötigen.

piflash --sdsearch

Wenn keine SD-Karten gefunden werden, wird angezeigt, dass nichts gefunden werden kann.

no SD cards found on system

Mehr zu Raspberry Pi

  • Was ist Raspberry Pi?
  • eBook:Leitfaden für Raspberry Pi
  • Erste Schritte mit dem Spickzettel für Raspberry Pi
  • eBook:Kubernetes auf Ihrem Raspberry Pi ausführen
  • Whitepaper:Datenintensive intelligente Anwendungen in einem Hybrid-Cloud-Blueprint
  • Edge-Computing verstehen
  • Unsere neuesten Informationen zu Raspberry Pi

Übrigens, wenn Sie einen SD-Kartenschreiber haben, von dem PiFlash nichts weiß, lassen Sie es mich bitte wissen, indem Sie einen Bericht auf GitHub einreichen. Sammeln Sie für Problemberichte und Fehlerbehebung bitte die internen Informationen des Programms, indem Sie --verbose verwenden Option, damit ich sehen kann, welchen Treiber Ihr System hat, den PiFlash nicht erkannt hat.

Ihr genauer Gerätename kann je nach Treibern und den von anderen Geräten in Ihrem System verwendeten Namen variieren. Wenn Sie ein USB-basiertes SD-Lese-/Schreibgerät haben, kann es so aussehen:

SD cards found: /dev/sdb

Oder wenn Sie einen integrierten SD-Kartensteckplatz haben, verwendet dieser möglicherweise einen anderen Treiber und hat einen Namen, der darauf hinweist, dass es sich um eine SD-Karte handelt, die den MMC-Treiber (MultiMediaCard) verwendet:

SD cards found: /dev/mmcblk0

Laden Sie als Nächstes ein Systemabbild zur Installation herunter. Die Raspberry Pi Foundation hat eine alte Liste von Möglichkeiten, die nicht mehr aktualisiert wird. Da Raspbian die offizielle Linux-Distribution für den Raspberry Pi ist, geht die Treiberunterstützung zuerst dorthin. Aber andere funktionieren:Ubuntu ist auf der Liste, aber Fedora nicht, weil die ARM- und Raspberry Pi-Unterstützung kam, nachdem die Liste erstellt wurde, aber Sie können es herunterladen.

Der Befehl zum Flashen der SD-Karte lautet piflash  . Hier sind einige Beispiele für Befehle zum Flashen, je nachdem, welches System Sie heruntergeladen haben und welches Blockgerät Ihre SD-Karte hat:

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

PiFlash hat jetzt ein --resize Option, die die Größe der Root-Partition auf der SD-Karte ändert, um den Rest des Geräts zu füllen. Es funktioniert nur, wenn das Root-Dateisystem ein Linux ext2/3/4-Dateisystem ist. Die meisten Distributionen stellen dies als Option zur Verfügung, die Sie nach der Installation manuell ausführen können, aber dadurch wird es auf einen Schritt automatisiert.

Plugins, Automatisierung und zukünftige Entwicklung

Zum Zeitpunkt des Schreibens dieses Artikels ist PiFlash 0.3.1 aktuell.

PiFlash 0.1.0 führte Plugin-Module ein, was Perl-Module mit dem Namen PiFlash::Plugin::Something bedeutet wird dem Programm zur Verfügung stehen. Als Sicherheitsvorkehrung, da PiFlash Befehle als sudo-root ausführen kann , Plugins werden nicht automatisch geladen. Stattdessen müssen sie über --plugin aktiviert werden in der Befehlszeile oder in einer Konfigurationsdatei. Der Name des Plugins ist der Perl-Modulname ohne das Präfix PiFlash::Plugin:: . Bei mehr als einem Plugin ist es eine durch Kommas getrennte Liste von Namen. Aktivierte Plugins können einen Hook verwenden, der aufgerufen wird, wenn die Boot- und Root-Dateisysteme nach dem Schreiben auf die SD-Karte gemountet werden. Mehr zu Plugins finden Sie unter PiFlash::Plugin Moduldokumentation.

Hier sind einige Ideen auf meiner eigenen To-do-Liste für kommende Plugin-Module...

  • Ändern Sie das Passwort der Benutzer- und Root-Konten auf der SD-Karte, bevor sie startet
  • Legen Sie die Netzwerkparameter und den Hostnamen fest
  • Ändern Sie Systemkonfigurationsparameter, die normalerweise das manuelle Ausführen von raspi-config erfordern würden oder Bearbeiten von config.txt
  • Richten Sie eine benutzerdefinierte Linux-Umgebung um von Ihnen erstellte ARM-Kernel ein

Meine Ideen werden natürlich von dem beeinflusst, was ich tun möchte. Vielleicht möchten Sie in andere Richtungen gehen, also erwägen Sie bitte, Patches und Plugins beizusteuern.

Das Quellcode-Repository für PiFlash befindet sich auf GitHub. Bitte reichen Sie dort auch Problemberichte und Code-/Dokumentationsbeiträge ein.


Linux
  1. Erste Schritte mit Linux-Firewalls

  2. Erste Schritte mit dem Linux-tac-Befehl

  3. Erste Schritte mit dem Linux-cat-Befehl

  4. Erste Schritte mit PostgreSQL unter Linux

  5. Erste Schritte mit SSH unter Linux

Erste Schritte mit GIT unter Linux

Erste Schritte mit dem Linux-Betriebssystem

Vagrant-Tutorial – Erste Schritte mit Vagrant unter Linux

Erste Schritte mit Docker Compose unter Linux

Erste Schritte mit VirtualBox unter Linux – Teil 1

Erste Schritte mit Flutter auf dem Linux-Desktop