This is an old revision of the document!
Im folgenden wird beschrieben, wie MLD beim Installieren von Noobs als weitere Distribution eingebunden werden kann. Das Ganze wurde für MLD 5.3 und 5.4 erfolgreich umgesetzt. Bei der Version 5.3 muss während des Installationsprozesses allerdings nochmals “händisch” eingegriffen werden. Der entsprechende Forumsbeitrag zum Thema:
Siehe auch https://github.com/raspberrypi/noobs/wiki/Adding-custom-OS-version-examples .
Aus Wikipedia:
Noobs lässt sich von der Webseite der Raspberry Pi Foundation herunterladen (als ZIP-Datei), entpacken und auf eine mit dem Dateisystem FAT32 vorformatierte SD-Karte (für Raspberry Pi A und B) oder einer Mikro-SD-Karte (für Raspberry Pi A+, B+, sowie 2 und 3) abspeichern. Nachdem die (Mikro-)SD-Karte in den Raspberry Pi gesteckt wurde, lässt sich per Mausklick das Betriebssystem auswählen, welches installiert werden soll. Dieses wird dann sofort heruntergeladen und auf dem Raspberry Pi installiert. Nach der Installation kann man mit einem weiteren Mausklick das gewünschte Betriebssystem starten. Dies setzt voraus, dass alle Peripheriegeräte wie Monitor, Tastatur und LAN-Kabel/WLAN bereits angeschlossen sind.
Vorteil ist, dass man mit einer SD-Card mehrere Distributionen hosten und beim Hochfahren über Tastatur, Maus oder Fernbedienung entscheiden kann, welches System booten soll, z.B. Raspbian, MLD einer bestimmten Version, LibreElec etc…
Das kann dann auch so aussehen:
Was wir brauchen:
Für MLD werden auf der Noobs-SD-Card drei Partitionen angelegt, nämlich Boot, System (Root) und Daten (Video). Für alle drei Partitionen werden die Größen festgelegt (siehe später “partitions.json”) und entsprechende TAR-Archive für jede Partition vorbereitet. Das TAR-Archive für die Bootpartition enthält die Installationsdateien aus dem MLD-Image. Für die TAR-Archive der System- und Datenpartition werden “leere” TAR-Archive generiert.
$ cd $HOME $ mount | egrep sdX <---- Device der eigenen Umgebung entnehmen /dev/sdbX on /media/<USER>/MLD type vfat ... $ tar -cvf boot.tar -C /media/<USER>/MLD ./ <---- Mountverzeichnis der eigenen Umgebung entnehmen $ xz -9 -e boot.tar
$ mkdir dummy $ echo -e "README.txt\nThis is a tar file for you to use as a placeholder for a partition during Noobs installation." >dummy/README.txt $ tar -cvf root.tar -C dummy ./ $ xz -9 -e root.tar $ cp root.tar.xz data.tar.xz
boot.tar.xz data.tar.xz MLD.png os.json partition_setup.sh partitions.json root.tar.xz
{ "name": "MLD", "version": "5.4", "release_date": "2018-02-01", "kernel": "4.14.18", "description": "VDR based on MLD.", "username": "root", "password": "mld500", "supported_models": ["Pi 2","Pi 3"] }
{ "partitions": [ { "label": "boot", "filesystem_type": "FAT", "partition_size_nominal": 384, "want_maximised": false, "uncompressed_tarball_size": 256 }, { "label": "root", "filesystem_type": "ext4", "partition_size_nominal": 4904, "want_maximised": false, "mkfs_options": "", "uncompressed_tarball_size": 10 }, { "label": "data", "filesystem_type": "ext4", "partition_size_nominal": 9808, "want_maximised": false, "mkfs_options": "", "uncompressed_tarball_size": 10 } ] }
#!/bin/sh set -ex if [ -z "$part1" ] || [ -z "$part2" ] || [ -z "$part3" ]; then printf "Error: missing environment variable part1, part2 or part3\n" 1>&2 exit 1 fi mkdir -p /tmp/1 /tmp/2 /tmp/3 mount "$part1" /tmp/1 mount "$part2" /tmp/2 mount "$part3" /tmp/3 bootuuid=$(blkid $part1 -o value -s UUID) sed /tmp/1/cmdline -i -e "s|root=[^ ]*|root=UUID=${bootuuid}|" #sed /tmp/1/cmdline -i -e "s|root=[^ ]*|root=${part2}|" #sed /tmp/2/etc/fstab -i -e "s|^.* / |${part2} / |" #sed /tmp/2/etc/fstab -i -e "s|^.* /boot |${part1} /boot |" umount /tmp/1 umount /tmp/2 umount /tmp/3
Menu bei einer Noobs-Installation mit je einmal LibreElec und MLD: