AmigaOS 4 mittels Qemu auf einem emulierten Pegasos 2

Alles rund um Amiga OS4 selbst

Moderator: OS4Welt-Team

Maijestro
Beiträge: 527
Registriert: 23. Dezember 2022 15:49
Hat sich bedankt: 181 Mal
Danksagung erhalten: 138 Mal

Re: AmigaOS 4 mittels Qemu auf einem emulierten Pegasos 2

Beitrag von Maijestro »

Hier noch mal kurz die Bestätigung eines Windows Users:

Hostsystem OS: Windows10_Home (Version 22H2), Ethernet über "Intel Wi-Fi 6 AX200"-Adapter

QEmu 8.2.93 & BBoot 0.7 mit folgender Start-Batch:

Code: Alles auswählen

qemu-system-ppc -M pegasos2 -m 2048 ^
-kernel bboot/bboot -initrd bboot/Kickstart.zip ^
-vga none -device sm501 ^
-drive if=none,id=hd,file=pegasos2.img,format=raw -device ide-hd,drive=hd,bus=ide.0 ^
-drive if=none,id=cd,file=amigaos41_custom.iso,format=raw -device ide-cd,drive=cd,bus=ide.1 ^
-drive file=fat:rw:qemu_freigabe,id=ufat,format=raw,if=none -device usb-storage,drive=ufat ^
-device rtl8139,netdev=net0 -netdev user,id=net0 ^
-rtc base=localtime ^
-display gtk ^
-serial stdio
Version vom rtl8139.device: 53.4 (10.09.2014)

Screenshots aus Ranger und SysMon die relevant sein könnten und ein Test per ping: https://imgur.com/a/d2GFE2a
(Hinweis: IBrowse mit amiga-news.de ist im Hintergrund geöffnet)

Das sollte dann noch mal bestätigen das es wirklich MacOs/Linux bezogen ist.
Joerg
Beiträge: 125
Registriert: 3. Oktober 2009 03:51
Danksagung erhalten: 5 Mal

Re: AmigaOS 4 mittels Qemu auf einem emulierten Pegasos 2

Beitrag von Joerg »

balaton hat geschrieben: 16. April 2024 20:45BBoot kann 64bit BARs patchen so der Kernel der nur 32 BARs kennt kann die sehen aber es handelt kein PCIe Bridge noch also kann nur gfx Karten fixen die von der Firmware erkennt sind. Anderen mit Bridge vielleicht benötigen noch ein Kernel Update.
Dann war das was von BBoot gefixed wird wohl nur für echte Radeon HD/RX gfx Karten (pass-trough) auf emuliertem Pegasos2 nötig?
Auf jeden Fall kann die Pegasos2 SmartFirmware nicht mit (PCIe) hardware mit 64 bit BARs umgehen und muss entweder von BBoot, oder mittels OpenFirmware Forth Scripts, repariert werden.
Maijestro
Beiträge: 527
Registriert: 23. Dezember 2022 15:49
Hat sich bedankt: 181 Mal
Danksagung erhalten: 138 Mal

Re: AmigaOS 4 mittels Qemu auf einem emulierten Pegasos 2

Beitrag von Maijestro »

Joerg hat geschrieben: 17. April 2024 19:38
balaton hat geschrieben: 16. April 2024 20:45BBoot kann 64bit BARs patchen so der Kernel der nur 32 BARs kennt kann die sehen aber es handelt kein PCIe Bridge noch also kann nur gfx Karten fixen die von der Firmware erkennt sind. Anderen mit Bridge vielleicht benötigen noch ein Kernel Update.
Dann war das was von BBoot gefixed wird wohl nur für echte Radeon HD/RX gfx Karten (pass-trough) auf emuliertem Pegasos2 nötig?
Auf jeden Fall kann die Pegasos2 SmartFirmware nicht mit (PCIe) hardware mit 64 bit BARs umgehen und muss entweder von BBoot, oder mittels OpenFirmware Forth Scripts, repariert werden.
Balaton Zoltan hat es mir so erklärt...

