GNU/Linux >> Belajar Linux >  >> Linux

Memulai PiFlash:Mem-boot Raspberry Pi Anda di Linux

Kebanyakan orang menginstal beberapa bentuk Linux ketika mereka menyiapkan komputer Raspberry Pi. Sampai saat ini, alat penginstalan untuk membuat kartu SD yang dapat di-boot hanya tersedia untuk desktop Windows dan MacOS. Jika Anda menjalankan Linux di desktop, Anda mendapatkan halaman instruksi untuk melakukannya secara manual dari baris perintah.

Itu bekerja. Tetapi jika Anda bereksperimen dengan beberapa papan Raspberry Pi, seiring waktu ini akan membosankan. Sebagai seorang insinyur dan pembuat kode, saya mulai berpikir untuk mengotomatiskannya agar lebih mudah dan, seperti biasanya proyek open source dimulai, saya menggunakan PiFlash.

Saya menulis PiFlash hanya untuk diri saya sendiri pada tahun 2016. Pada Februari 2017, itu telah berkembang cukup jauh sehingga saya memperkenalkannya dalam presentasi di SVPerl (Silicon Valley Perl) tentang penggunaan Perl di Raspberry Pi, kemudian diundang untuk menulis dua artikel untuk Opensource. com:Memulai Perl di Raspberry Pi dan Cara Mengamankan Raspberry Pi Anda.

Fitur PiFlash

PiFlash memiliki fitur yang menarik bagi pemula dan ahli.

Seperti kebanyakan perangkat lunak sumber terbuka lainnya, Anda tidak perlu melihat bahasa yang digunakan untuk menulisnya, jika Anda tidak menyukainya. Tetapi kode sumber tersedia untuk pengguna dan peserta yang kuat.

Untuk pengguna ahli, PiFlash menyederhanakan proses penulisan kartu SD. Saat Anda mengunduh file "gambar" OS yang dapat di-boot, biasanya file tersebut berada dalam arsip ZIP atau terkompresi. Semua distribusi mengemasnya sedikit berbeda. Dengan PiFlash, Anda tidak perlu membongkar atau mendekompresi gambar. Cukup tentukan file yang diunduh sebagai input dan PiFlash akan melakukan bagian yang membosankan untuk mengekstraknya.

Untuk pemula, ada fitur keamanan penting:PiFlash akan menulis hanya ke kartu SD dan menolak untuk menulis ke jenis perangkat lain. Karena Anda harus menggunakan izin root untuk menulis kartu, sistem akan melakukan apa pun yang Anda perintahkan. Oleh karena itu, mungkin saja perangkat yang salah terhapus secara tidak sengaja, mungkin hard drive yang ingin Anda simpan, saat mencoba mem-flash kartu SD secara manual untuk Raspberry Pi baru.

Di sinilah PiFlash melindungi Anda dari bahaya. Secara internal, ia menemukan atribut perangkat dengan lsblk perintah dari util-linux paket, yang merupakan bagian dari semua distribusi Linux. Itu dapat mengenali kartu SD menggunakan berbagai driver. Itu akan menolak untuk menulis ke perangkat blok jika itu bukan kartu SD.

Untungnya, alat GUI Etcher yang digunakan Raspberry Pi Foundation dalam instruksinya untuk pengguna Windows dan MacOS telah diperluas ke Linux, jadi sekarang ada opsi GUI di Linux untuk mereka yang lebih menyukainya. Tetapi jika Anda ingin mengotomatiskan proses, atau jika Anda ingin tingkat penyesuaian pengguna yang kuat, hanya alat baris perintah yang akan melakukan pekerjaan itu.

Versi terbaru PiFlash menambahkan modul plugin yang dapat memodifikasi sistem file kartu SD setelah menginstal image OS, sehingga Anda dapat mulai menjelajahi opsi baru untuk otomatisasi.

Menginstal PiFlash

PiFlash tersedia dari CPAN, Jaringan Arsip Perl Komprehensif—tetapi sebelum Anda melanjutkan, pastikan Anda telah menginstal semua paket ketergantungan. Untuk menginstal dependensi:

Pada sistem Linux berbasis RPM (Red Hat Enterprise, Fedora, CentOS, dll.):

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

Pada sistem Linux berbasis Debian (Debian, Ubuntu, Raspbian, dll.):

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

Untuk distribusi berbasis sumber atau sistem pengemasan lainnya, lihat dokumentasi CPAN untuk daftar ketergantungan.

Selanjutnya, instal PiFlash menggunakan alat CPAN:

cpan PiFlash

Saya telah menyiapkan build berbasis Dist::Zilla untuk membuat paket DEB dan RPM, tetapi belum ada di arsip paket utama mana pun. Itu mungkin di masa depan.

Menjalankan PiFlash

Jika Anda hanya menjalankan piflash perintah tanpa argumen, itu akan mencetak informasi penggunaan.

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

Pindai sistem untuk kartu SD untuk mendapatkan nama perangkat yang tepat, yang Anda perlukan untuk parameter perangkat keluaran Pi-Flash di bawah ini.

