This shows you the differences between two versions of the page.
mld:tutorials:mld_und_noobs [2018/03/16 20:57] helo |
mld:tutorials:mld_und_noobs [2018/03/16 21:27] (current) |
||
---|---|---|---|
Line 13: | Line 13: | ||
Das kann dann auch so aussehen: | Das kann dann auch so aussehen: | ||
+ | |||
+ | {{:mld:tutorials:noobs-menu1.png?400|}} | ||
Was wir brauchen: | Was wir brauchen: | ||
Line 34: | Line 36: | ||
$ xz -9 -e boot.tar | $ xz -9 -e boot.tar | ||
- | * "Leere" TAR-Archive (root.tar.xz und data.tar.xz) erstellen, die als Platzhalter für die System- und Daten-Partition fungieren: | + | * "Leere" TAR-Archive (root.tar.xz und data.tar.xz) erstellen, die als Platzhalter für die System- und Daten-Partition dienen: |
$ mkdir dummy | $ mkdir dummy | ||
Line 57: | Line 59: | ||
* MLD.png ist ein Bildchen für das Boot-Menu (muss wie der Ordner heißen, Großbuchstaben beachten!) | * MLD.png ist ein Bildchen für das Boot-Menu (muss wie der Ordner heißen, Großbuchstaben beachten!) | ||
+ | {{:mld:tutorials:mld.png?50|}} | ||
+ | |||
+ | * os.json gibt Infos zur Distribution (Name und Description tauchen dann im Installationsmenü auf): | ||
+ | |||
+ | <file plain os.json> | ||
+ | { | ||
+ | "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"] | ||
+ | } | ||
+ | </file> | ||
+ | |||
+ | * partitions.json legt die Größe der 3 Partitionen (partition_size_nominal), die wir für MLD benötigen, fest. Hier beispielhaft 0,3GB für die Boot-Partition, 4,9GB für System- und 9,5GB für Daten. Diese können natürlich angepasst werden. Die Boot-Partition sollte groß genug sein, da sie initial die MLD-Installationsdateien aufnehmen muss. | ||
+ | |||
+ | <file xml partitions.json> | ||
+ | { | ||
+ | "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 | ||
+ | } | ||
+ | ] | ||
+ | } | ||
+ | </file> | ||
+ | |||
+ | * partition_setup.sh macht es möglich, nach Anlegen der Partitionen und Auspacken der TAR-Files noch Anpassungen vorzunehmen. Bei der Version 5.4 wird die boot-Partition in der Datei cmdline korrigiert, damit das initscript aus dem initramfs-Paket die boot-partition beim ersten Starten von MLD nach /mnt/bootfs mounten kann: | ||
+ | |||
+ | <file xml partition_setup.sh> | ||
+ | #!/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 | ||
+ | </file> | ||
+ | \\ | ||
+ | ===== Noobs mit MLD installieren ==== | ||
+ | |||
+ | * Den Noobs-Ordner auf die SD-Karte kopieren. Hier kann die SD-Karte (neuformatiert) aus dem ersten Schritt verwendet werden. | ||
+ | * RPi mit SD-Karte starten und die entsprechenden Distris auswählen (MLD und ggf. andere). Installation starten | ||
+ | * Nach Abschluss MLD auswählen und MLD starten lassen | ||
+ | * Im OSD unter Systeminformationen die IP-Adresse auslesen | ||
+ | * Über das WebIF auf MLD zugreifen und individuelle Installation auswählen. Bei der Boot-, System- und Daten-Partition die richtigen Einträge wählen (hier sich am besten nach der Größe orientieren), alle Löschen und Kopieren-Optionen anklicken und installieren | ||
+ | * Reboot | ||
+ | | ||
+ | Menu bei einer Noobs-Installation mit je einmal LibreElec und MLD: | ||
+ | |||
+ | {{:mld:tutorials:noobs-menu2.png?400|}} | ||
+ | |||
+ | Die Partition-Table unter MLD zeigt dann folgendes: | ||
+ | |||
+ | <code> | ||
+ | MLD> fdisk -l | ||
+ | |||
+ | Disk /dev/mmcblk0: 31.1 GB, 31104958464 bytes | ||
+ | 4 heads, 16 sectors/track, 949248 cylinders | ||
+ | Units = cylinders of 64 * 512 = 32768 bytes | ||
+ | |||
+ | Device Boot Start End Blocks Id System | ||
+ | /dev/mmcblk0p1 129 53620 1711724+ e Win95 FAT16 (LBA) <--- Noobs Installations-Partition | ||
+ | /dev/mmcblk0p2 53620 949120 28656019+ 5 Extended | ||
+ | /dev/mmcblk0p5 53633 54656 32767 83 Linux <--- NOOBS Settingspartition. | ||
+ | /dev/mmcblk0p6 54657 71040 524287 c Win95 FAT32 (LBA) <--- Libreelec (SYSTEM) | ||
+ | /dev/mmcblk0p7 71041 466048 12640255 83 Linux <--- Libreelec (STORAGE) | ||
+ | /dev/mmcblk0p8 * 466049 478336 393215 b Win95 FAT32 <--- MLD Boot | ||
+ | /dev/mmcblk0p9 478337 635264 5021695 83 Linux <--- MLD System/Root | ||
+ | /dev/mmcblk0p10 635265 949120 10043392 83 Linux <--- MLD Data | ||
+ | </code> | ||
+ | |||
+ | \\ | ||
+ | ===== Tipps ===== | ||
+ | |||
+ | * Remote Anpassungen der Noobs-Installationsdateien: | ||
+ | |||
+ | Wenn man schon installiert hat, aber nochmals Änderungen vornehmen möchte (z.B. neue boot.tar.gz, andere Partitionsgrößen, ...), kann man dies auch remote machen. Hierzu geht man über ssh auf das laufende MLD bzw. die gerade laufende Distri und mountet die Noobs-Installations-Partition. Über WinSCP o.ä. kann man dann die Dateien unter /mnt/mmcblk0p1/os/MLD anpassen oder neu hochladen | ||
+ | |||
+ | <code> | ||
+ | MLD> mkdir -p /mnt/mmcblk0p1 | ||
+ | MLD> mount /dev/mmcblk0p1 /mnt/mmcblk0p1 | ||
+ | MLD> ls -l /mnt/mmcblk0p1/os/MLD | ||
+ | -rwxrwxr-x 1 root root 185664252 Mar 14 00:13 boot.tar.xz | ||
+ | -rwxrwxr-x 1 root root 332 Mar 14 10:15 data.tar.xz | ||
+ | -rwxrwxr-x 1 root root 830 Jan 4 2017 MLD.png | ||
+ | -rwxrwxr-x 1 root root 217 Mar 14 10:17 os.json | ||
+ | -rwxrwxr-x 1 root root 642 Mar 14 12:46 partition_setup.sh | ||
+ | -rwxrwxr-x 1 root root 604 Mar 14 12:48 partitions.json | ||
+ | -rwxrwxr-x 1 root root 256 Mar 14 00:24 root.tar.xz | ||
+ | </code> | ||
+ | Dann RPI neu starten und <Shift> drücken, damit komplett N E U aus /dev/mmcblk0p1 installiert wird. Damit spart man sich das Abstöpseln der SD-Card. | ||
+ | |||
+ | * Nachträgliche Anpassungen für die bestehenden Partitionen: | ||
+ | |||
+ | Man kann Namen und Beschreibung der Distributionen nach Installation im Noobs-Menü nachträglich abändern. Am Beispiel: | ||
+ | |||
+ | <code> | ||
+ | MLD> mkdir /mnt/mmcblk0p5 | ||
+ | MLD> mount /dev/mmcblk0p5 /mnt/mmcblk0p5 | ||
+ | MLD> cat /mnt/mmcblk0p5/installed_os.json | ||
+ | [ | ||
+ | { | ||
+ | "bootable" : true, | ||
+ | "description" : "LibreELEC is a fast and user-friendly Kodi Entertainment Center distribution.", | ||
+ | "folder" : "/mnt/os/LibreELEC_RPi2", | ||
+ | "icon" : "/mnt/os/LibreELEC_RPi2/LibreELEC_RPi2.png", | ||
+ | "name" : "LibreELEC_RPi2", | ||
+ | "partitions" : [ | ||
+ | "/dev/mmcblk0p6", | ||
+ | "/dev/mmcblk0p7" | ||
+ | ], | ||
+ | "release_date" : "2018-01-21", | ||
+ | "supported_models" : [ | ||
+ | "Pi 2", | ||
+ | "Pi 3" | ||
+ | ] | ||
+ | }, | ||
+ | { | ||
+ | "bootable" : true, | ||
+ | "description" : "VDR based on MLD.", | ||
+ | "folder" : "/mnt/os/MLD", | ||
+ | "icon" : "/mnt/os/MLD/MLD.png", | ||
+ | "name" : "MLD", | ||
+ | "partitions" : [ | ||
+ | "/dev/mmcblk0p8", | ||
+ | "/dev/mmcblk0p9", | ||
+ | "/dev/mmcblk0p10" | ||
+ | ], | ||
+ | "release_date" : "2018-02-01", | ||
+ | "supported_models" : [ | ||
+ | "Pi 2", | ||
+ | "Pi 3" | ||
+ | ] | ||
+ | } | ||
+ | ] | ||
+ | </code> | ||
+ | |||
+ | Die Partition /dev/mmcblk0p5 ist quasi so eine Art Partition-Table für die installierten Distributionen. An dieser Stelle könnte man auch durch Ändern der Partitions-Angaben die Root-Partitionen auf einen USB-Stick auslagern. | ||
+ | |||
+ | * Re-Install von MLD | ||
+ | |||
+ | Wenn eine neue Version von MLD installiert werden soll, aber die anderen bestehenden Distributionen wie bsp. LibreElec unverändert lassen willst, dann reicht es, die Installationsdateien des neuen MLD-Images in die Boot-Partition zu kopieren. Die Boot-Partition vorher leer machen, damit die neuen Dateien reinpassen, ggf. noch cmdline und config.txt wegsichern und dann neu booten. Im Noobs-Menu MLD auswählen und das Spiel mit "Unpacking" beginnt von vorne... | ||
+ | |||
+ | |||
+ | * "Händische" Anpassung bei der Installation unter 5.3: | ||
+ | |||
+ | Beim Schritt "Individuelle Installation" im WebIF die beigefügte Datei in das Verzeichnis /etc/setup ins Noobs-MLD hochladen, um alle Partitionen sichtbar zu machen. | ||
+ | |||
+ | {{:mld:tutorials:install.sh.tar|}} | ||
+ | |||
+ | Über ssh dann | ||
+ | |||
+ | <code> | ||
+ | mv /etc/setup/install.sh.tar /etc/setup/install.sh | ||
+ | chmod 755 /etc/setup/install.sh | ||
+ | </code> | ||
+ | |||
+ | Im WebIF die Seite neu laden und dann müssten alle Partitionen sichtbar sein, Partitions auswählen (hier p8, p9, p10), alles anklicken und installieren. | ||