<p>Android рдкрд░ iperf 3 рд╕рдВрдХрд▓рди рдирд┐рдореНрди рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред</p>

рдХреЛ рдирд┐рд░реНрдорд┐рдд 7 рдордИ 2016  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: esnet/iperf

рдЖрджреЗрд╢:
./configure --host=arm-linux-gnueabihf --prefix=/home/ec2-user/iperf_install/ CC=arm-linux-androideabi-gcc CXX=arm-linux-androideabi-g++ CFLAGS=-static CXXFLAGS=- рд╕реНрдерд┐рд░

main.c:62: рддреНрд░реБрдЯрд┐: '__gnu_mcount_nc' рдХреЗ рд▓рд┐рдП рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕рдВрджрд░реНрдн
main.c:124: рддреНрд░реБрдЯрд┐: '__gnu_mcount_nc' рдХрд╛ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕рдВрджрд░реНрдн
main.c:131: рддреНрд░реБрдЯрд┐: '__gnu_mcount_nc' рдХреЗ рд▓рд┐рдП рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕рдВрджрд░реНрдн
cjson.c:50: рддреНрд░реБрдЯрд┐: '__gnu_mcount_nc' рдХреЗ рд▓рд┐рдП рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕рдВрджрд░реНрдн
рд╕рдВрдЧреНрд░рд╣ 2: рддреНрд░реБрдЯрд┐: рдПрд▓рдбреА рдиреЗ 1 рдирд┐рдХрд╛рд╕ рд╕реНрдерд┐рддрд┐ рд▓реМрдЯрд╛ рджреА

рдореИрдВ рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП iperf3 рдмрд╛рдЗрдирд░реА рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореИрдВ рдмрд╣реБрдд рдирд┐рд░рд╛рд╢ рд╣реВрдВ рдХрд┐ рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП iperf3 рдмрд╛рдЗрдирд░реА рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдареЛрд╕ рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рд╣реИред рдХреНрдпрд╛ рдХреЛрдИ рдХреГрдкрдпрд╛ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ?

рдзрдиреНрдпрд╡рд╛рдж,
- рд╣рд╛рд░реНрджрд┐рдХ

documentation portability

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдпрд╛:
./configure --disable-profiling --host=arm-linux-androideabi

рд╕рднреА 7 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

cjson.c:50: рддреНрд░реБрдЯрд┐: '__gnu_mcount_nc' рдХреЗ рд▓рд┐рдП рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕рдВрджрд░реНрдн
cjson.c:56: рддреНрд░реБрдЯрд┐: '__gnu_mcount_nc' рдХреЗ рд▓рд┐рдП рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕рдВрджрд░реНрдн
cjson.c:72: рддреНрд░реБрдЯрд┐: '__gnu_mcount_nc' рдХреЗ рд▓рд┐рдП рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕рдВрджрд░реНрдн
cjson.c:85: рддреНрд░реБрдЯрд┐: '__gnu_mcount_nc' рдХреЗ рд▓рд┐рдП рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕рдВрджрд░реНрдн

iperf3 рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рддреМрд░ рдкрд░ рдПрдВрдбреНрд░реЙрдЗрдб рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЗрд╕реЗ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрд╕рд╛рдзрди рдирд╣реАрдВ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП "рд╕рд╣рд╛рдпрддрд╛ рдЪрд╛рд╣рддрд╛ рдерд╛" рдХреЗ рд░реВрдк рдореЗрдВ рдЯреИрдЧ рдХрд░рдирд╛ред

рд╣рдо рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ iperf2 рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рддреМрд░ рдкрд░ Android рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рд╢рд╛рдпрдж рдпрд╣ рдПрдХ рдЕрдзрд┐рдХ рдЙрдкрдпреБрдХреНрдд рдордВрдЪ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?

рдореБрдЭреЗ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝ рд░рд╣рд╛ рд╣реИ, рдХреНрдпрд╛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕реБрдЭрд╛рд╡ рд╣реИ?

рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╕реАрдПрдордХреЗ рдХреЗ рд╕рд╛рде рдмрджрд▓ рджрд┐рдпрд╛ рд╣реИред рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ рдореБрдЭреЗ рдпрд╣ рд╕рдВрдХрд▓рди Android рдХреЗ рд▓рд┐рдП рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдореИрдВ iOS рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рди рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

https://github.com/palmerc/iperf

[рдЕрджреНрдпрддрди]

HAVE_ENDIAN рд╕реЗрдЯ рдХрд░рдирд╛ 1

cmake -D ANDROID_PLATFORM=android-21 -G рдирд┐рдВрдЬрд╛ -D CMAKE_TOOLCHAIN_FILE=../android-ndk/android-ndk-r16b/build/cmake/android.toolchain.cmake ../iperf
рд╕реЗрдореЗрдХ --рдмрд┐рд▓реНрдб .

