我想在RISC-V上運行一些網絡程序(如nginx)。有沒有辦法在RISC-V中運行網絡(套接字)程序?
我不知道RISC-V上可用的網絡設備,我不想自己實現它,所以我正在尋找其他方式。
首先,我嘗試運行簡單的程序,發送HTTP請求到給定的地址。它使用gethostbyname
解析IP地址併發送HTTP請求。
我成功地在秒殺模擬器上運行riscv-linux,編譯並運行它。 gethostbyname
返回Unknown server error
,當我直接使用IP地址時,connect
返回Network is unreachable
錯誤。
我發現前端服務器fesvr
可以處理從RISC-V處理器轉發的系統調用,並且認爲它可能會處理與網絡相關的系統調用。我還發現fesvr-eth
,並認爲它可能與處理網絡服務有關,但根據this link,它只是用於將PC上運行的fesvr
通過以太網連接到開發板。另外fesvr-eth
已從最新的git回購中刪除。
所以現在我想看看risc-v linux,看看它是如何處理像connect
這樣的網絡系統調用。我想也許如果網絡操作只在localhost
內完成,那麼可以在沒有網絡設備的情況下正確處理它。或者可以通過簡單的方式來擴展fesvr
以處理網絡服務。
總結問題:
- 有沒有辦法運行在RISC-V的網絡應用,我錯過了什麼?
- 如果請求來自同一主機,即使沒有網絡設備,網絡服務是否可以實際處理?
- 任何其他可能有用的評論或引用?
謝謝。我在'busybox'中加入了'ifconfig' applet,並使用'ifconfig lo:127.0.0.1 netmask 255.0.0.0 up'命令來設置環回網絡。然後,我運行簡單的echo服務器和客戶端,但服務器和客戶端分別掛在'accept'和'connect'上。迴環網絡似乎設置正確,因爲如果我沒有設置它而運行該程序,'connect'會因'網絡不可達'而失敗。如果我有更新,我會添加評論。 –