Genymobile / gnirehtet

Gnirehtet provides reverse tethering for Android
Apache License 2.0
6.23k stars 571 forks source link

ARM Linux Version #46

Closed tango25001 closed 6 years ago

tango25001 commented 6 years ago

Hello Gnirehtet is really a great tool. Is there a possibility to have the RUST Version compiled for an ARM architecture?

I'm running it on a Raspi3 as a tether box.

Obviously less CPU consumption would be an enormous advantage. , since with the java version transmit speed only reaches arround 50 kbit/s.

Thank you very much for your great work!

rom1v commented 6 years ago

Is there a possibility to have the RUST Version compiled for an ARM architecture?

Either build directly on your Raspi, or cross-compile from Linux.

For the latter, first install the cross-compile toolchain:

sudo apt install gcc-arm-linux-gnueabihf
rustup target add armv7-unknown-linux-gnueabihf

Add the following lines to ~/.cargo/config:

[target.armv7-unknown-linux-gnueabihf]
linker = "arm-linux-gnueabihf-gcc"
ar = "arm-linux-gnueabih-gcc-ar"

Then cross-compile:

cd relay-rust
cargo build --release --target=armv7-unknown-linux-gnueabihf

It will generate target/armv7-unknown-linux-gnueabihf/release/gnirehtet.

For the current master, here is the stripped binary I just generated: gnirehtet (not tested). (SHA-256: 1ad67a57ad4cc06dd3895fe1187246ae5ee92cbf96d415719a88f06eb3e7e0d9)

But I probably won't generate binaries for every arch on each release.

tango25001 commented 6 years ago

Thank very much!

Using your stipped binary it works flawlessly and transmit speed is greater 3mib/s (max of my Internet connection!)

For further releases I will try using your explanation how to cross compile, will see how it goes since I am not familiar with such things :-)