Zitat:

Die größere Änderung in BBoot 0.7 ist die Korrektur der Pegasos2-Interrupts, die
sogar für echte Pegasos2-Maschinen interessant sein könnte, da dies einen
Kernel-Fehler korrigiert, bis ein neues Kernel-Update veröffentlicht wird. Dies sollte
Stabilität verbessern, wenn eine Menge Interrupts von mehreren Geräten erzeugt werden.

Wenn ich es richtig verstanden habe geht es auch um PCI zu PCIe Brücken wodurch es möglich wäre neuere Grafikkarten im echten Pegasos2 benutzen zu können und natürlich scheint auch Hans Probleme mit VirtioGPU für Qemu gehabt zu haben was die Probleme löste. Also sollte es Qemu sowie auch echte Pegasos2 Hardware zu gute kommen.
Joerg
Beiträge: 125
Registriert: 3. Oktober 2009 03:51
Danksagung erhalten: 5 Mal

Re: AmigaOS 4 mittels Qemu auf einem emulierten Pegasos 2

Beitrag von Joerg »

Maijestro hat geschrieben: 17. April 2024 19:53
Bei BBoot 0.7 im Vergleich zu 0.6 geht es ausschließlich um die Interrupt Probleme, sowohl auf QEmu als auch auf echten Pegasos2.
Betrifft eigentlich alle Hardware Treiber, bei einigen wie Virtue-GPU und rtl8139 ethernet kommt das Problem nur sehr viel öfter vor als bei anderen.
Alles andere, wie 64 Bit BARs hinter PCIe Bridges, ist schon länger ein Problem, aber nicht direkt davon abhängig und würde sehr viel zusätzliche Arbeit, entweder im AmigaOS 4 Kernel, oder, falls überhaupt möglich, in BBoot erfordern.
balaton
Beiträge: 17
Registriert: 12. Dezember 2023 22:45
Danksagung erhalten: 2 Mal

Re: AmigaOS 4 mittels Qemu auf einem emulierten Pegasos 2

Beitrag von balaton »

@Joerg
Es ist nicht SmartFirmare die mit 64 Bit BARs nicht umgehen kann sondern der pegasos2 AmgiaOS Kernel. So weit ich mir erinnern kann SmartFirmware erkennt und beschreibt 64 Bit BARs im Device Tree aber weil AmigaOS kernel nur 32 Bit BARs kennt ignoriert er diese und damit kann nicht die Karte programmieren. Wenn ein BAR im 32 Bit address space passt, dann kann man es im Device Tree ändern so es als 32 Bit BAR erscheint und dann erkennt es auch der Kernel. BBoot kann dass machen und angeblich es gibt auch ein Kernel fix schon dafür aber das ist noch nicht veröffentlicht.
Das problem mit Karten hinter Brücken ist unabhängig und weil die Firmware kennt die Brücke nicht diese Karten auch nicht im Device Tree beschrieben sind und auch nicht mit dem BIOS Emulator initialisiert also dieses zu fixen wäre nicht so einfach.
Wenn man neuere karten mit QEMU PCI pass through an dem Gast übergibt kann die Karte für pegasos2 nur als eine PCI Karte präsentiert werden weil der pegasos2 nur PCI hat. Ob das mit PCIe karten funktionieren kann weiss ich nicht, aber viellecht doch wenn die PCIe extended config Space ist nicht benutzt. Mit PCI pass through auch der BIOS Emu ist nicht nötig weil der Host sollte die Karte schon initialisiert aber viellecht geht es dann nur einmal per reboot.
Benutzeravatar
IconDesigner
Beiträge: 417
Registriert: 29. Dezember 2016 17:00
Hat sich bedankt: 23 Mal
Danksagung erhalten: 25 Mal

Re: AmigaOS 4 mittels Qemu auf einem emulierten Pegasos 2

Beitrag von IconDesigner »

So Leute,

möchte nun auch mal mein Test von @Cyborg neuen Version 53.7 mit Euch Teilen.

