clash-verge-rev icon indicating copy to clipboard operation
clash-verge-rev copied to clipboard

[Feature]希望后续可以增加对loongarch 64架构的支持

Open ToKingl opened this issue 1 year ago • 17 comments

Is your feature request related to a problem? Please describe.

如题,目前linux版仅支持x64和arm64架构的CPU,不支持loongarch64架构的CPU

Describe the solution you'd like

希望可以再提供一个lonngarch64版的deb包

Describe alternatives you've considered

Additional context

No response

ToKingl avatar Feb 25 '24 08:02 ToKingl

好像可以通过qemu在x64的机器上进行编译loongarch64的软件

ToKingl avatar Feb 25 '24 09:02 ToKingl

@wonfen 可以考虑一下吗?

ToKingl avatar Feb 25 '24 09:02 ToKingl

tauri https://github.com/tauri-apps/tauri/issues/8326#issue-2022070225 mihomo https://github.com/MetaCubeX/mihomo/issues/870#issue-2026083170

Cyenoch avatar Feb 25 '24 13:02 Cyenoch

tauri tauri-apps/tauri#8326 (comment) mihomo MetaCubeX/mihomo#870 (comment)

@Cyenoch 大佬,我自己尝试编译了一下,提示Unsupported architecture on Linux: loong64,但我看您发的那个第一个issues里有人说好像需要把"loongarch64-unknown-linux-gnu"加入到 Cargo.toml's target就好了,然后第二个issues里有人回复修改component/ebpf/byteorder/byteorder_littleendian.go,component/ebpf/redir/bpf_bpfel.go,component/ebpf/tc/bpf_bpfel.go这几个文件,加入loong64即可编译成功,但我编译可能还不太熟悉,没尝试成功,这个后续你们还会支持loongarch64吗?

ToKingl avatar Feb 26 '24 00:02 ToKingl

tauri tauri-apps/tauri#8326 (comment) mihomo MetaCubeX/mihomo#870 (comment)

@Cyenoch 大佬,我自己尝试编译了一下,提示Unsupported architecture on Linux: loong64,但我看您发的那个第一个issues里有人说好像需要把"loongarch64-unknown-linux-gnu"加入到 Cargo.toml's target就好了,然后第二个issues里有人回复修改component/ebpf/byteorder/byteorder_littleendian.go,component/ebpf/redir/bpf_bpfel.go,component/ebpf/tc/bpf_bpfel.go这几个文件,加入loong64即可编译成功,但我编译可能还不太熟悉,没尝试成功,这个后续你们还会支持loongarch64吗?

需要tauri支持才可以,你可能需要自己fork一份 tauri添加loongarch

clash meta也需要你fork一份,添加对loongarch

Cyenoch avatar Feb 26 '24 01:02 Cyenoch

tauri tauri-apps/tauri#8326 (comment) mihomo MetaCubeX/mihomo#870 (comment)

@Cyenoch 大佬,我自己尝试编译了一下,提示Unsupported architecture on Linux: loong64,但我看您发的那个第一个issues里有人说好像需要把"loongarch64-unknown-linux-gnu"加入到 Cargo.toml's target就好了,然后第二个issues里有人回复修改component/ebpf/byteorder/byteorder_littleendian.go,component/ebpf/redir/bpf_bpfel.go,component/ebpf/tc/bpf_bpfel.go这几个文件,加入loong64即可编译成功,但我编译可能还不太熟悉,没尝试成功,这个后续你们还会支持loongarch64吗?

需要tauri支持才可以,你可能需要自己fork一份 tauri添加loongarch

clash meta也需要你fork一份,添加对loongarch

emmm,哈哈哈哈,这个可能对于我来说有点难,得慢慢学

ToKingl avatar Feb 26 '24 01:02 ToKingl

tauri tauri-apps/tauri#8326 (comment) mihomo MetaCubeX/mihomo#870 (comment)

@Cyenoch 大佬,我自己尝试编译了一下,提示Unsupported architecture on Linux: loong64,但我看您发的那个第一个issues里有人说好像需要把"loongarch64-unknown-linux-gnu"加入到 Cargo.toml's target就好了,然后第二个issues里有人回复修改component/ebpf/byteorder/byteorder_littleendian.go,component/ebpf/redir/bpf_bpfel.go,component/ebpf/tc/bpf_bpfel.go这几个文件,加入loong64即可编译成功,但我编译可能还不太熟悉,没尝试成功,这个后续你们还会支持loongarch64吗?

需要tauri支持才可以,你可能需要自己fork一份 tauri添加loongarch

clash meta也需要你fork一份,添加对loongarch

tauri和clash meta已支持,目前的问题是当前版本依赖vite 5.0.11所依赖的rollup尚不支持loongarch,采用较低版本的vite4.5.0是可以编译通过的,但我运行时遇到了webkit错误,尚未解决

ziqi-cn avatar Feb 26 '24 02:02 ziqi-cn

tauri tauri-apps/tauri#8326 (comment) mihomo MetaCubeX/mihomo#870 (comment)

