Membuat gambar kartu SD yang disiapkan sebelumnya

19

Untuk proyek yang sedang saya kerjakan, saya ingin membuat gambar "stok" berdasarkan Raspbian yang dapat saya instal di banyak Pis.

Idealnya saya ingin dapat (di komputer saya) mengambil gambar Raspbian, apt-get beberapa paket, mengedit beberapa konfigurasi dan kemudian membuat dan gambar kartu SD dari itu untuk memakai Pis saya.

Apakah ada cara sederhana atau yang disarankan untuk melakukan ini? Adakah jebakan yang mungkin saya temui?

Saya ingin menghindari bermain-main secara manual dengan pi dan kemudian mengkloning gambar itu. Agaknya Raspbian dibuat dengan cara yang bukan seseorang mengklik tombol secara manual pada Pi. Saya ingin melakukannya dengan cara itu, jika saya bisa.

Idealnya saya ingin membuat sesuatu yang dapat secara otomatis dibangun pada server integrasi berkelanjutan - Saya tidak ingin proses pembuatan yang melibatkan "menulis kartu SD, menaruhnya di Pi" karena saya ingin menjadi ale untuk membuat gambar tanpa akses fisik ke Raspberry Pi.

Andy Smith
sumber
3
Mungkin berguna: Bagaimana saya bisa memasang gambar distro Raspberry Pi Linux? - perhatikan baris yang ditekankan dalam jawaban yang diterima, "Jika Anda mengubah apa pun, perubahan itu akan dimasukkan dalam file .img." Sayangnya, ini tidak memberikan kesempatan untuk mendaftar apt-get; cara termudah untuk melakukannya adalah dengan menggunakan VM dan rsyncdengan gambar yang dipasang identik dengan yang digunakan untuk memulai VM (karena gambar VM sendiri tidak baik untuk ini) tapi saya pikir satu-satunya pilihan VM di sini adalah QEMU, yang AFAICT adalah PITA.
goldilocks
Pendekatan lain adalah net-booting.
lexu
Win32DiskImager memiliki fungsi Baca, sudahkah Anda mencobanya?
Kong Chun Ho

Jawaban:

6

Yayasan Raspberry Pi menggunakan satu set skrip bash yang mengotomatisasi QEMU untuk menghasilkan gambar mereka. Anda masih harus melihat buildroot "standar industri" dan Yocto juga.

https://github.com/RPi-Distro/pi-gen

http://cellux.github.io/articles/diy-linux-with-buildroot-part-1/

serpih
sumber
Jika OP sedang mencari untuk membuat gambar rilis standar industri .. ya itulah cara untuk pergi tetapi itu adalah kurva belajar besar-besaran dan saya berharap tidak ada penggemar di jalur itu.
Piotr Kula
1
Ini terdengar seperti apa yang saya cari! Apakah ada panduan tentang cara menggunakan ini? build.sh tampaknya menganggap banyak variabel lingkungan ditetapkan.
Andy Smith
Mungkin dicakup oleh # 4 di bawah TODO ;) Belum tersentuh dalam beberapa bulan sehingga orang-orang yang terlibat sibuk dengan hal-hal lain atau telah kehilangan minat di dalamnya.
goldilocks
@goldilocks jadi ini bukan tempat asal gambar rasbian?
Andy Smith
3
Saya akan jujur ​​dan mengatakan bahwa kesan saya adalah Anda mengejar sisi Y dari masalah XY dengan terlalu banyak semangat - tersirat Anda berpikir metode yang lebih sederhana (hanya menyiapkan gambar pada pi, yang dapat dilakukan dari komputer melalui login jarak jauh, dan gambar itu sendiri disesuaikan dengan pemasangan, yang dapat dilakukan pada PC, dan semua ini dapat diotomatiskan dengan skrip) terlalu merepotkan, dan Anda telah menaruh harapan Anda pada metode yang sebenarnya jauh lebih banyak kerumitan .
goldilocks
5

Proyek saya Nard SDK memiliki banyak fitur yang Anda inginkan. Ini bukan Raspbian tetapi memiliki emulasi biner Raspbian dan karenanya sangat dekat. Dengan Nard Anda membangun semuanya di PC dan prosesnya sangat cepat dan dapat direproduksi. Semuanya bisa skrip dan dapat dilakukan dengan misalnya integrasi berkelanjutan setiap malam.
http://www.arbetsmyra.dyndns.org/nard/

Ronny Nilsson
sumber
0

Menurut pendapat saya , melakukannya dengan cara yang Anda sarankan (pemasangan, melakukan solusi untuk memperbarui dan mengonfigurasi, dll.) Menghadirkan lebih banyak tantangan daripada solusi aktual . Tentu, mungkin menyenangkan untuk melakukannya dengan cara Anda jika Anda tertarik, tetapi cara terbaik dan termudah mungkin adalah yang Anda hindari.

Saya sarankan Anda mendapatkan Pi dan melakukan apa yang harus Anda lakukan, lalu membuat gambar kartu SD-nya. Kemudian, gunakan gambar itu di Pis Anda yang lain karena gambar itu sudah dikonfigurasi.

