Önceden hazırlanmış bir SD kart görüntüsü oluşturma


19

Üzerinde çalıştığım bir proje için, birçok Pis'e yükleyebileceğim Raspbian'a dayalı bir "stok" görüntüsü oluşturmak istiyorum.

İdeal olarak (bilgisayarımda) Raspbian görüntüsünü alabilir, bazı paketleri apt-get, bazı yapılandırma düzenlemek ve daha sonra Pis ve benim koymak için SD kart görüntü oluşturmak istiyorum.

Bunu yapmanın basit veya önerilen bir yolu var mı? Karşılaşabileceğim bir tuzak var mı?

Manuel olarak bir pi ile müdahalesi önlemek ve daha sonra bu görüntü klonlamak için istekli. Muhtemelen Raspbian, Pi üzerindeki düğmeleri elle tıklayan birinin olmadığı bir şekilde yapılır. Yapabilirsem bu şekilde yapmak istiyorum.

İdeal olarak, sürekli bir entegrasyon sunucusunda otomatik olarak oluşturulabilecek bir şey oluşturmak istiyorum - "SD kart yazma, Pi'ye koy" içeren bir oluşturma işlemi istemiyorum çünkü hiç olmadan görüntü oluşturmak için ale olmak istiyorum bir Ahududu Pi fiziksel erişim.


3
Kullanışlı olabilir : Raspberry Pi Linux dağıtım görüntüsünü nasıl bağlayabilirim? - "Herhangi bir şeyi değiştirirseniz, bu değişiklikler .img dosyasına dahil edilir." Ne yazık ki, bu başvuru fırsatı sunmaz apt-get; Bunu yapmanın en kolay yolu, bir VM kullanmak ve VM'yi rsyncbaşlatmak için kullanılan görüntüye özdeş monte edilmiş bir görüntü kullanmak olacaktır (VM görüntüleri bunun için iyi olmadığından), ancak burada tek VM seçeneği QEMU'dur. AFAICT bir PITA'dır.
goldilocks

Başka bir yaklaşım net-boot olacaktır.
lexu

Win32DiskImager'ın Okuma işlevi var, bunu denediniz mi?
Kong Chun Ho

Yanıtlar:


6

Raspberry Pi temeli, görüntülerini oluşturmak için QEMU'yu otomatikleştiren bir dizi bash komut dosyası kullanır. Yine de "endüstri standartları" yapısına ve Yocto'ya bakmalısınız.

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

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


Eğer OP bir endüstri standardı sürüm imajı oluşturmak istiyorsa .. evet bu gitmek için yol ama bu büyük bir öğrenme eğrisi ve ben o rotada hobi yok diliyorum.
Piotr Kula

1
Bu aradığım şey gibi geliyor! Bunu kullanmayla ilgili kılavuz var mı? build.sh, bir grup ortam değişkeninin ayarlandığını varsayar.
Andy Smith

Muhtemelen TODO kapsamında # 4 kapsamındadır ;) Birkaç ay içinde dokunulmadı, bu yüzden ya katılan insanlar başka şeylerle meşgul ya da ilgisini kaybetti.
goldilocks

@goldilocks böylece temel rasbian görüntü nereden geliyor?
Andy Smith

