GNU/Linux >> Linux の 問題 >  >> Linux

PiFlashの使用を開始する:LinuxでRaspberryPiを起動する

ほとんどの人は、RaspberryPiコンピューターをセットアップするときに何らかの形式のLinuxをインストールします。最近まで、起動可能なSDカードを作成するためのインストールツールは、WindowsおよびMacOSデスクトップでのみ使用可能でした。デスクトップでLinuxを実行している場合は、コマンドラインから手動で実行するための手順のページが表示されます。

それはうまくいきます。しかし、複数のRaspberry Piボードを試してみると、時間の経過とともにこれは面倒になります。エンジニアおよびコーダーとして、私はそれをより簡単にするために自動化することを考え始めました。そして、通常の方法でオープンソースプロジェクトを開始し、PiFlashを手に入れました。

私は2016年に自分のためだけにPiFlashを作成しました。2017年2月までに、Raspberry PiでのPerlの使用についてSVPerl(Silicon Valley Perl)でのプレゼンテーションで紹介し、Opensourceの2つの記事を書くように招待されました。 com:RaspberryPiでのPerl入門 およびRaspberryPiを保護する方法

PiFlashの機能

PiFlashには、初心者や専門家にアピールする機能があります。

他のほとんどのオープンソースソフトウェアツールのように、あなたがそれに興味がなければ、あなたはそれが書かれている言語を見る必要はありません。ただし、ソースコードはパワーユーザーと参加者が利用できます。

エキスパートユーザーの場合、PiFlashはSDカードの書き込みプロセスを簡素化します。起動可能なOSの「イメージ」ファイルをダウンロードすると、通常、ZIPアーカイブまたは圧縮された状態になります。すべてのディストリビューションは、それらを少し異なる方法でパッケージ化します。 PiFlashを使用すると、画像を解凍したり解凍したりする必要はありません。ダウンロードしたファイルを入力として指定するだけで、PiFlashがそれを抽出するという面倒な部分を実行します。

初心者のために、重要な安全機能があります:PiFlashはのみを書き込みます SDカードに書き込み、他の種類のデバイスへの書き込みを拒否します。カードを書き込むにはroot権限を使用する必要があるため、システムは指示されたすべてのことを実行します。したがって、新しいRaspberry PiのSDカードを手動でフラッシュしようとすると、誤って間違ったデバイス、おそらく保持したいハードドライブを消去する可能性があります。

これは、PiFlashが危険からあなたを守る場所です。内部的には、 lsblkでデバイス属性を検索します util-linuxからのコマンド パッケージ。これはすべてのLinuxディストリビューションの一部です。さまざまなドライバを使用してSDカードを認識できます。 SDカードでない場合、ブロックデバイスへの書き込みを拒否します。

幸い、Raspberry PiFoundationがWindowsおよびMacOSユーザー向けの手順で使用するEtcherGUIツールはLinuxに拡張されたため、LinuxにはGUIオプションがあります。ただし、プロセスを自動化したい場合、またはパワーユーザーレベルのカスタマイズが必要な場合は、コマンドラインツールのみがその役割を果たします。

最新バージョンのPiFlashには、OSイメージのインストール後にSDカードのファイルシステムを変更できるプラグインモジュールが追加されているため、自動化の新しいオプションを検討し始めることができます。

PiFlashのインストール

PiFlashは、包括的なPerlアーカイブネットワークであるCPANから入手できますが、先に進む前に、すべての依存関係パッケージがインストールされていることを確認してください。依存関係をインストールするには:

RPMベースのLinuxシステム(Red Hat Enterprise、Fedora、CentOSなど)の場合:

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

DebianベースのLinuxシステム(Debian、Ubuntu、Raspbianなど)の場合:

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

ソースベースのディストリビューションまたはその他のパッケージングシステムについては、依存関係リストのCPANドキュメントを参照してください。

次に、CPANツールを使用してPiFlashをインストールします:

cpan PiFlash

Dist ::ZillaベースのビルドをDEBおよびRPMパッケージを作成するように設定していますが、主要なパッケージアーカイブにはまだ含まれていません。それは将来可能です。

PiFlashの実行

piflashを実行するだけの場合 引数なしでコマンドを実行すると、使用状況情報が出力されます。

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

システムでSDカードをスキャンして、正確なデバイス名を取得します。これは、以下のPi-Flash出力デバイスパラメータに必要です。

piflash --sdsearch

SDカードが見つからない場合は、何も見つからないと表示されます。

no SD cards found on system

ラズベリーパイの詳細

  • ラズベリーパイとは何ですか?
  • eBook:RaspberryPiのガイド
  • RaspberryPiチートシートの使用を開始する
  • eBook:RaspberryPiでKubernetesを実行する
  • ホワイトペーパー:ハイブリッドクラウドの青写真におけるデータ集約型のインテリジェントアプリケーション
  • エッジコンピューティングについて
  • 最新のRaspberryPi

ちなみに、PiFlashが知らないSDカードライターをお持ちの場合は、GitHubにレポートを提出してお知らせください。問題の報告とトラブルシューティングについては、-verboseを使用してプログラムの内部情報を収集してください。 オプションで、PiFlashが認識しなかったシステムのドライバを確認できます。

正確なデバイス名は、ドライバやシステム上の他のデバイスで使用されている名前によって異なる場合があります。 USBベースのSDリーダー/ライターを使用している場合は、次のように表示される場合があります。

SD cards found: /dev/sdb

または、SDカードスロットが組み込まれている場合は、別のドライバーを使用し、MMC(マルチメディアカード)ドライバーを使用するSDカードであることを示す名前が付けられている可能性があります。

SD cards found: /dev/mmcblk0

次に、インストールするシステムイメージをダウンロードします。 Raspberry Pi Foundationには、更新されなくなった可能性の古いリストがあります。 RaspbianはRaspberryPiの公式Linuxディストリビューションであるため、ドライバーのサポートが最初に行われます。しかし、他の機能もあります。Ubuntuはリストに含まれていますが、Fedoraは、リストの作成後にARMとRaspberry Piのサポートが提供されたためではありませんが、ダウンロードできます。

SDカードをフラッシュするコマンドは、 piflash です。 。ダウンロードしたシステムとSDカードを搭載しているブロックデバイスに応じて、フラッシュするコマンドの例を次に示します。

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

PiFlashに-サイズ変更が追加されました オプション。SDカードのルートパーティションのサイズを変更して、デバイスの残りの部分を埋めます。ルートがLinuxext2/3/4ファイルシステムの場合にのみ機能します。ほとんどのディストリビューションでは、インストール後に手動で実行できるオプションとして利用できるようになっていますが、これにより1つのステップに自動化されます。

プラグイン、自動化、および将来の開発

この記事の執筆時点では、PiFlash0.3.1が最新です。

PiFlash 0.1.0はプラグインモジュールを導入しました。これは、 PiFlash ::Plugin ::Somethingのような名前のPerlモジュールを意味します プログラムで利用できるようになります。セキュリティ上の予防措置として、PiFlashは sudo-rootとしてコマンドを実行できるため 、プラグインは自動的にロードされません。代わりに、-プラグインを介して有効にする必要があります コマンドラインまたは構成ファイル。プラグインの名前は、 PiFlash ::Plugin::プレフィックスを除いたPerlモジュール名です。 。複数のプラグインの場合、これは名前のコンマ区切りのリストです。有効なプラグインは、SDカードの書き込み後にブートファイルシステムとルートファイルシステムがマウントされたときに呼び出されるフックを使用できます。プラグインの詳細については、 PiFlash ::Pluginをご覧ください。 モジュールのドキュメント。

これが、今後のプラグインモジュールに関する私自身のやることリストに関するいくつかのアイデアです...

  • SDカードを起動する前にユーザーとrootアカウントのパスワードを変更します
  • ネットワークパラメータとホスト名を設定します
  • 通常は手動でraspi-configを実行する必要があるシステム構成パラメーターを変更します またはconfig.txtを編集します
  • 構築するARMカーネルを中心にカスタムLinux環境をセットアップします

もちろん、私の考えは私がやりたいことに影響されます。他の方向に進みたいと思うかもしれないので、パッチとプラグインを提供することを検討してください。

PiFlashのソースコードリポジトリはGitHubにあります。問題の報告とコード/ドキュメントの寄稿もそこに提出してください。


Linux
  1. Linuxファイアウォールの使用を開始する

  2. Linuxtacコマンドの使用を開始する

  3. Linuxcatコマンドの使用を開始する

  1. Linux用のbtrfsの使用を開始する

  2. LinuxでPostgreSQLを使い始める

  3. LinuxでSSHを使い始める

  1. GNOMEを使い始めるためのアドバイス

  2. Linuxデスクトップ用のLuminaを使い始めましょう

  3. GNOMELinuxデスクトップの使用を開始する