Catatan: Saya anggap Anda akan menggunakan Raspbian. Saya juga akan menganggap Anda hanya orang biasa dan bukan orang yang sering menyiapkan gambar (misalnya Raspberry Pi Foundation).


Langkah-langkah jika Anda lakukan bermain-main dengan Pi Anda:

  1. Unduh dan pasang gambar OS baru pilihan Anda
  2. Hubungkan kabel Ethernet / sambungkan ke WiFi
    • Mungkin melakukan pemindaian LAN jika Anda tidak tahu alamat IP Pi Anda
  3. Lakukan hal-hal melalui SSH
    • apt-get update -y && apt-get upgrade untuk memperbarui paket
    • Kebutuhan konfigurasi pribadi Anda
  4. Buat gambar, lalu gunakan gambar itu untuk Pis lainnya.

Langkah-langkah jika Anda tidak bermain-main dengan Pi Anda (lihat catatan di atas):

  1. Unduh gambar OS segar
  2. Pasang gambar menggunakan instruksi dari /raspberrypi//a/13138/24224 (Anda juga harus mempertimbangkan OS / gambar apa yang Anda miliki karena beberapa memiliki tata letak FS yang berbeda)
    • Siapkan kalkulator.
  3. Temukan debfile untuk setiap paket yang ingin Anda perbarui, ditambah dependensinya , ditambah dependensi dependensi tersebut , plus dependensi dependensi tersebut . apt-offlineitu merepotkan. Lihat tautan ini
    • Kemudian temukan cara untuk menginstal semua paket tersebut tanpa menggunakan / mengotak-atik Pi Anda. apt-gettidak akan berfungsi offline. deb detail file di sini . Semoga berhasil.
  4. Perbarui kernel Pi dan hal-hal tingkat rendah menggunakan alat Hexxeh
  5. Konfigurasikan dengan kebutuhan Anda
  6. Tulis gambar yang dimodifikasi ke kartu SD Pis Anda.

Saya tidak melihat manfaat dari tidak bermain-main dengan Pi Anda.

Potong diri Anda sedikit kendor dan mengotak dengan Pi Anda. Anda hanya perlu melakukannya sekali.

PNDA
sumber
Hampir tidak mungkin untuk mendapatkan program secara manual dengan mendapatkan, dependensi, dan ada dependensi, dan ada dependensi, dll. Tetapi jika Anda menggunakan apt-get dan mengatakan Anda ingin VLC yang akan Anda lakukan, apt-get install vlc --ya - print- uris. Itu akan memberikan daftar tautan; setelah diunduh, letakkan di / var / cache / apt / archives / partial dan jalankan dpkg -i partial / *. deb untuk menginstal. Lebih baik lagi, jika Anda mendapatkan Synaptics, ia memiliki opsi untuk membuat skrip unduhan paket. Jalankan skrip itu di Komputer Linux dan Anda mendapatkan paket Anda. Kemudian Anda dapat menginstalnya dengan sinaptik lagi.
NULL
@ NULLThen find a way to install all of those packages without using/tinkering with your Pi.
PNDA
@ NULL Sejauh yang saya tahu, Anda hanya dapat menggunakan dpkgpada sistem itu sendiri, bukan pada gambar yang dipasang. Juga, OP berencana menggunakan PC-nya, jadi *.debfile yang Anda miliki adalah untuk arsitektur yang salah sejak awal (PC adalah x86 / x64, Pi adalah ARMv6 / v7)
PNDA
Seperti yang saya sebutkan dalam pertanyaan saya, saya tidak ingin melakukan 1. Adapun 2, kedengarannya gila :). Apa yang membuat Anda berpikir saran @flakeshakes lebih sulit dari 2?
Andy Smith
@AndySmith Saya akan mengutip komentar goldilock:I'll be honest and say that my impression is you are pursuing the Y side of an XY problem with too much vigour -- it's implied you think the simpler method (just set up an image on a pi, which can be done from a computer via remote login, and the image itself tweaked by mounting, which can be done on a PC, and all of this can be automated with scripting) is too much hassle, and so you have put your hopes in a method that is actually much more hassle.
PNDA
0

Saya pikir apa yang Anda cari adalah semacam (software) configuration management. Dengan ini, Anda dapat mem-boot image raspbian stok dan kemudian mendorong konfigurasi Anda sendiri (termasuk paket baru dan sejenisnya). Ada banyak sistem SCM di luar sana. The downside adalah bahwa sebagian besar sistem ini ditujukan untuk mendukung jaringan skala besar dan mungkin sedikit berlebihan untuk tujuan Anda. Anda juga memerlukan semacam server penyediaan. SCM paling populer tampaknya adalah Wayang , Koki , Ansible . Artikel untuk Anda mulai:

Ini semacam jawaban umum tetapi SCM adalah bidang yang luas. Mungkin ini layak untuk digali tergantung pada apa rencana Anda.

duenni
sumber
Kemungkinan tampaknya menjanjikan karena itu tanpa agen dan Anda tidak perlu server penuh untuk menjalankannya.
duenni
1
Tidak juga, saya ingin gambarnya sudah dibuat, bukan sesuatu yang saya tempel. Saran ini tidak berfungsi jika Pi saya tidak memiliki koneksi jaringan.
Andy Smith