Code: Alles auswählen

sudo qemu-system-ppc64 -L pc-bios -M pegasos2 -cpu 7447 
-kernel /home/thomasp/peg2emu/bboot-0.7/bboot 
-initrd /home/thomasp/peg2emu/Kickstart.zip -m 2048 
-object memory-backend-file,id=mem,size=2048,mem-path=/dev/shm/qemu-ram,share=on 
-vga none -device sm501 
-drive if=none,id=cd,file=/home/thomasp/peg2emu/AOS-PRG.iso,format=raw -device ide-cd,drive=cd,bus=ide.1 
-drive if=none,id=hd,file=/home/thomasp/peg2emu/peg2hd.img,format=raw -device ide-hd,drive=hd,bus=ide.0 
-drive if=none,id=usbstick,file=/dev/sdc -device usb-ehci,id=ehci -device usb-storage,bus=ehci.0,drive=usbstick 
-drive file=fat:rw:/home/thomasp/qemu-share/,id=exfat,format=raw,if=none -device usb-storage,drive=exfat  -drive format=raw,file=/dev/sda 
-device es1370,addr=0x08 
-device rtl8139,addr=0x09,netdev=tap0 -netdev user,hostfwd=tcp::21-:21,hostfwd=tcp::9000-:9000,hostfwd=tcp::9001-:9001,hostfwd=tcp::9002-:9002,hostfwd=tcp::9003-:9003,hostfwd=tcp::9004-:9004,id=tap0,hostname=qemu-peg2,net=192.168.122.1/22,dhcpstart=192.168.122.5 
-rtc base=localtime 
-serial stdio -display gtk,gl=on,zoom-to-fit=on 
-full-screen
kleine Besonderheit: ist ein TAP Netzwerk.
test-rtl8139.device-linux.png
Fazit, ich bin mit den neuen Treiber zufrieden!
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Peg2/G4 1GB Ram, Radeon 9250, 1 TB SSD plus 4 GB HDD und AmigaOS 4.1 FE
A4000D/60-PPC 128 MB Ram, CV-PPC, 4 GB HDD und AmigaOS 3.9 >>>RIP<<<
A4000D/60 64 MB Ram, CV-64, 4 GB HDD und AmigaOS 3.5
WinUAE und AmigaOS 4.1 FE Classic
Qemu auf Linux; 2GB Ram und AmigaOS 4.1 FE für Peg2
Joerg
Beiträge: 125
Registriert: 3. Oktober 2009 03:51
Danksagung erhalten: 5 Mal

Re: AmigaOS 4 mittels Qemu auf einem emulierten Pegasos 2

Beitrag von Joerg »

balaton hat geschrieben: 17. April 2024 22:35 Wenn man neuere karten mit QEMU PCI pass through an dem Gast übergibt kann die Karte für pegasos2 nur als eine PCI Karte präsentiert werden weil der pegasos2 nur PCI hat. Ob das mit PCIe karten funktionieren kann weiss ich nicht, aber viellecht doch wenn die PCIe extended config Space ist nicht benutzt.
Sollte kein Problem sein da PCIe Grafikkarten auf echten AmigaOne XE und Sam440 mit P17C9X PCIe Brücke funktionieren, obwohl die jeweiligen U-Boot Versionen und AmigaOS4 Kernel natürlich keine PCIe Unterstützung haben.
Auf dem AmigaOne XE zwar ziemlich unbrauchbar, nicht im PCI66 Slot, nur in einem der PCI33 Slots, und auch nur ohne Interrupts, aber solche Hardware Probleme spielen bei einem QEmu emulierten AmigaOne XE ja keine Rolle.

Pegasos2, echt und emuliert, könnte aber ein Problem damit haben.
balaton
Beiträge: 17
Registriert: 12. Dezember 2023 22:45
Danksagung erhalten: 2 Mal

Re: AmigaOS 4 mittels Qemu auf einem emulierten Pegasos 2

Beitrag von balaton »

