GNU/Linux >> Znalost Linux >  >> Linux

Začínáme s PiFlash:Spuštění Raspberry Pi v systému Linux

Většina lidí si při nastavování počítače Raspberry Pi nainstaluje nějakou formu Linuxu. Až donedávna byly instalační nástroje pro vytvoření bootovací SD karty dostupné pouze pro desktopy Windows a MacOS. Pokud jste na svém desktopu spouštěli Linux, dostali jste stránku s pokyny, jak to udělat ručně z příkazového řádku.

To funguje. Ale pokud experimentujete s více deskami Raspberry Pi, časem to bude únavné. Jako inženýr a kodér jsem začal přemýšlet o automatizaci, aby to bylo snazší, a obvyklým způsobem, jak začít projekty s otevřeným zdrojovým kódem, jsem přišel s PiFlash.

PiFlash jsem napsal jen pro sebe v roce 2016. Do února 2017 se vyvinul natolik, že jsem jej představil v prezentaci na SVPerl (Silicon Valley Perl) o používání Perlu na Raspberry Pi, poté jsem byl pozván, abych napsal dva články pro Opensource. com:Začínáme s Perlem na Raspberry Pi a Jak zabezpečit Raspberry Pi.

Funkce PiFlash

PiFlash má funkce, které osloví začátečníky i experty.

Stejně jako většina ostatních softwarových nástrojů s otevřeným zdrojovým kódem nepotřebujete vidět jazyk, ve kterém je napsán, pokud se o něj nestaráte. Zdrojový kód je však dostupný pro pokročilé uživatele a účastníky.

Pro zkušené uživatele PiFlash zjednodušuje proces zápisu na SD kartu. Když si stáhnete zaváděcí soubor „image“ OS, je obvykle v archivu ZIP nebo komprimovaný. Všechny distribuce je balí trochu jinak. S PiFlash nemusíte obrázek rozbalovat ani dekomprimovat. Stačí zadat stažený soubor jako vstup a PiFlash se postará o únavnou část jeho rozbalování.

Pro začátečníky je tu důležitá bezpečnostní funkce:PiFlash zapíše pouze na SD kartu a odmítnout zápis na jiný typ zařízení. Protože k zápisu na kartu musíte použít oprávnění root, systém udělá vše, co mu přikážete. Proto je možné při pokusu o ruční flashování SD karty pro nové Raspberry Pi omylem vymazat nesprávné zařízení, možná pevný disk, který si chcete ponechat.

To je místo, kde vás PiFlash chrání před nebezpečím. Interně najde atributy zařízení pomocí lsblk příkaz z util-linux balíček, který je součástí všech linuxových distribucí. Dokáže rozpoznat SD karty pomocí různých ovladačů. Pokud to není SD karta, odmítne zápis na blokované zařízení.

Naštěstí nástroj Etcher GUI, který Raspberry Pi Foundation používá ve svých pokynech pro uživatele Windows a MacOS, byl rozšířen na Linux, takže pro ty, kteří preferují, je nyní v Linuxu možnost GUI. Pokud však chcete proces automatizovat nebo chcete-li úrovně přizpůsobení pro náročné uživatele, tuto práci udělá pouze nástroj příkazového řádku.

Nejnovější verze PiFlash přidává moduly zásuvných modulů, které dokážou upravit souborový systém SD karty po instalaci obrazu OS, takže můžete začít zkoumat nové možnosti automatizace.

Instalace PiFlash

PiFlash je dostupný z CPAN, Comprehensive Perl Archive Network – ale než budete pokračovat, ujistěte se, že máte nainstalované všechny balíčky závislostí. Chcete-li nainstalovat závislosti:

Na systémech Linux založených na RPM (Red Hat Enterprise, Fedora, CentOS atd.):

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

Na systémech Linux založených na Debianu (Debian, Ubuntu, Raspbian atd.):

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

Pokud jde o distribuce založené na zdroji nebo jiné systémy balení, seznam závislostí naleznete v dokumentaci CPAN.

Dále nainstalujte PiFlash pomocí nástroje CPAN:

cpan PiFlash

Mám sestavu založenou na Dist::Zilla nastavenou pro vytváření balíčků DEB a RPM, ale zatím není v žádném z hlavních archivů balíčků. To je v budoucnu možné.

Spuštění PiFlash

Pokud právě spustíte piflash příkaz bez jakýchkoli argumentů, vypíše informace o použití.

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

Vyhledejte v systému karty SD a získejte přesný název zařízení, který budete potřebovat pro parametr výstupního zařízení Pi-Flash níže.

piflash --sdsearch

Pokud nejsou nalezeny žádné SD karty, hlásí, že nemůže nic najít.

