Jump to content
Not connected, Your IP: 3.144.48.72
hakanrw

Eddie CLI is working on RISC-V architecture (riscv64)

Recommended Posts

Posted ... (edited)

Dear members,

As you might know, on the Eddie downloads page for Linux, there is no option for RISC-V architecture 64 bits (riscv64). However, since Eddie is open source, I managed to obtain the source and build it for riscv64. I can confirm that it is working without any issues.
I attached my build of the riscv64 Eddie client to this post. You can extract it and run via eddie-cli or dotnet eddie-cli.dll. Make sure you have .NET 9 SDK installed, I linked it below.
 

Required software:
 
- .NET SDK 9 for riscv64 (Release v9.0.0-preview.7.24405.7 · filipnavara/dotnet-riscv (github.com) - courtesy of filipnavara)

- Make sure your kernel was built with the following flags. Some vendors ship kernels that lack some features that Eddie need.
CONFIG_NF_NAT=y
CONFIG_NF_NAT_AMANDA=y
CONFIG_NF_NAT_FTP=y
CONFIG_NF_NAT_IRC=y
CONFIG_NF_NAT_SIP=y
CONFIG_NF_NAT_TFTP=y
CONFIG_NF_NAT_REDIRECT=y
CONFIG_NF_NAT_MASQUERADE=y
CONFIG_NFT_NAT=y
CONFIG_NETFILTER_XT_NAT=y
CONFIG_NF_NAT_PPTP=y
CONFIG_NF_NAT_H323=y
CONFIG_IP_NF_NAT=y
CONFIG_IP6_NF_NAT=y
 
(Optional) (If you want to build it yourself)

 Build steps:
1. Obtain Eddie source (AirVPN/Eddie: UI/CLI for OpenVPN/WireGuard (github.com))
2. Traverse into src/App.CLI.Linux/
3. Open App.CLI.Linux.net7.csproj and change <TargetFramework>net7.0</TargetFramework` to <TargetFramework>net9.0</TargetFramework>.
4. Remove the lines containing PublishSingleFile, SelfContained, PublishReadyToRun
5. Run dotnet build. This will take a while.
6. The command will fail with an error mentioning postbuild.sh. This part we will need to do manually.
  - Run ../Lib.Platform.Linux.Native/build.sh Debug shared
  - Run cp ../Lib.Platform.Linux.Native/bin/libLib.Platform.Linux.Native.so ./bin/Debug/net9.0/
  - Run ../App.CLI.Linux.Elevated/build.sh Debug STANDARD
  - Run cp ../App.CLI.Linux.Elevated/bin/eddie-cli-elevated ./bin/Debug/net9.0/
7. Copy resources folder via cp -r ../../resources ./bin/Debug/net9.0/res
8. Ready to go! cd into ./bin/Debug/net9.0 and run eddie-cli with eddie-cli or dotnet eddie-cli.dll.

 

eddie-riscv64.tar.gz

Edited ... by hakanrw

Share this post


Link to post

What I deduce from this is that Eddie-CLI can run on .NET Core. In fact, I just successfully built it with dotnet build and ran it with dotnet eddie-cli! Wicked. Thank you for this.

The GUI (App.Forms.Linux) on the other hand seems to reference .NET 4.x for which the only runtime seems to be Mono. That's a shame, I was looking forward to a less grinding GUI experience. :(
 

19 hours ago, hakanrw said:

- .NET SDK 9 for riscv64 (Release v9.0.0-preview.7.24405.7 · filipnavara/dotnet-riscv (github.com) - courtesy of filipnavara)


I suppose you made it a requirement because there are no riscv64 builds of dotnet <9.0 anywhere?

NOT AN AIRVPN TEAM MEMBER. USE TICKETS FOR PROFESSIONAL SUPPORT.

LZ1's New User Guide to AirVPN « Plenty of stuff for advanced users, too!

Want to contact me directly? All relevant methods are on my About me page.

Share this post


Link to post
2 hours ago, OpenSourcerer said:

What I deduce from this is that Eddie-CLI can run on .NET Core. In fact, I just successfully built it with dotnet build and ran it with dotnet eddie-cli! Wicked. Thank you for this.

Indeed! You're welcome :)
 
2 hours ago, OpenSourcerer said:

The GUI (App.Forms.Linux) on the other hand seems to reference .NET 4.x for which the only runtime seems to be Mono. That's a shame, I was looking forward to a less grinding GUI experience. :(

The GUI seems to depend on Windows Forms, which .NET Core on Linux does not provide, only the older Mono implementation provides this. There would need to be some code rewriting to move the GUI from old Mono Winforms to a newer & cross-platform .NET GUI solution, e.g. Avalonia. Unless the devs decide to take this responsibility, Mono needs to be used, unfortunately.
 
2 hours ago, OpenSourcerer said:
I suppose you made it a requirement because there are no riscv64 builds of dotnet <9.0 anywhere?
That is correct. As far as I understand, .NET is not completely ready on riscv64 at official capacity. Thus, I obtained whichever .NET build for riscv64 I could find first, which happened to be .NET 9 preview. Later, I also came accross this .NET 8 build, which would also probably work.

All in all, it is impressive that Eddie is working for this architecture (albeit unofficially). I hope Eddie developers will release packaged riscv64 builds on the download page, after .NET for riscv64 is ready and stable.

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Security Check
    Play CAPTCHA Audio
    Refresh Image

×
×
  • Create New...