Image Kompatibilität RevPi Connect und RPi 3B

Rund um die Hardware des Revolution Pi
Post Reply
afh
Posts: 2
Joined: 19 Mar 2020, 06:43
Answers: 0

Image Kompatibilität RevPi Connect und RPi 3B

Post by afh »

Hallo zusammen,

gibt es bekannte Probleme, wenn ich das Imaga eines RevPi Connect auf einen RPi 3 B spielen?

Konkret möchte ich das Image eines RevPi Connect, auf dem ein MQTT Broker läuft für einen Maschinensimulation auf einen handelsüblichen RPi 3 B flashen. Die Idee dabei ist, dass dann für einen Test handelsübliche Netzteile etc. ausreichend sind. CAN Module etc. werden nicht benötigt.

Vielen Dank und Grüße
User avatar
lukas
Expert
Posts: 186
Joined: 13 Feb 2017, 10:29
Answers: 0

Re: Image Kompatibilität RevPi Connect und RPi 3B

Post by lukas »

Im Prinzip sollte das funktionieren.

Wenn du bei einem frischen Image beim ersten Einloggen nach Produkttyp, Seriennummer und MAC-Adresse gefragt wirst, kannst du die Abfrage mit Strg+C abbrechen. Anschließend kannst du mit "touch /home/pi/.revpi-factory-reset" dafür sorgen, dass die Nachfrage zukünftig unterbleibt. Das Passwort des User "pi" bleibt dadurch "raspberry".

Falls revpi-factory-reset bereits ausgeführt wurde, solltest du in /boot/config.txt die Zeile "dtoverlay=revpi-connect" auskommentieren.

Außerdem dürfte es noch empfehlenswert sein, in /etc/modules das piControl-Modul auszukommentieren, so dass es beim Booten nicht mehr automatisch geladen wird.

Unsere Images sind auf minimale Dateisystem-Größe geschrumpft und werden erst beim erstmaligen Einloggen auf die volle Größe des eMMC "aufgeblasen". Das beschleunigt das Flashen des Images. Wenn du aber revpi-factory-reset mit Strg+C abbrichst, unterbleibt diese Vergrößerung. Du hast also nur minimalen freien Platz auf dem Dateisystem. Das kannst du beheben, indem du folgende Zeilen aus /usr/sbin/revpi-factory-reset mit copy+paste in eine Shell übernimmst. Damit kannst du ein frisches RevPi Image auf die volle Größe der SD-Karte in deinem RasPi 3B erweitern:

Code: Select all

# resize root partition
dev=mmcblk0
total_size="$(/bin/cat /sys/block/$dev/size)"
last_part="$(cd /dev ; /bin/ls ${dev}p* | /usr/bin/tail -1)"
last_part_start="$(/bin/cat /sys/block/$dev/$last_part/start)"
last_part_size="$(/bin/cat /sys/block/$dev/$last_part/size)"
last_part_max="$(($total_size - $last_part_start))"
if [ "$last_part_size" -lt "$last_part_max" ] ; then
        /sbin/sfdisk -q --dump "/dev/$dev" | /bin/sed -r -e "\$!n
\$s/size=[^,]+/size=$last_part_max/" | /sbin/sfdisk -q -f --no-reread --no-tell-kernel "/dev/$dev"
        /sbin/partprobe "/dev/$dev"
        /sbin/resize2fs "/dev/$last_part"
fi
Achtung: Wenn die SD-Karte im RasPi 3B größer ist, als es später das eMMC auf dem Connect sein wird, kannst du das Image nicht von der SD-Karte nehmen und auf den Connect flashen. Du musst es erst wieder auf minimale Größe schrumpfen. Wie das geht, kannst du dir von unserem customize_image.sh Script abgucken. Wenn dein Image z.B. als Datei vorliegt, die du als loop-Device mounten kannst, dann lauten die Befehle wie folgt:

Code: Select all

IMAGE=mein-image.img
LOOPDEVICE=$(losetup -f)
losetup "$LOOPDEVICE" "$IMAGE"
partprobe "$LOOPDEVICE"

# shrink image to speed up flashing
resize2fs -M "$LOOPDEVICE"p2
PARTSIZE=$(dumpe2fs -h "$LOOPDEVICE"p2 | egrep "^Block count:" | cut -d" " -f3-)
PARTSIZE=$(($PARTSIZE * 8))   # ext4 uses 4k blocks, partitions use 512 bytes
sfdisk --dump "$LOOPDEVICE" | /bin/sed -r -e "\$!n
\$s/size=[^,]+/size=$PARTSIZE/" | /sbin/sfdisk "$LOOPDEVICE"
PARTSTART=$(cat /sys/block/$(basename "$LOOPDEVICE")/$(basename "$LOOPDEVICE"p2)/start)
truncate -s $((512 * ($PARTSTART + $PARTSIZE))) "$IMAGE"

delpart "$LOOPDEVICE" 1
delpart "$LOOPDEVICE" 2
losetup -d "$LOOPDEVICE"
afh
Posts: 2
Joined: 19 Mar 2020, 06:43
Answers: 0

Re: Image Kompatibilität RevPi Connect und RPi 3B

Post by afh »

Funktioniert einwandfrei.
Außerdem dürfte es noch empfehlenswert sein, in /etc/modules das piControl-Modul auszukommentieren, so dass es beim Booten nicht mehr automatisch geladen wird.
Wichtig: auf jeden Fall in /etc/modules das Modul auskommentieren. Sonst bootet der Raspi nicht und meldet einen Fehler beim Laden der Kernel-Module.

Vielen Dank für die Hilfe!
Post Reply