-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
unable to create a new stream: No such file or directory #374
Comments
also -v said: |
Well another interesting things. The iperf3 inside /data/data/com.nextdoordeveloper.miperf.miperf/files/iperf3 even if i copy it in another location. |
I had the same issue after sourcing Iperf3 binaries from he.net - Network Tools. It needed write access to /data/data/net.he.networktools/cache/, which obviously does not exist when the APK is not installed. So I opened it up in a hex editor, found the template string /data/data/net.he.networktools/cache/iperf3.XXXXXX, and replaced it with the path to a world-writable directory. You'll have to figure out where you want that to be since AFAIK there is no /tmp in Android. Basically you'll want to replace the template string with something like ////////////////path/to/writable/dir/iperf3.XXXXXX (you should probably take care to make sure the replacement string is the same length just to be safe). I didn't want to go through the trouble of compiling it for Android, but you can also just change it prior to compilation. Also you can obviously disregard the prior comment about matching replacement string length if you go this route. Line 2621 in 670c185
Hope that helps, |
It work perfectly with existing binaries. Android have a writable tmp in /data/local/tmp. Thanks a lot ! |
Hi I'm trying the exact same thing. How did you get this to work? I am unable to push the I have tried running the binary from /data/data/app.package/ and i get the same |
I'm having huge problems making Android version of iPerf3 binaries. I'm wondering if you could share your binaries for different architectures? |
Thanks for the tip!!!! |
Hi I have the same issue, I modified these lines in iperf_api.c according to @brbsix explanation:
but when I execute some iperf command using "Runtime.getRuntime().exec(cmd)", I get this error:
Notes: I'm using NDK to compile the iperf3 library and I put the executable file in jniLibs, I change the name of executable, for example "iperf3" to "libiperf3.so". I'm using non rooted device. |
Can the reason be insufficient permissions to access "/data/local/tmp/", as explained in @crearo reference to: https://stackoverflow.com/questions/23094806/copy-file-to-data-local-tmp? |
I compile iperf bin for android with NDK r10e.
I use LDFLAGS="-fPIE -pie -fuse-ld=bfd" configs to build.
But now it said when i use as client or server:
iperf3: error - unable to create a new stream: No such file or directory
As server, on the client side i get:
iperf3: error - control socket has closed unexpectedly
The only warning that i get at compile time is:
portable_endian.h:133:3: warning: #warning platform not supported [-Wcpp]
portable_endian.h:158:0: warning: "htobe64" redefined [enabled by default]
In file included from /usr/lib/gcc/arm-linux-androideabi/4.7.3/../../../../arm-linux-androideabi/include/endian.h:87:0,
from /usr/lib/gcc/arm-linux-androideabi/4.7.3/../../../../arm-linux-androideabi/include/netinet/in.h:31,
from iperf_udp.c:35:
How can i workaround that ?
The text was updated successfully, but these errors were encountered: