Raspbian Image anpassen?

  • Hallo Zusammen!

    Ich plane grade ein Projekt was bei Freunden und Verwandten, entgegen meiner Erwartungen ( :D ), auf große Begeisterung gestoßen ist.
    Jetzt stehe ich vor dem "Problem", dass die Realisierung vermutlich sehr viel Zeit in Anspruch nehmen wird, vor allem Software-/Konfigurationsseitig.

    Also stelle ich mir die Frage, ob (oder eher wie) ich ein Raspbian Image so anpassen kann, dass die meisten (oder gar alle) notwendigen Konfigurationen schon nach der Installation fertig sind.

    Dass würde Cronjobs, Shell-Skripte und installierte Pakete miteinschließen.

    Windoof-Images konnte und kann man ja immer noch mit speziellen Programmen mit Treiber usw füttern, doch wie funktioniert das bei einem Debian Linux?

    Hoffentlich könnt ihr mir helfen, das würde mir jeeede menge Arbeit ersparen!

    Mfg
    Dimmi

  • Hallo Dimmi,

    Du kannst von jedem für Dein Vorhaben geeignetes Image ausgehen, dort bei fast allen Images Zusatzprogramme entwickeln, installieren, konfigurieren, autostarten etc.

    Wenn Du von der endgültigen Version ein Image ziehst und auf neue SD-Karten flashst, dann wird die neue SD-Karte so funktionieren wie zuletzt auch Dein Original.

    Du musst nur dafür sorgen, dass das Image kleiner als die SD-Karte ist (es gibt nämlich SD-Karten, die sich geringfügig in der wahren Größe unterscheiden. Fehlen ein paar Bytes, dann stellt dies für einige User nicht überwindbare Hürden dar).

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

  • Einfach mal als Idee, ich bin mir nicht sicher ob es das ist, wonach du suchst: du richtest alles so ein, wie es sein sollte und kopierst die SD-Karte auf einem andern System, bzw. erstellst daraus ein Image.

    Ich habe mir zu diesem Zweck unter Windows mit Oracle Virtual Box eine Linux VM eingerichtet, das hat mir das Erstellen eines Images, das ich weitergeben konnte erleichtert. Es hat ein bisschen gedauert, bis ich kapiert habe, wie das Image aufgebaut ist (eine FAT Partition zum Booten und eine Linux Partition mit Raspian) aber es ist eigentlich kein grosses Problem. Auf das Image muss natürlich ggf. noch sowas wie ein Konfigurations-Script.

  • Danke für den Hinweis!

    Die Möglichkeit mit dd kannte ich schon, ist aber nicht das was ich möchte. Also ja, funktionieren würde es vermutlich auch, allerdings möchte ich mir lieber ein "richtiges" Installationsmedium erstellen.

    Ich habe jetzt echt verdammt lange suchen müssen, bis ich was gescheites im Netz gefunden haben. Auf raspberry.tips gibt es eine recht gute Anleitung wie man ein Image individualisiert per debootstrap erstellen kann.
    Ob diese Methode dann alle meine Wünsche abdeckt bleibt abzuwarten :D
    Allerdings denke ich das, da man sich per Terminal in dem Image wie gewohnt bewegen kann.

    pgloor und Andreas
    Eben das möchte ich eben nicht, hatte mit dieser Methode schon des öfteren Probleme und bin für mich zu dem Schluss gekommen, dass es nicht das Gelbe vom Ei ist...

    Ich kann mich ja noch mal melden wenn ich es ausprobiert habe.

    Erstmal aber Vielen Dank!

    Edited once, last by Dimmi52 (March 31, 2016 at 12:17 PM).


  • Also stelle ich mir die Frage, ob (oder eher wie) ich ein Raspbian Image so anpassen kann, dass die meisten (oder gar alle) notwendigen Konfigurationen schon nach der Installation fertig sind.

    Das Image erstellen ist die einfachste Sache. Ich nehme dazu unter Windows ODIN. Der Win32DiskImager wird zwar überwiegend von den Raspianern benutzt, aber er beherrscht keine Kompression. Wenn Du aber ein Image entwickelst, wirst Du mehrere Stände speichern wollen - und da spart Kompression einiges an Platz. Zu drei Image Tools habe ich hier mal etwas dazu geschrieben.

    Mit dieser Einleitung komme ich gleich zu Empfehlung Nummer 1: Die SD karte sollte so klein wie möglich sein, wenn Du von mehreren Ständen ein Image erstellen willst und Platz sparen möchtest. Beispiel: 5 Images einer 16 GB Karte, von denen nur 1,2 GB belegt sind, benötigen 80 GB Platz ohne Kompression. Mit einer 2 GB Karte sind es nur noch 10 GB. Und mit Kompression nur noch um die 2 GB. Eigene Images anpassen und erstellen mache ich sehr häufig und nehme dafür nur 2GB Karten (mit Jessie Lite).

    Einige Konfigurationsdateien kann man "auslagern". Das ist zwar unter Sicherheitsaspekten nicht so der Hit, aber wenn die Umgebung stimmt, ist das eine elegante Möglichkeit, wichtige Startparameter auch von "außen" beeinflussen zu können. Das sind zum Beispiel Netzwerkeinstellungen. Von "außen" heißt bei mir: SD-Karte in einen beliebigen Rechner (Windows, MAC, Linux), die Konfiguration anpassen, Karte in den Raspi, booten und läuft. Dazu werden die Konfigurationsdateien auf die /boot Partition ausgelagert. Diese ist FAT32 und kann von allen möglichen Rechnern, Kaffeemaschinen und Toastern gelesenund beschrieben werden. ;) Folgende Schritte sind dazu als root auf dem Raspi notwendig:

    Code
    $ sudo su -
    $ mkdir /boot/conf
    $ cp /etc/network/interfaces /boot/conf/interfaces.conf
    $ mv /etc/network/interfaces /etc/network/interfaces.original
    $ ln -s /boot/conf/interfaces.conf /etc/network/interfaces
    $ cp /etc/ssh/sshd_config /boot/conf/sshd.conf
    $ mv /etc/ssh/sshd_config /etc/ssh/sshd_config.original
    $ ln -s /boot/conf/sshd.conf /etc/ssh/sshd_config

    Vorausgesetzt, Du nutzt noch das alte init-V und noch nicht systemd. Dann muss das Ganze natürlich angepasst werden. Aber ich Denke, das Prinzip wird hier klar. Wenn Du auch noch wpa_supplicant nutzt, sollten die Dateien dazu auch mit ausgelagert werden. Jetzt könntest Du zum Beispiel ein Image erstellen und Deine Bekannten könnten dann die WLAN Konfiguration anpassen, bevor die Karte in den Raspi kommt und gebootet wird.

    Was nicht unbedingt notwendig ist, aber die Entwicklung etwas erleichtern kann: Erstell Dir auf der /boot Partition noch eine autorun.inf. Dort kannst Du neben den typischen autorun.inf-Parametern auch noch weitere informationen zu Deinem Image aufnehmen. Bei mir sieht die zum Beispiel so aus:

    Code
    [AutoRun]
    label=MY-PI [Basic]
    icon=\conf\MY-PI.ico
    
    
    [MY-PI]
    Project=Basic
    Version=0.1.0

    Das Icon musst Du Dir natürlich erstellen und in das conf-Verzeichnis kopieren. Dann siehst Du auch unter Windows gleich, was Deine Pi Bootpartition ist. :D

    Das war es eigentlich. Wenn Du noch weitere wichtige Konfigurationsdateien hast, die von außen geändert werden sollen/müssen, dann einfach nach dem beschriebenen Verfahren auslagern - that's it. :cool:


    [TOM]

  • Hallo,

    ich habe ein ähnliches Projekt vor der Nase (habe hier in einem anderen Thread nach MAC-basierter IP-Anpassung gefragt) und vielleicht gibt es ja noch mehr Leute, die sowas brauchen könnten.

    Von anderen Systemen (z.B. AVR Net-IO oder Arduino) kenne ich sowas wie "Bootloader". Das könnte man m.E. im RasPi mit den vielen Möglichkeiten, die er hat, ziemlich Elegant abbilden und sogar "standardisieren". Die Abfolge wäre dann etwa so:

    - Raspi startet beim ersten Start entweder mit DHCP oder gibt sich eiine fixe "blockierte" IP

    - er ruft dann von einem Server - ganz ähnlich wie apt-get - eine Konfigurationsdatei ab, die z.B. abhängig vom Image-Stand oder anderen zur Verfügung stehenden Parametern (die Zukunft wird ja vermutlich vieles bringen)

    - er führt sein Setup aus und führt dann (ggf.) ein reboot aus

    Im Prinzip kann dasselbe sogar immer durchgeführt werden ... wann immer der RasPi startet, führt der diese Routine durch (oder auch nicht, je nach vorhergegangener Installation). Das kann auch sicher gemacht werden, in dem mit Tickets und Verschlüsselung gearbeitet wird ... aber das wäre dann Schritt 2.

    Hat jemand Interesse, gemeinsam so etwas "generalisiert" aufzusetzen? Oder gibts das vielleicht sogar schon (sorry bin im Linux/RasPi Umfeld Newbie)?

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!