Ich versuche, ein Netzwerkprogramm (wie Nginx) auf RISC-V auszuführen.gibt es eine Möglichkeit, Netzwerk (Socket) Programm in RISC-V ausführen?
Ich bin mir nicht bewusst, Netzwerkgeräte auf RISC-V, und ich möchte es nicht selbst implementieren, also bin ich auf der Suche nach dem anderen Weg.
Zuerst habe ich versucht, ein einfaches Programm auszuführen, das eine HTTP-Anfrage an die angegebene Adresse sendet. Es löst die IP-Adresse mit gethostbyname
auf und sendet eine HTTP-Anfrage.
Ich lief erfolgreich Riscv-Linux auf Spike-Simulator und kompilierte das Programm und führte es aus. gethostbyname
gibt Unknown server error
zurück, und wenn ich die IP-Adresse direkt verwende, gibt connect
Network is unreachable
Fehler zurück.
Ich habe festgestellt, dass der Front-End-Server fesvr
Systemaufrufe verarbeiten kann, die vom RISC-V-Prozessor weitergeleitet werden, und dachte, dass es möglicherweise Netzwerk-bezogene Systemaufrufe verarbeiten wird. Ich fand auch fesvr-eth
und dachte, vielleicht ist es etwas im Zusammenhang mit der Handhabung von Netzwerkdiensten, aber nach this link ist es nur für die Verbindung von fesvr
läuft auf dem PC auf der Entwicklungskarte von Ethernet. Auch fesvr-eth
wurde aus dem letzten Git Repo entfernt.
So jetzt möchte ich schauen und risk-v Linux und sehen, wie es tatsächlich Netzwerksystem Anrufe wie connect
handhaben. Ich denke, wenn die Netzwerkoperationen nur innerhalb localhost
durchgeführt werden, kann es ohne ein Netzwerkgerät ordnungsgemäß behandelt werden. Oder es kann eine einfache Möglichkeit geben, fesvr
zu erweitern, um Netzwerkdienste zu behandeln.
Fasst man die Fragen:
- ist es eine Möglichkeit, Netzwerk-Anwendungen in RISC-V zu laufen, dass ich verpasst?
- können Netzwerkdienste tatsächlich verarbeitet werden, wenn die Anforderung vom selben Host stammt, auch wenn keine Netzwerkgeräte vorhanden sind?
- andere Kommentare oder Referenzen, die hilfreich sein können?
Danke. Ich habe das 'ifconfig' Applet in' busybox' hinzugefügt und den Befehl 'ifconfig lo: 127.0.0.1 netmask 255.0.0.0 up' verwendet, um das Loopback-Netzwerk einzurichten. Dann habe ich einen einfachen Echo-Server und -Client ausgeführt, aber der Server und der Client hängen jeweils auf "accept" und "connect". loopback network scheint korrekt eingerichtet zu sein, denn wenn ich das Programm starte, ohne es einzurichten, schlägt "connect" mit "network unreachable" fehl. Ich werde den Kommentar hinzufügen, wenn ich Updates habe. –