IconDesigner hat geschrieben: 18. April 2024 01:17

Code: Alles auswählen

sudo qemu-system-ppc64 -L pc-bios -M pegasos2 -cpu 7447 
...
-object memory-backend-file,id=mem,size=2048,mem-path=/dev/shm/qemu-ram,share=on 
...
-drive if=none,id=usbstick,file=/dev/sdc -device usb-ehci,id=ehci -device usb-storage,bus=ehci.0,drive=usbstick 
...
-device rtl8139,addr=0x09,netdev=tap0 -netdev user,hostfwd=tcp::21-:21,hostfwd=tcp::9000-:9000,hostfwd=tcp::9001-:9001,hostfwd=tcp::9002-:9002,hostfwd=tcp::9003-:9003,hostfwd=tcp::9004-:9004,id=tap0,hostname=qemu-peg2,net=192.168.122.1/22,dhcpstart=192.168.122.5 
...
-serial stdio -display gtk,gl=on,zoom-to-fit=on 
-full-screen
I don't have time to write comments in German now so a few comments in English:
- Why do you have -cpu 7447? The default is 7457 so no -cpu option should be needed.
- What's with the shared ram? If you don't want to access it from the host then '-m 2048' is enough to set memory size, no need to define a memory backend.
- Exposing a mounted USB stick to guest is a bad idea because then writing it from both host and guest would break the file system on it. Instead unmount it from host then use -device usb-host,... to pass it through the USB device to guest. (The options above passes the physical disk for usb-storage so not sure it's mounted but it's better to detach it from host's usb driver (eject) and use USB pass through to pass the whole device to let the guest driver handle it and not emulate a usb-storage over host driver.)
- If you use -display then you can add ,full-screen=on to that instead of a separate -full-screen option.
kleine Besonderheit: ist ein TAP Netzwerk.
That's not a tap network but user/slirp network. The id can be anything but the netdev sets the network type. Tap network would be -netdev tap. There's some docs here: https://www.linux-kvm.org/page/Networking but maybe some commands are now should be done with the ip command on modern Linux distros.
A tap network with a bridge is like vmnet-bridged on macOS and user network is like vmnet-shared on macOS. I wonder why you don't get -netdev user work on macOS but does it work with vmnet-shared then? Also maybe 'info network' command in QEMU monitor might give some info for debugging.
Maijestro
Beiträge: 527
Registriert: 23. Dezember 2022 15:49
Hat sich bedankt: 181 Mal
Danksagung erhalten: 138 Mal

Re: AmigaOS 4 mittels Qemu auf einem emulierten Pegasos 2

Beitrag von Maijestro »

@balaton

Info Network über Qemu Monitor gibt nicht wirklich brauchbares an Informationen wie ich finde. Du solltest besser beim Englisch schreiben bleiben es klingt inhaltlich doch besser ;-)

Netdev Slirp:
Bildschirmfoto 2024-04-18 um 16.53.08.png
VMNET:
Bildschirmfoto 2024-04-18 um 16.54.50.png
@IconDesigner

Wie hast du das CPU Docky oben in der Tasklleiste zum laufen bekommen? Ich kann mich noch daran erinnern das es mit G4 CPU vom Pegasos2 echt wie auch emuliert nicht kompatibel war/ist und es immer 100% CPU Last angezeigt hat.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Maijestro
Beiträge: 527
Registriert: 23. Dezember 2022 15:49
Hat sich bedankt: 181 Mal
Danksagung erhalten: 138 Mal

Re: AmigaOS 4 mittels Qemu auf einem emulierten Pegasos 2

Beitrag von Maijestro »

@Cyborg

Ich bin mir nicht sicher ob du noch an dein Treiber arbeitest, aber ab und zu kommt es vor das es ein DSI/GURU unter AmigaOs4.1 gibt. Es ist eher selten scheint aber genau dann zu passieren wenn Qemu die Verbindung zum Internet verlieren tut. Ich hänge dir den log mit an.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Antworten