рдХрд╛рдо рдХрд┐рдпрд╛ред рдореИрдВрдиреЗ -D ANDROID_ABI=arm64-v8a . рдХреЗ рд╕рд╛рде рднреА рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛

рдЕрдЧрд░ рдХреЛрдИ рдЪрд╛рд╣рддрд╛ рд╣реИ, рддреЛ рдореИрдВ рд╕реАрдПрдордХреЗ рдмрд┐рд▓реНрдб рдХреЛ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдХреЗ рд░реВрдк рдореЗрдВ рдЬрдорд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ

рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, iperf3_profile_CFLAGS рдФрд░ iperf3_profile_LDFLAGS рд╕реЗ "-pg" рд╣рдЯрд╛рддреЗ рд╣реБрдП src/Makefile.in рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВред

рдХрдо рд╕реЗ рдХрдо рдкреНрд░рдпрд╛рд╕ рд╕реЗ рд▓реЗрдХрд░ рдЕрдзрд┐рдХрддрдо рдкреНрд░рдпрд╛рд╕ рддрдХ, рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рддреАрди рд╕рдорд╛рдзрд╛рди рджрд┐рдП рдЧрдП рд╣реИрдВ:

  1. рдЬрд┐рд╕ рд╕рдордп iperf3 рдкреНрд░реЛрдлрд╛рдЗрд▓ рдХрд┐рдП рдЧрдП рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдХреА рд▓рд┐рдВрдХрд┐рдВрдЧ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИ, "рд╕рд╛рдорд╛рдиреНрдп" iperf3 рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рд╢рд╛рдпрдж рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ ... рдХрдо рд╕реЗ рдХрдо рдпрд╣ рдореЗрд░реЗ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рд╣реИред рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк рдореЗрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ (рдФрд░ рдмрд┐рд▓реНрдб рд╣реЛрд╕реНрдЯ рдкрд░ рдереЛрдбрд╝рд╛ рд╕рд╛ рд╡реНрдпрд░реНрде рдХрд╛рдо) рд╕реЗ рддреНрд░реБрдЯрд┐ рдирд┐рдХрд╛рд╕ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХреЗ рдЗрдЪреНрдЫреБрдХ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдХреБрдЫ рднреА рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИред

  2. рдмрд╛рдж configure рдХрджрдо рд╣реИ, рд╡рд╣рд╛рдБ рдореЗрдВ рдПрдХ рдкрд░рд┐рднрд╛рд╖рд╛ рд╣реЛ рдЬрд╛рдПрдЧрд╛ src/Makefile рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

noinst_PROGRAMS = t_timer$(EXEEXT) t_units$(EXEEXT) t_uuid$(EXEEXT) \
        iperf3_profile$(EXEEXT)

рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдкреНрд░реЛрдлрд╛рдЗрд▓ рдХрд┐рдП рдЧрдП iperf3 рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рдЕрдХреНрд╖рдо рдХрд░ рджреЗрдЧрд╛:

noinst_PROGRAMS = t_timer$(EXEEXT) t_units$(EXEEXT) t_uuid$(EXEEXT)
  1. рдКрдкрд░ рджрд┐рдП рдЧрдП рдЖрдЗрдЯрдо 2 рдХреЗ рд╕рдорд╛рди, рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХ рд╕реНрдерд╛рдпреА...рдпрджрд┐ рдЖрдк src/Makefile.am рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд▓рд╛рдЗрди рд░реАрдбрд┐рдВрдЧ рдХреЛ рдЗрд╕ рддрд░рд╣ рдмрджрд▓рддреЗ рд╣реИрдВ:
noinst_PROGRAMS         = t_timer t_units t_uuid iperf3_profile

рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП:

noinst_PROGRAMS         = t_timer t_units t_uuid

рдФрд░ рдлрд┐рд░ ./bootstrap.sh рдЪрд▓рд╛рдПрдВ, рдЬреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдХрдлрд╝рд╛рдЗрд▓реНрд╕ рдХреЛ рдкреНрд░реЛрдлрд╛рдЗрд▓ рдХрд┐рдП рдЧрдП iperf3 рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рд╕реНрдерд╛рдпреА (рдЙрд╕ рд╕реНрд░реЛрдд рдкреЗрдбрд╝ рдХреЗ рднреАрддрд░) рдХреЛ рдмрд╣рд┐рд╖реНрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛ред

рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдореИрдВ рдЗрд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рдПрдлрдПрдХреНрдпреВ рдЖрдЗрдЯрдо рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдЦрдиреЗ рдФрд░ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рдЗрдЪреНрдЫреБрдХ рд╣реВрдВред

рдпрд╛:
./configure --disable-profiling --host=arm-linux-androideabi

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

Febbe picture Febbe  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

cypherstream picture cypherstream  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

michaelfranzl picture michaelfranzl  ┬╖  9рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

KevinJosephMorin picture KevinJosephMorin  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

travis1230 picture travis1230  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