piflash --sdsearch

Jika tidak ada kartu SD yang ditemukan, dikatakan tidak dapat menemukan apa pun.

no SD cards found on system

Selengkapnya tentang Raspberry Pi

  • Apa itu Raspberry Pi?
  • eBuku:Panduan untuk Raspberry Pi
  • Memulai lembar contekan Raspberry Pi
  • eBook:Menjalankan Kubernetes di Raspberry Pi Anda
  • Buku Putih:Aplikasi cerdas intensif data dalam cetak biru cloud hybrid
  • Memahami komputasi tepi
  • Terbaru kami di Raspberry Pi

Omong-omong, jika Anda memiliki penulis kartu SD yang tidak diketahui PiFlash, beri tahu saya dengan mengajukan laporan di GitHub. Untuk laporan masalah dan pemecahan masalah, kumpulkan informasi internal program dengan menggunakan --verbose jadi saya bisa melihat driver apa yang dimiliki sistem Anda yang tidak dikenali PiFlash.

Nama persis perangkat Anda mungkin berbeda menurut driver dan nama yang digunakan oleh perangkat lain di sistem Anda. Jika Anda memiliki pembaca/penulis SD berbasis USB, mungkin akan muncul seperti ini:

SD cards found: /dev/sdb

Atau jika Anda memiliki slot kartu SD internal, slot tersebut mungkin menggunakan driver yang berbeda dan memiliki nama yang menunjukkan bahwa itu adalah kartu SD menggunakan driver MMC (MultiMediaCard):

SD cards found: /dev/mmcblk0

Selanjutnya, unduh citra sistem untuk diinstal. Yayasan Raspberry Pi memiliki daftar kemungkinan lama yang tidak lagi diperbarui. Karena Raspbian adalah distribusi Linux resmi untuk Raspberry Pi, dukungan driver lebih dulu. Tetapi yang lain berfungsi:Ubuntu ada dalam daftar, tetapi Fedora bukan karena dukungan ARM dan Raspberry Pi datang setelah daftar dibuat, namun, Anda dapat mengunduhnya.

Perintah untuk mem-flash kartu SD adalah piflash  . Berikut adalah beberapa contoh perintah untuk mem-flash-nya, tergantung pada sistem yang Anda unduh dan perangkat blok mana yang memiliki kartu SD Anda:

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

PiFlash sekarang memiliki --resize opsi, yang akan mengubah ukuran partisi root pada kartu SD untuk mengisi sisa perangkat. Ini hanya berfungsi jika root adalah sistem file Linux ext2/3/4. Sebagian besar distribusi menyediakannya sebagai opsi yang dapat Anda lakukan secara manual setelah penginstalan, tetapi ini mengotomatiskannya ke satu langkah.

Plugin, otomatisasi, dan pengembangan masa depan

PiFlash 0.3.1 saat ini pada saat penulisan ini.

PiFlash 0.1.0 memperkenalkan modul plugin, yang berarti modul Perl bernama seperti PiFlash::Plugin::Something akan tersedia untuk program. Sebagai tindakan pencegahan keamanan, karena PiFlash dapat menjalankan perintah sebagai sudo-root , plugin tidak dimuat secara otomatis. Sebaliknya, mereka harus diaktifkan melalui --plugin pada baris perintah atau dalam file konfigurasi. Nama plugin adalah nama modul Perl tanpa PiFlash::Plugin::prefix . Untuk lebih dari satu plugin, ini adalah daftar nama yang dipisahkan koma. Plugin yang diaktifkan dapat menggunakan pengait yang dipanggil saat sistem berkas boot dan root dipasang setelah menulis kartu SD. Selengkapnya tentang plugin dapat ditemukan di PiFlash::Plugin dokumentasi modul.

Berikut adalah beberapa ide tentang daftar tugas saya sendiri untuk modul plugin yang akan datang...

  • Ubah kata sandi akun pengguna dan root pada kartu SD sebelum boot
  • Menyetel parameter jaringan dan nama host
  • Ubah parameter konfigurasi sistem yang biasanya mengharuskan menjalankan raspi-config . secara manual atau mengedit config.txt
  • Siapkan lingkungan Linux khusus di sekitar kernel ARM yang Anda buat

Ide-ide saya, tentu saja, dipengaruhi oleh apa yang ingin saya lakukan. Anda mungkin ingin pergi ke arah lain, jadi harap pertimbangkan untuk menyumbangkan tambalan dan plugin.

Repositori kode sumber untuk PiFlash ada di GitHub. Silakan ajukan laporan masalah dan kontribusi kode/dokumentasi di sana juga.


Linux
  1. Memulai dengan firewall Linux

  2. Memulai dengan perintah tac Linux

  3. Memulai dengan perintah cat Linux

  1. Memulai dengan btrfs untuk Linux

  2. Memulai PostgreSQL di Linux

  3. Memulai SSH di Linux

  1. Saran untuk memulai dengan GNOME

  2. Memulai Lumina untuk desktop Linux Anda

  3. Memulai dengan desktop GNOME Linux