@Cyenoch 大佬,我自己尝试编译了一下,提示Unsupported architecture on Linux: loong64,但我看您发的那个第一个issues里有人说好像需要把"loongarch64-unknown-linux-gnu"加入到 Cargo.toml's target就好了,然后第二个issues里有人回复修改component/ebpf/byteorder/byteorder_littleendian.go,component/ebpf/redir/bpf_bpfel.go,component/ebpf/tc/bpf_bpfel.go这几个文件,加入loong64即可编译成功,但我编译可能还不太熟悉,没尝试成功,这个后续你们还会支持loongarch64吗?

需要tauri支持才可以,你可能需要自己fork一份 tauri添加loongarch clash meta也需要你fork一份,添加对loongarch

tauri和clash meta已支持,目前的问题是当前版本依赖vite 5.0.11所依赖的rollup尚不支持loongarch,采用较低版本的vite4.5.0是可以编译通过的,但我运行时遇到了webkit错误,尚未解决

辛苦开发者大大了

ToKingl avatar Feb 26 '24 02:02 ToKingl

tauri和clash meta已支持,目前的问题是当前版本依赖vite 5.0.11所依赖的rollup尚不支持loongarch,采用较低版本的vite4.5.0是可以编译通过的,但我运行时遇到了webkit错误,尚未解决

我看tauri的target里是没有loongarch的 clash meta确实有loong64了

不过我不是很了解rollup为什么不支持loongarch,能否给指个路我瞅瞅

Cyenoch avatar Feb 26 '24 03:02 Cyenoch

tauri和clash meta已支持,目前的问题是当前版本依赖vite 5.0.11所依赖的rollup尚不支持loongarch,采用较低版本的vite4.5.0是可以编译通过的,但我运行时遇到了webkit错误,尚未解决

我看tauri的target里是没有loongarch的 clash meta确实有loong64了

不过我不是很了解rollup为什么不支持loongarch,能否给指个路我瞅瞅

clash meta加载配置文件时出现了段错误 https://github.com/MetaCubeX/mihomo/issues/1062

ToKingl avatar Feb 26 '24 03:02 ToKingl

tauri和clash meta已支持,目前的问题是当前版本依赖vite 5.0.11所依赖的rollup尚不支持loongarch,采用较低版本的vite4.5.0是可以编译通过的,但我运行时遇到了webkit错误,尚未解决

我看tauri的target里是没有loongarch的 clash meta确实有loong64了

不过我不是很了解rollup为什么不支持loongarch,能否给指个路我瞅瞅

tauri这个PR被拒绝了,经实验简单添加loongarch的target就能编译,rollup需要rollup.linux-loongarch-gnu.node,这个文件是在x86下交叉编译的,目前还存在问题,可以参考添加ppc64le支持这个PR

ziqi-cn avatar Feb 26 '24 03:02 ziqi-cn

tauri这个PR被拒绝了,经实验简单添加loongarch的target就能编译,rollup需要rollup.linux-loongarch-gnu.node,这个文件是在x86下交叉编译的,目前还存在问题,可以参考添加ppc64le支持这个PR

ok

Cyenoch avatar Feb 26 '24 03:02 Cyenoch

@Cyenoch @ziqi-cn clash meta昨晚已有开发者重新打abi1(旧世界)和abi2(新世界)的deb包了 https://github.com/MetaCubeX/mihomo/releases/tag/Prerelease-Alpha

ToKingl avatar Feb 27 '24 02:02 ToKingl

要在龙架构上使用tauri,首先使用 普通架构的npm生成前端(因为龙架构node这边有问题)。 再将dist拷贝到项目目录,在tauri上注释掉build之前或者之后的前端操作动作。 随后执行cargo install tauri-cli 构建tauri。最后执行cargo tauri build 另外一个现状,由于龙架构没有appimage,同时有新旧世界,所以构建出来的二进制,一般不通用

jiangcuo avatar Mar 03 '24 11:03 jiangcuo

看看能否用二进制翻译启动X86的程序

parheliamm avatar Mar 05 '24 06:03 parheliamm

图片

今天成功在安同上运行了1.5.8版本,下面是在龙架构上编译对软件包做出的修改:

  • 降级vite为4.5.2;
  • 使用修改过的rquickjs;
  • 由于mihomo开始对龙架构打新旧世界两种包,check.mjs中下载链接需要做相应变化。

不过,cargo tauri build在最后会报错Error failed to build bundler settings: Unable to determine target-architecture,不知该如何解决?

ziqi-cn avatar Mar 17 '24 00:03 ziqi-cn

1.5.9版本更新,使用boa_engine 代替 rquickjs,可以直接在龙架构上编译了,只需要在src-tauri下cargo update更新一下。

此外,参考https://github.com/vitejs/vite/issues/15122, 发现可以不用降级vite, 只需在package.json中添加

  "pnpm": {
    "overrides": {
      "rollup": "npm:@rollup/wasm-node"
    }
  }

ziqi-cn avatar Mar 17 '24 15:03 ziqi-cn