3
Dürüst olacağım ve izlenimimin, XY sorununun Y tarafını çok fazla güçle takip ettiğinizi söyleyeceğim - daha basit bir yöntem olduğunu düşündüğünüz anlamına gelir (sadece bir pi üzerinde bir resim oluşturun, uzaktan oturum açma ile bilgisayara bağlanır ve görüntünün kendisi bir PC'de yapılabilen montajla değiştirilir ve tüm bunlar komut dosyası ile otomatikleştirilebilir) çok fazla güçlük çeker ve böylece umutlarınızı aslında çok fazla olan bir yönteme koydunuz. daha fazla güçlük .
goldilocks

5

Projem Nard SDK istediğiniz özelliklerin çoğuna sahip. Raspbian değil ama Raspbian ikili emülasyonu var ve bu yüzden çok yakınlar. Nard ile her şeyi bir PC'ye inşa edersiniz ve süreç çok hızlı ve tekrarlanabilir. Her şey yazılabilir ve örneğin sürekli sürekli bir entegrasyon ile yapılabilir.
http://www.arbetsmyra.dyndns.org/nard/


0

Bence , bunu önerdiğiniz şekilde yapmak (montaj, güncelleme ve yapılandırma için geçici çözümler yapmak, vb.) Gerçek çözümlerden daha fazla zorluk getirir . Tabii, eğer ilgileniyorsanız bunu yapmak eğlenceli olabilir, ama en iyi ve en kolay yol kaçınmak olabilir.

Pi almanızı ve üzerinde yapmanız gerekeni yapmanızı, ardından SD kartının görüntüsünü almanızı öneririm. Ardından, bu görüntü zaten yapılandırılmış olduğundan diğer Pis'inizde kullanın.

Not: Raspbian kullanacağınızı varsayacağım. Ayrıca , sık sık görüntüleri hazırlayan bazı kişiler değil, sadece ortalama bir kişi olduğunuzu varsayacağım (örneğin, Raspberry Pi Vakfı).


Adımlar eğer yapmak sizin Pi ile tamircilik:

  1. İstediğiniz yeni işletim sistemi görüntüsünü indirin ve yükleyin
  2. Ethernet kablosunu takın / WiFi'ye bağlayın
    • Pi'nizin IP adreslerini bilmiyorsanız muhtemelen bir LAN taraması yapın
  3. SSH ile bir şeyler yapın
    • apt-get update -y && apt-get upgrade paketleri güncellemek
    • Kişisel yapılandırma ihtiyaçlarınız
  4. Bir görüntü oluşturun, sonra diğer Pis için bu görüntüyü kullanın.

Adımlar eğer yok senin Pi (yukarıdaki nota bakın) ile tamircilik:

  1. Yeni işletim sistemi görüntüsünü indir
  2. Https://raspberrypi.stackexchange.com/a/13138/24224 adresindeki talimatları kullanarak resmi monte edin (bazılarının farklı FS düzenlerine sahip olduğu için hangi OS / resminiz olduğunu da düşünmeniz gerekir)
    • Bir hesap makinesi hazırlayın.
  3. Bul debiçin dosya her paket Güncellemeden istediğiniz artı onların bağımlılıklarını artı bu bağımlılıklar bağımlılıkları , artı bu bağımlılıklar bağımlılıklar bağımlılıklarını . apt-offlinebir güçlük. Bu bağlantıya bakın
    • Ardından Pi'nizi kullanmadan / tamir etmeden tüm bu paketleri kurmanın bir yolunu bulun. apt-getçevrimdışı çalışmaz. deb dosya ayrıntıları burada . İyi şanslar.
  4. Pi çekirdeklerini ve alt düzey öğeleri güncelleyin Hexxeh'in aracını
  5. Gereksinimlerinize göre yapılandırın
  6. Değiştirilmiş resmi Pis'in SD kartlarına yazın.

Pi'nizle uğraşmamanın bir yararı görmüyorum.

Pi'nizle kendinizi biraz gevşetin ve tamir yapın. Bunu sadece bir kez yapmanız yeterlidir.


Programları manuel olarak elde etmek neredeyse imkansızdır, bağımlılıklar ve orada bağımlılıklar, ve orada bağımlılıklar vb. uris. Bu bir bağlantı listesi verecektir; indirdikten sonra, bunları / var / cache / apt / archives / partial içine koyun ve yüklemek için dpkg -i partial / *. deb komutunu çalıştırın. Daha da iyisi, Synaptics'i alırsanız, paket indirme komut dosyası oluşturma seçeneği vardır. Bu betiği bir Linux Bilgisayarda çalıştırın ve paketlerinizi alın. Sonra bunları tekrar synaptics ile kurabilirsiniz.
NULL

@NULLThen find a way to install all of those packages without using/tinkering with your Pi.
PNDA

@NULL Bildiğim kadarıyla dpkg, monte edilmiş bir görüntüde değil, yalnızca sistemin kendisinde kullanabilirsiniz . Ayrıca, OP bilgisayarını kullanmayı planlıyor, bu yüzden *.debsahip olduğunuz dosyalar ilk etapta yanlış bir mimari için (PC x86 / x64, Pi ARMv6 / v7)
PNDA

Sorumda belirttiğim gibi, ben 1 yapmak istemiyorum. 2 gelince, bu fındık geliyor :). @Flakeshakes önerisinin 2'den daha zor olduğunu düşündüren nedir?
Andy Smith

@AndySmith goldilock adlı kullanıcının yorumu alıntılayacağım: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

Bence aradığın şey bir çeşit (software) configuration management. Bununla bir stok raspbian görüntüsünü önyükleyebilir ve ardından kendi yapılandırmanızı (yeni paketler ve benzeri dahil) itebilirsiniz. Orada çok sayıda SCM sistemi var. Dezavantajı, bu sistemlerin çoğunun büyük ölçekli ağları desteklemeyi amaçlaması ve bu nedenle belki de amacınız için biraz fazla doldurulmasıdır. Ayrıca bir tür sağlama sunucusuna ihtiyacınız vardır. En popüler SCM'ler Kukla , Şef , Ansible gibi görünüyor . Başlamanız için makaleler:

Bu bir tür genel cevap ama SCM geniş bir alandır. Belki de planlarınızın ne olduğuna bağlı olarak bu konuya değinmeye değer.


Ansible umut verici görünüyor çünkü ajansız ve çalıştırmak için tam bir üflemeli sunucuya ihtiyacınız yok.
duenni

1
Gerçekten değil, görüntünün zaten inşa edilmesini istiyorum, üzerinde çalıştığım bir şey değil. Pi'mizin bir ağ bağlantısı yoksa bu öneri çalışmaz.
Andy Smith
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.