no SD cards found on system

Více o Raspberry Pi

  • Co je Raspberry Pi?
  • Elektronická kniha:Průvodce Raspberry Pi
  • Začínáme s cheatem Raspberry Pi
  • Elektronická kniha:Spuštění Kubernetes na Raspberry Pi
  • Bílá kniha:Inteligentní aplikace náročné na data v hybridním cloudovém návrhu
  • Porozumění edge computingu
  • Naše novinky o Raspberry Pi

Mimochodem, pokud máte zapisovač SD karet, o kterém PiFlash neví, dejte mi prosím vědět podáním zprávy na GitHubu. Pro hlášení problémů a odstraňování problémů shromažďujte prosím interní informace programu pomocí --verbose možnost, abych viděl, jaký ovladač má váš systém, který PiFlash nerozpoznal.

Přesný název vašeho zařízení se může lišit podle ovladačů a názvů používaných jinými zařízeními ve vašem systému. Pokud máte čtečku/zapisovačku SD založenou na USB, může to říkat něco takového:

SD cards found: /dev/sdb

Nebo pokud máte vestavěný slot pro kartu SD, může používat jiný ovladač a mít název, který naznačuje, že se jedná o kartu SD využívající ovladač MMC (MultiMediaCard):

SD cards found: /dev/mmcblk0

Dále si stáhněte bitovou kopii systému k instalaci. Raspberry Pi Foundation má starý seznam možností, který již není aktualizován. Vzhledem k tomu, že Raspbian je oficiální linuxovou distribucí pro Raspberry Pi, podpora ovladačů je na prvním místě. Ale ostatní fungují:Ubuntu je na seznamu, ale Fedora ne, protože podpora ARM a Raspberry Pi přišla až po vytvoření seznamu, nicméně si ji můžete stáhnout.

Příkaz pro flashování SD karty je piflash  . Zde je několik příkladů příkazů pro flashování v závislosti na systému, který jste si stáhli, a na tom, které blokové zařízení má vaši SD kartu:

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

PiFlash má nyní --size možnost, která změní velikost kořenového oddílu na kartě SD tak, aby zaplnil zbytek zařízení. Funguje pouze v případě, že root je souborový systém Linux ext2/3/4. Většina distribucí to zpřístupňuje jako možnost, kterou můžete provést ručně po instalaci, ale tím se to automatizuje do jednoho kroku.

Pluginy, automatizace a budoucí vývoj

PiFlash 0.3.1 je aktuální v době psaní tohoto článku.

PiFlash 0.1.0 představil moduly zásuvných modulů, což znamená moduly Perl pojmenované jako PiFlash::Plugin::Something bude programu k dispozici. Jako bezpečnostní opatření, protože PiFlash může spouštět příkazy jako sudo-root , pluginy se nenačtou automaticky. Místo toho musí být povoleny pomocí --plugin na příkazovém řádku nebo v konfiguračním souboru. Název pluginu je název modulu Perl bez předpony PiFlash::Plugin:: . Pro více než jeden plugin je to seznam názvů oddělených čárkami. Povolené zásuvné moduly mohou používat háček, který se zavolá, když se po zapsání na SD kartu připojí spouštěcí a kořenový souborový systém. Více o pluginech naleznete na PiFlash::Plugin dokumentace modulu.

Zde je několik nápadů na můj vlastní seznam úkolů pro nadcházející moduly zásuvných modulů...

  • Změňte heslo účtu uživatele a účtu root na kartě SD před jejím spuštěním
  • Nastavte parametry sítě a název hostitele
  • Upravte parametry konfigurace systému, které by obvykle vyžadovaly ruční spuštění raspi-config nebo úpravou souboru config.txt
  • Nastavte si vlastní prostředí Linuxu na vámi sestavených jádrech ARM

Moje nápady jsou samozřejmě ovlivněny tím, co chci dělat. Možná budete chtít jít jinými směry, takže zvažte možnost přispívat záplatami a pluginy.

Úložiště zdrojového kódu pro PiFlash je na GitHubu. Ukládejte tam také hlášení o problémech a příspěvky s kódem/dokumentací.


Linux
  1. Začínáme s linuxovými firewally

  2. Začínáme s příkazem tac systému Linux

  3. Začínáme s linuxovým příkazem cat

  1. Začínáme s btrfs pro Linux

  2. Začínáme s PostgreSQL na Linuxu

  3. Začínáme s SSH v Linuxu

  1. Rady pro začátek s GNOME

  2. Začněte s Luminou pro váš počítač se systémem Linux

  3. Začínáme s pracovním prostředím GNOME Linux