ShadowsocksR-Live / overtls

A simple proxy tunnel, minimalist tool for bypassing the GFW.
MIT License
261 stars 43 forks source link

can you build client for use in router (mips32 openwrt)? #60

Closed rtllxndr closed 2 months ago

ssrlive commented 2 months ago

Tell me which one is the one.

rustup target list

aarch64-apple-darwin
aarch64-apple-ios
aarch64-apple-ios-sim
aarch64-linux-android (installed)
aarch64-pc-windows-gnullvm
aarch64-pc-windows-msvc
aarch64-unknown-fuchsia
aarch64-unknown-linux-gnu
aarch64-unknown-linux-musl
aarch64-unknown-linux-ohos
aarch64-unknown-none
aarch64-unknown-none-softfloat
aarch64-unknown-uefi
arm-linux-androideabi
arm-unknown-linux-gnueabi
arm-unknown-linux-gnueabihf
arm-unknown-linux-musleabi
arm-unknown-linux-musleabihf
armebv7r-none-eabi
armebv7r-none-eabihf
armv5te-unknown-linux-gnueabi
armv5te-unknown-linux-musleabi
armv7-linux-androideabi (installed)
armv7-unknown-linux-gnueabi
armv7-unknown-linux-gnueabihf
armv7-unknown-linux-musleabi
armv7-unknown-linux-musleabihf
armv7-unknown-linux-ohos
armv7a-none-eabi
armv7r-none-eabi
armv7r-none-eabihf
i586-pc-windows-msvc
i586-unknown-linux-gnu
i586-unknown-linux-musl
i686-linux-android (installed)
i686-pc-windows-gnu
i686-pc-windows-gnullvm
i686-pc-windows-msvc
i686-unknown-freebsd
i686-unknown-linux-gnu
i686-unknown-linux-musl
i686-unknown-uefi
loongarch64-unknown-linux-gnu
loongarch64-unknown-none
loongarch64-unknown-none-softfloat
nvptx64-nvidia-cuda
powerpc-unknown-linux-gnu
powerpc64-unknown-linux-gnu
powerpc64le-unknown-linux-gnu
riscv32i-unknown-none-elf
riscv32im-unknown-none-elf
riscv32imac-unknown-none-elf
riscv32imafc-unknown-none-elf
riscv32imc-unknown-none-elf
riscv64gc-unknown-linux-gnu
riscv64gc-unknown-none-elf
riscv64imac-unknown-none-elf
s390x-unknown-linux-gnu
sparc64-unknown-linux-gnu
sparcv9-sun-solaris
thumbv6m-none-eabi
thumbv7em-none-eabi
thumbv7em-none-eabihf
thumbv7m-none-eabi
thumbv7neon-linux-androideabi
thumbv7neon-unknown-linux-gnueabihf
thumbv8m.base-none-eabi
thumbv8m.main-none-eabi
thumbv8m.main-none-eabihf
wasm32-unknown-emscripten
wasm32-unknown-unknown (installed)
wasm32-wasi
wasm32-wasip1
wasm32-wasip1-threads
x86_64-apple-darwin
x86_64-apple-ios
x86_64-fortanix-unknown-sgx
x86_64-linux-android (installed)
x86_64-pc-solaris
x86_64-pc-windows-gnu
x86_64-pc-windows-gnullvm
x86_64-pc-windows-msvc
x86_64-unknown-freebsd
x86_64-unknown-fuchsia
x86_64-unknown-illumos
x86_64-unknown-linux-gnu (installed)
x86_64-unknown-linux-gnux32
x86_64-unknown-linux-musl
x86_64-unknown-linux-ohos
x86_64-unknown-netbsd
x86_64-unknown-none
x86_64-unknown-redox
x86_64-unknown-uefi
rtllxndr commented 2 months ago

Hi! Thanks for response. There is an example that should work https://github.com/sbwml/shadowsocks-rust-mips There is a file containing triples:

It looks like your list is missing them.

ssrlive commented 2 months ago

can you write a script for your propose by referencing the one?

https://github.com/ShadowsocksR-Live/overtls/blob/0286804f676578f165984dfac7b9cef6a0c4041f/.github/workflows/release.yml#L1-L7

rtllxndr commented 2 months ago

I will try to do in the same way and see what happens

rtllxndr commented 2 months ago

Rust uses llvm and llvm does not seem to support MIPS cpu architecture well. Would it be hard to create client-only for overtls in C or C++?

ssrlive commented 2 months ago

Yes. I escaped from c/c++ to rust.

https://blog.habets.se/2024/04/Cross-compiling-Rust-fixed.html

https://harrychen.xyz/2023/09/03/cross-compile-rust-to-mipsel/

rustc --print target-list | grep linux-musl

aarch64-unknown-linux-musl
arm-unknown-linux-musleabi
arm-unknown-linux-musleabihf
armv5te-unknown-linux-musleabi
armv7-unknown-linux-musleabi
armv7-unknown-linux-musleabihf
hexagon-unknown-linux-musl
i586-unknown-linux-musl
i686-unknown-linux-musl
loongarch64-unknown-linux-musl
mips-unknown-linux-musl
mips64-openwrt-linux-musl
mips64-unknown-linux-muslabi64
mips64el-unknown-linux-muslabi64
mipsel-unknown-linux-musl
powerpc-unknown-linux-musl
powerpc64-unknown-linux-musl
powerpc64le-unknown-linux-musl
riscv32gc-unknown-linux-musl
riscv64gc-unknown-linux-musl
s390x-unknown-linux-musl
thumbv7neon-unknown-linux-musleabihf
x86_64-unikraft-linux-musl
x86_64-unknown-linux-musl
rtllxndr commented 2 months ago

Okay, looks it is not possible at the moment. I will close the issue then.

ssrlive commented 2 months ago

Maybe this post can help?

https://blog.habets.se/2024/04/Cross-compiling-Rust-fixed.html

And here I write a tip about it. https://github.com/ssrlive/tips/blob/master/tips/0005.md#compile-mips-unknown-linux-gnu-target

rtllxndr commented 2 months ago

Hi! Thanks for suggestion, I may try later.