AmigaOS 4 mittels Qemu auf einem emulierten Pegasos 2

Alles rund um Amiga OS4 selbst

Moderator: OS4Welt-Team

Maijestro
Beiträge: 494
Registriert: 23. Dezember 2022 15:49
Hat sich bedankt: 175 Mal
Danksagung erhalten: 132 Mal

Re: AmigaOS 4 mittels Qemu auf einem emulierten Pegasos 2

Beitrag von Maijestro »

Joerg hat geschrieben: 6. April 2024 22:20
Maijestro hat geschrieben: 6. April 2024 21:58 @Cyborg

Durch langzeit tests und etwas mehr zeit um zu testen hat sich leider bestätigt das es immer noch zu Netzwerk abbrüche kommt der test Treiber funktioniert in etwa so wie Version 53.4 :-(
Dieses Problem gibt es scheinbar nur mit QEmu auf Linux und MacOS, aber nicht mit QEmu auf Windows, unabhängig von der verwendeten rtl8139.device Version, daher ist ein Bug in QEmu sehr viel wahrscheinlicher als ein Bug im AmigaOS Treiber.
Dem stimme ich zu....es ist sporadisch je nach Sitzung hat man eine stabile Internetverbindung oder halt nicht nicht. Aber dennoch war es mit Version 53.6 schon nach einigen Minuten reproduzierbar und dennoch funktioniert diese neue Version sehr viel besser als die Version von Update 2.
Maijestro
Beiträge: 494
Registriert: 23. Dezember 2022 15:49
Hat sich bedankt: 175 Mal
Danksagung erhalten: 132 Mal

Re: AmigaOS 4 mittels Qemu auf einem emulierten Pegasos 2

Beitrag von Maijestro »

Joerg hat geschrieben: 6. April 2024 22:20
Maijestro hat geschrieben: 6. April 2024 21:58 @Cyborg

Durch langzeit tests und etwas mehr zeit um zu testen hat sich leider bestätigt das es immer noch zu Netzwerk abbrüche kommt der test Treiber funktioniert in etwa so wie Version 53.4 :-(
Dieses Problem gibt es scheinbar nur mit QEmu auf Linux und MacOS, aber nicht mit QEmu auf Windows, unabhängig von der verwendeten rtl8139.device Version, daher ist ein Bug in QEmu sehr viel wahrscheinlicher als ein Bug im AmigaOS Treiber.
Die Version ist schon entscheidend, denn mit dem letzten Treiber kann ich es nicht mehr reproduzieren, so wie ich es mit anderen Treiber Versionen davor eindeutig tuen konnte.
Joerg
Beiträge: 123
Registriert: 3. Oktober 2009 03:51
Danksagung erhalten: 4 Mal

Re: AmigaOS 4 mittels Qemu auf einem emulierten Pegasos 2

Beitrag von Joerg »

Maijestro hat geschrieben: 7. April 2024 08:08Die Version ist schon entscheidend, denn mit dem letzten Treiber kann ich es nicht mehr reproduzieren, so wie ich es mit anderen Treiber Versionen davor eindeutig tuen konnte.
Ich benutzte QEmu zwar nicht selbst, aber laut Kommentaren von Windows QEmu Usern auf amigans.net funktionieren unter Windows alle Versionen von rtl8139.device.
Die Probleme die Du und andere damit haben, und die je nach Version unterschiedlich sein können, gibt es nur wenn man QEmu auf MacOS oder Linux benutzt.
Maijestro
Beiträge: 494
Registriert: 23. Dezember 2022 15:49
Hat sich bedankt: 175 Mal
Danksagung erhalten: 132 Mal

Re: AmigaOS 4 mittels Qemu auf einem emulierten Pegasos 2

Beitrag von Maijestro »

Joerg hat geschrieben: 7. April 2024 08:27
Maijestro hat geschrieben: 7. April 2024 08:08Die Version ist schon entscheidend, denn mit dem letzten Treiber kann ich es nicht mehr reproduzieren, so wie ich es mit anderen Treiber Versionen davor eindeutig tuen konnte.
Ich benutzte QEmu zwar nicht selbst, aber laut Kommentaren von Windows QEmu Usern auf amigans.net funktionieren unter Windows alle Versionen von rtl8139.device.
Die Probleme die Du und andere damit haben, und die je nach Version unterschiedlich sein können, gibt es nur wenn man QEmu auf MacOS oder Linux benutzt.
Also bleibt es weiterhin ein Rätsel....dennoch funktioniert der Test Treiber viel besser mit SMB2/FTP also übertragen von Daten übers Netzwerk das kann kein Zufall sein. Wie dem auch sei, für mich funktioniert dieser Treiber mit am besten, also gab es bereits eine Verbesserung diesbezüglich.
Benutzeravatar
Cyborg
AmigaOS Entwickler
Beiträge: 3537
Registriert: 28. September 2009 11:10
Hat sich bedankt: 13 Mal
Danksagung erhalten: 37 Mal

Re: AmigaOS 4 mittels Qemu auf einem emulierten Pegasos 2

Beitrag von Cyborg »

Wie ich in der Beschreibung des Problems in diesem und diesem Beitrag bereits sagte, befüllt Qemu den Rx Descriptor offensichtlich nicht so, wie es echte 8139-Chips machen.

Da ich selbst auf Mac unterwegs bin, konnte ich das Problem nachstellen und einen Workaround dafür bauen. Wenn jetzt aber immer klarer wird, daß dieses Problem tatsächlich nur in Qemu für Linux/Mac auftritt, dann ist es scheinbar tatsächlich so, daß der Fehler eben in Qemu zu suchen ist und nicht in meinem Treiber. Wie gesagt, er hält sich an die offizielle 8139-Dokumentation.

Von meiner Seite aus kann ich nicht mehr tun, als den Workaround, den ich bereits einbaute. Das Maß der Dinge für mich als Treiberentwickler bleibt eben auch die echte Hardware und nicht die Emulation, für die ebenso die echte Hardware das Maß der Dinge sein sollte.
.. der SysOp hat immer recht :evil:

PGP Schlüssel verfügbar
balaton
Beiträge: 15
Registriert: 12. Dezember 2023 22:45
Danksagung erhalten: 2 Mal

Re: AmigaOS 4 mittels Qemu auf einem emulierten Pegasos 2

Beitrag von balaton »

@Joerg
Wenn man das QEMU rtl8139 Device Model anschaut sieht man dass das Statusfeld ist nur im C+ Modus und nur für erfolgreich empfangenen Paketen geschrieben. Der AmigaOS Treiber aber benutzt die Karte im C Modus und will dieses Statusfeld lesen wenn ein Fehler auftritt aber QEMU schreibt das nicht im C Modus und auch nicht für Error Pakete im C+ Modus (aber das ist nicht benutzt von der Treiber). Wenn es auf Windows nicht passiert könnte es nur darauf legen dass dort Netzwerk ist langsamer oder für was auch immer der Fehler nicht auftritt wo es zum hängen führt und nur auf Linux und macOS geht es so schnell das die Puffern sind gefüllt. Oder Leute die auf Windows probierte benutzte es einfach nicht so viel dass das Problem auftrat.
Mit der letzte Treiber Version dieses Problem soll gelöst sein also wenn es immer noch Probleme gibt das ist ein anderes Bug anderswo. Es könnte sein es gibt was in libslirp oder QEMU auch aber ohne es wir in AmigaOS seite erst verstehen was passiert wenn es stoppt wir kann es nicht finden. Also auch wenn es ein Bug in QEMU ist muss man auf AmigaOS seite debuggen wenn die Trace Logs von QEMU zeigen nichts.
(Soll ich mit Deutsch aufhören und lieber auf Englisch schreiben oder ist es verstehbar was ich schreibe?)
Maijestro
Beiträge: 494
Registriert: 23. Dezember 2022 15:49
Hat sich bedankt: 175 Mal
Danksagung erhalten: 132 Mal

Re: AmigaOS 4 mittels Qemu auf einem emulierten Pegasos 2

Beitrag von Maijestro »

@Cyborg

Ich stimme dir zu du hast bereits ein Workround eingebaut in den Test Treiber und dem entsprechend funktioniert er jetzt auch, Verbindungen Netzwerkseitig sind stabiler wie vorher und dafür bin ich dir dankbar auch wenn es immer noch nicht perfekt ist. Und ja Qemu sollte sich vorrangig an echte Hardware die sie versucht zu emulieren orientieren und nicht das Treiber an Qemu angepasst werden müssen weil Qemu vielleicht einige Funktionen nicht bereitstellt die aber auf echte Hardware verwendet werden bzw. es anders macht.

@balaton

Vielleicht sollten wir das Problem den Qemu Entwicklern schildern das man den fehlenden Modus C wie ihr ihn beschrieben habt den Emulationstreiber hinzufügt. Ich bin mir nicht sicher ob das möglich ist das der Emulationstreiber C+ wie auch C Modus gleichzeitig verwenden kann. Ich bin mir auch nicht mal sicher ob ein Virtio Netzwerktreiber für AmigaOs4.1 die Lösung bringen könnte.

Gestern gab es ein "libslirp" update über Homebrew vielleicht ist auch hier in den neuen Version etwas kaputt gegangen. Aber das erklärt nicht warum es auch Probleme mit VMNET gibt.

ps. dein Deutsch ist in Ordnung ich verstehe es gut.
Benutzeravatar
Cyborg
AmigaOS Entwickler
Beiträge: 3537
Registriert: 28. September 2009 11:10
Hat sich bedankt: 13 Mal
Danksagung erhalten: 37 Mal

Re: AmigaOS 4 mittels Qemu auf einem emulierten Pegasos 2

Beitrag von Cyborg »

@balaton
Nur, damit wir auch vom Selben sprechen (ich habe im früheren Post nämlich aus Versehen auf den C+ Rx Descriptor Header verwiesen): ich spreche vom "Receive Packet Header", wie er in https://www.cs.usfca.edu/~cruse/cs326f0 ... sGuide.pdf auf Seite 8 beschrieben ist. Der dürfte niemals 0x0000 sein, ist es in Qemu (Mac) aber.

Hast Du für mich einen Link zum Sourcefile der RTL8139-Emulation in Qemu? Dann schau ich halt dort auch mal nach, ob ich was sehe.

@Maijestro
Eine andere Netzwerkemulation als RTL8139 ist auch nur ein Workaround, um das eigentliche Problem herum, keine Lösung dafür. Zumal ein virtio-Treiber erst noch geschrieben werden müßte, was ich zwar tun könnte, aber lieber wäre mir eine wirkliche Lösung für die RTL8139-Emulation.
.. der SysOp hat immer recht :evil:

PGP Schlüssel verfügbar
Joerg
Beiträge: 123
Registriert: 3. Oktober 2009 03:51
Danksagung erhalten: 4 Mal

Re: AmigaOS 4 mittels Qemu auf einem emulierten Pegasos 2

Beitrag von Joerg »

Cyborg hat geschrieben: 8. April 2024 07:55Hast Du für mich einen Link zum Sourcefile der RTL8139-Emulation in Qemu? Dann schau ich halt dort auch mal nach, ob ich was sehe.
https://github.com/qemu/qemu/blob/maste ... /rtl8139.c
Benutzeravatar
Cyborg
AmigaOS Entwickler
Beiträge: 3537
Registriert: 28. September 2009 11:10
Hat sich bedankt: 13 Mal
Danksagung erhalten: 37 Mal

Re: AmigaOS 4 mittels Qemu auf einem emulierten Pegasos 2

Beitrag von Cyborg »

Es gibt noch eine neue Wendung: ein Betatester hat mir gemeldet, daß der Treiber mit Qemu-Workaround auf seinem X1000 nicht funktioniert und keine Netzwerkverbindung möglich ist. Das ist natürlich nicht akzeptabel und wäre klar das Aus für diesen Workaround, sollte sich das Problem entsprechend bestätigen.

Umso klarer wird, daß die eigentliche Ursache in Qemu gefunden und behoben werden muß.
.. der SysOp hat immer recht :evil:

PGP Schlüssel verfügbar
Antworten