(Victron Energy) Venus OS: Unterschied zwischen den Versionen
Zeile 39: | Zeile 39: | ||
Die einfachste Startvariante (ohne Optionen) waere neben der Maschine einfach noch ein Diskimage anzugeben. | Die einfachste Startvariante (ohne Optionen) waere neben der Maschine einfach noch ein Diskimage anzugeben. | ||
− | Mal mit | + | Mal mit 2020-02-13-raspbian-buster in /opt/QEMU/Buster probieren. |
− | 16 GB SDCard erzeugen;-) | + | 4/8/16 GB SDCard erzeugen;-) |
− | dd if=/dev/ | + | dd if=/dev/irgendein.img bs=1024 count=16777216 |
oder | oder | ||
Zeile 55: | Zeile 55: | ||
</pre> | </pre> | ||
− | + | Ich war zu voreilig. Das Anlegen einer virtuellen SD-Karte benoetigt man nur wenn man das "Image" in Form einer Dateisammlung vorliegen hat. Im Falle 'buster' steckt in dem zip das img drin. Diese z.B. 2020-02-13-raspbian-buster.img beinhaltet alles was man braucht. In ihm stecken 2 Partitionen (boot und root), die man nach dem Erstellen des LOOP-Devices auch beide mounten kann/muss. | |
− | + | Zuerst mal nur losetup eingeben um eine freie Loop-Device-Nummer zu finden. | |
− | + | losetup -P /dev/loopX 2020-02-13-raspbian-buster.img (X = Nummer eines freies LOOP-Device) | |
− | + | fdisk /dev/loopX | |
− | + | zeigt die 2 Partitionen. | |
+ | |||
+ | mount /dev/loopXp1 /mnt/sdcard_boot | ||
+ | |||
+ | mount /dev/loopXp2 /mnt/sdcard_root | ||
losetup -d /dev/loopX | losetup -d /dev/loopX | ||
Zeile 160: | Zeile 164: | ||
[[Datei:QEMU Raspi Buster Startup.png|1000px]] | [[Datei:QEMU Raspi Buster Startup.png|1000px]] | ||
+ | |||
+ | Jetzt noch schnell mit 'pi' und 'raspberry' auf der Konsole anmelden und los geht's. | ||
+ | |||
+ | Mist. Maus und Tastatur im GUI gehen nicht. Der Hinweis hier brachte keinen Erfolg. Der Bootvorgang blieb haengen ebenso bei den Optionen: | ||
+ | |||
+ | -device usb-mouse -device usb-kbd -show-cursor | ||
+ | |||
+ | Sobald irgendwas mit USB aktiviert wird gibt's eine CPU Exception. | ||
=Bei Gelegenheit= | =Bei Gelegenheit= | ||
[https://obenschlaefer.com/low-budget-energiemonitor-victron-venus-os-mit-raspberry-pi-obenschlaefer/] | [https://obenschlaefer.com/low-budget-energiemonitor-victron-venus-os-mit-raspberry-pi-obenschlaefer/] |
Version vom 1. November 2022, 08:02 Uhr
Inhaltsverzeichnis
Allgemeines
Images
Die Images (CerboGX, RasPi u.a.) findet man unter https://updates.victronenergy.com/feeds/venus/release/images/
oder hier https://professional.victronenergy.com/downloads/firmware/
Die 'swu'-Varianten beziehen sich vermutlich auf SWUpdate https://updates.victronenergy.com/feeds/venus/release/images/
Die 'large'-Varianten beinhalten zusaetzlich den Node-RED- und SignalK-Support.
Hinweise: https://stackoverflow.com/questions/68895797/swupdate-error-no-suitable-swu-image-found
VenusOS mit QEMU
Das waere zum Testen eine Erleichterung. So richtig gefunden habe ich zu dem Thema nichts verwertbares. Ein Versuch ist hier dokumentiert.
Mein aktueller QEMU ist die Version 5.2.0.
qemu-system-arm --help QEMU emulator version 5.2.0 (SUSE Linux Enterprise 15) Copyright (c) 2003-2020 Fabrice Bellard and the QEMU Project developers usage: qemu-system-arm [options] [disk_image] 'disk_image' is a raw hard disk image for IDE hard disk 0
Mit
qemu-system-arm -machine help
erhaelt man eine Uebersicht ueber die unterstuetzten Hardwareplatformen. Mit raspi2(b) koennte es klappen, raspi3 und raspi4 werden (noch) nicht unterstuertzt.
Die einfachste Startvariante (ohne Optionen) waere neben der Maschine einfach noch ein Diskimage anzugeben.
Mal mit 2020-02-13-raspbian-buster in /opt/QEMU/Buster probieren.
4/8/16 GB SDCard erzeugen;-)
dd if=/dev/irgendein.img bs=1024 count=16777216
oder
qemu-img create noobliteqemu.img 16G
Die beiden Ergebnisse von 'dd' und 'qemu-img' habe ich noch nicht verglichen. qemu-img ist viel maechtiger. dd und andere Befehle wie compare, convert, check, ... sind in qemu-img als subcommand integriert. Die unterstuetzten Formate lassen erahnen was mit qemu-img noch alles moeglich ist (Stichwort: VirtualBox, vmware).
Supported formats: blkdebug blklogwrites blkverify bochs cloop compress copy-on-read dmg file ftp ftps gluster host_cdrom host_device http https iscsi iser luks nbd nfs null-aio null-co nvme qcow qcow2 qed quorum raw rbd replication sheepdog ssh throttle vdi vhdx vmdk vpc vvfat
Ich war zu voreilig. Das Anlegen einer virtuellen SD-Karte benoetigt man nur wenn man das "Image" in Form einer Dateisammlung vorliegen hat. Im Falle 'buster' steckt in dem zip das img drin. Diese z.B. 2020-02-13-raspbian-buster.img beinhaltet alles was man braucht. In ihm stecken 2 Partitionen (boot und root), die man nach dem Erstellen des LOOP-Devices auch beide mounten kann/muss.
Zuerst mal nur losetup eingeben um eine freie Loop-Device-Nummer zu finden.
losetup -P /dev/loopX 2020-02-13-raspbian-buster.img (X = Nummer eines freies LOOP-Device)
fdisk /dev/loopX
zeigt die 2 Partitionen.
mount /dev/loopXp1 /mnt/sdcard_boot
mount /dev/loopXp2 /mnt/sdcard_root
losetup -d /dev/loopX
Anmerkungen:
Beim Anlegen des Loop-Device gibt man am besten die Option -P mit an. Damit werden vom Kernel dann auch moegliche Partitionen loopXp1, loopXp2, ... gleich mit angeboten.
Die passende DTB-Datei ist entweder bcm2709-rpi-2-b.dtb oder bcm2710-rpi-2-b.dtb. Das urspruengliche DTS-Datei koennte u.a. von hier stammen. Um aber zum Beispiel den Inhalt von zwei dtb Dateien zu vergleichen ist es einfacher sie erst in den Quellcode umzuwandeln. Dazu dient der DeviceTreeCompiler (dtc). Mit z.B. dem Kommando
dtc -I dtb -O dts bcm2710-rpi-2-b.dtb > bcm2710-rpi-2-b.dts
laesst sich der DeviceTree lesbar machen. Z.B. hat mich gewundert, dass es 2 raspi2 dtbs gibt aber kein Hinweis auf den Unterschied. Hier die Aufloesung.
diff bcm2709-rpi-2-b.dts bcm2710-rpi-2-b.dts 5,6c5,6 < compatible = "raspberrypi,2-model-b\0brcm,bcm2836"; < model = "Raspberry Pi 2 Model B"; --- > compatible = "raspberrypi,2-model-b-rev2\0brcm,bcm2837"; > model = "Raspberry Pi 2 Model B rev 1.2"; 55c55 < coefficients = <0xfffffde6 0x635d8>; --- > coefficients = <0xfffffde6 0x64960>; 67c67 < ranges = <0x7e000000 0x3f000000 0x1000000 0x40000000 0x40000000 0x40000>; --- > ranges = <0x7e000000 0x3f000000 0x1000000 0x40000000 0x40000000 0x1000>; 800c800 < compatible = "brcm,bcm2836-thermal"; --- > compatible = "brcm,bcm2837-thermal"; 989,991c989,992 < compatible = "arm,cortex-a7"; < reg = <0xf00>; < clock-frequency = <0x2faf0800>; --- > compatible = "arm,cortex-a53"; > reg = <0x00>; > enable-method = "spin-table"; > cpu-release-addr = <0x00 0xd8>; 997,999c998,1001 < compatible = "arm,cortex-a7"; < reg = <0xf01>; < clock-frequency = <0x2faf0800>; --- > compatible = "arm,cortex-a53"; > reg = <0x01>; > enable-method = "spin-table"; > cpu-release-addr = <0x00 0xe0>; 1005,1007c1007,1010 < compatible = "arm,cortex-a7"; < reg = <0xf02>; < clock-frequency = <0x2faf0800>; --- > compatible = "arm,cortex-a53"; > reg = <0x02>; > enable-method = "spin-table"; > cpu-release-addr = <0x00 0xe8>; 1013,1015c1016,1019 < compatible = "arm,cortex-a7"; < reg = <0xf03>; < clock-frequency = <0x2faf0800>; --- > compatible = "arm,cortex-a53"; > reg = <0x03>; > enable-method = "spin-table"; > cpu-release-addr = <0x00 0xf0>; 1213,1216c1217,1220 < v7_cpu0 = "/cpus/cpu@0"; < v7_cpu1 = "/cpus/cpu@1"; < v7_cpu2 = "/cpus/cpu@2"; < v7_cpu3 = "/cpus/cpu@3"; --- > cpu0 = "/cpus/cpu@0"; > cpu1 = "/cpus/cpu@1"; > cpu2 = "/cpus/cpu@2"; > cpu3 = "/cpus/cpu@3";
Die bcm2710-rpi-2-b.dtb ist fuer die Rev1.2 mit Cortex A53 CPU wie sie auch im Raspi3 verwendet wird.
qemu-system-aarch64 -M raspi3 -append "rw earlyprintk=ttyAMA0,115200 loglevel=8 console=ttyAMA0,115200 root=PARTUUID=ea7d04d6-02 rootfstype=ext4 rootwait" -cpu cortex-a53 -dtb boot/bcm2710-rpi-3-b.dtb -drive id=hd-root,file=2020-02-13-raspbian-buster.img,format=raw -kernel boot/kernel8.img -m 1024 -serial mon:stdio
Eine kleine Huerde gabe es noch. In der Append Option war noch die UUID der Rootpartition anzugeben. Die habe ich mit
grep UUID *
in der Boot-Partition ausgelesen.
Yahoo!
Jetzt noch schnell mit 'pi' und 'raspberry' auf der Konsole anmelden und los geht's.
Mist. Maus und Tastatur im GUI gehen nicht. Der Hinweis hier brachte keinen Erfolg. Der Bootvorgang blieb haengen ebenso bei den Optionen:
-device usb-mouse -device usb-kbd -show-cursor
Sobald irgendwas mit USB aktiviert wird gibt's eine CPU Exception.