1

Temat: Speedtest w konsoli - jak skompilować?

Chodzi o projekt: https://github.com/mobrembski/SpeedTestC
Na PC kompilacja przebiega poprawnie i program działa. Niestety nie umiem tego zrobić na routerze:

make 
 [SpeedTestC] CC Speedtest.o
 [SpeedTestC] CC SpeedtestConfig.o
 [SpeedTestC] CC SpeedtestDownloadTest.o
 [SpeedTestC] CC SpeedtestLatencyTest.o
 [SpeedTestC] CC SpeedtestServers.o
 [SpeedTestC] CC SpeedtestUploadTest.o
 [SpeedTestC] CC http.o
src/http.c: In function 'httpPut':
src/http.c:77:22: warning: implicit declaration of function 'gethostbyname'; did you mean 'gethostname'? [-Wimplicit-function-declaration]
     if ((hostEntry = gethostbyname(pAddress)) == NULL)
                      ^~~~~~~~~~~~~
                      gethostname
src/http.c:77:20: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
     if ((hostEntry = gethostbyname(pAddress)) == NULL)
                    ^
src/http.c: In function 'httpGet':
src/http.c:124:20: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
     if ((hostEntry = gethostbyname(pAddress)) == NULL)
                    ^
 [SpeedTestC] CC url.o
 [SpeedTestC] CC SpeedTestC
/usr/bin/ld: cannot find -lpthread
/usr/bin/ld: cannot find -lcrypto
collect2: error: ld returned 1 exit status
make: *** [Makefile:26: SpeedTestC] Error 1

2

Odp: Speedtest w konsoli - jak skompilować?

-lpthread -lssl podczas kompilacji.

Ale ten konkretny speedtest tak sobie działa - nawet pod pc czasami potrafi się wywalić i nie dać rezultatu. Jak poszukasz na githubie to tam jest kilkanaście wariacji na ten temat.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

3

Odp: Speedtest w konsoli - jak skompilować?

Trochę ruszyło, ale nadal czegoś brakuje:

/usr/bin/ld: cannot find -lpthread
collect2: error: ld returned 1 exit status
make: *** [Makefile:26: SpeedTestC] Error 1
opkg files libpthread
Package libpthread (1.1.24-3) is installed on root and has the following files:

Pliku libpthread  w ogóle nie ma, dziwne.

Cezary, czy możesz polecić jakiś dobry sprawdzony speedtest?

4

Odp: Speedtest w konsoli - jak skompilować?

include $(TOPDIR)/rules.mk

PKG_NAME:=speedtestc
PKG_RELEASE:=1

PKG_SOURCE_URL:=https://github.com/mobrembski/SpeedTestC.git
PKG_SOURCE_PROTO:=git
PKG_SOURCE_DATE:=2020-08-20
PKG_SOURCE_VERSION:=5bd807bc32269321e500a7e7d36b8ec3fefa5f47

include $(INCLUDE_DIR)/package.mk

define Package/speedtestc
  SECTION:=net
  CATEGORY:=Network
  TITLE:=Client for SpeedTest.net infrastructure
  URL:=https://github.com/mobrembski/SpeedTestC
  DEPENDS:=+libopenssl
endef

#define Build/Prepare
#    $(call Build/Prepare/Default)
#    $(CP) ./src/Makefile $(PKG_BUILD_DIR)/
#endef

define Package/speedtestc/install
    $(INSTALL_DIR) $(1)/usr/sbin
    $(INSTALL_BIN) $(PKG_BUILD_DIR)/SpeedTestC $(1)/usr/sbin/
endef

$(eval $(call BuildPackage,speedtestc))

Mój makefile jak go kiedyś kompilowałem.

Sprawdzonego nie mam. Przerabiałem któryś z projektów ale nigdy go nie skończyłem, leży na liście todo.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

5 (edytowany przez Zuzia 2021-05-23 18:09:37)

Odp: Speedtest w konsoli - jak skompilować?

Dziękuję za Makefile, poszło, ale..

./SpeedTestC
Http error while creating GET request socket: 0
Cannot download speedtest.net configuration. Something is wrong...

GET (lwp-request) w ogóle nie ma w OpenWrt w żadnym pakiecie, przynajmniej ja nie znalazłam.

6 (edytowany przez Zuzia 2021-05-23 18:58:34)

Odp: Speedtest w konsoli - jak skompilować?

Dodałam do zależności +libpthread i program działa:

./SpeedTestC
Your IP: XXX.XXX.XX.XX And ISP: Vectra Broadband
Lat: XXX Lon: XXX
Grabbed 100 servers
Best Server URL: http://speedtest.avanet.net.pl:8080/speedtest/upload.php
     Name: Szczucin Country: Poland Sponsor: Avanet Dist: 68 km
Latency: 47 ms
Bytes 95924671 downloaded with a speed 2909.21 kB/s (22.73 Mbit/s)
Bytes 28311552 uploaded with a speed 4013.27 kB/s (31.35 Mbit/s)

Jeszcze raz dziekuję Cezary! smile

7

Odp: Speedtest w konsoli - jak skompilować?

A właśnie - tam część linków trzeba (można) pozmieniać na https i można user agenta zmienić, bo witryna speedtest czasami dziwnie reaguje.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

8

Odp: Speedtest w konsoli - jak skompilować?

Teoretycznie po http powinno być nieco szybciej.

9

Odp: Speedtest w konsoli - jak skompilować?

Niestety...

Bytes 95924671 downloaded with a speed 2721.71 kB/s (21.26 Mbit/s)
[  473.635990] do_page_fault(): sending SIGSEGV to SpeedTestC for invalid read access from 00000000
[  473.643420] epc = 0040313c in SpeedTestC[400000+5000]
[  473.648502] ra  = 0040312c in SpeedTestC[400000+5000]
9693 Segmentation fault      SpeedTestC

Przy czym na PC działa poprawnie. Muszę szukać dalej.

10

Odp: Speedtest w konsoli - jak skompilować?

A mówiłem smile

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

11

Odp: Speedtest w konsoli - jak skompilować?

Siema smile

Próbował może ktoś ten projekt https://github.com/linnway/speedtest-cli?

Używasz moich pakietów/obrazów z github?
Chcesz abym dalej je rozwijał i tworzył nowe?
Postaw kawę

12

Odp: Speedtest w konsoli - jak skompilować?

Ja ten pierwotny próbowałem. Niestety nie dawał sensownych wyników (mimo że metodologia jest znana, adresy są te same, technika pomiaru jest znana) w stosunku do wyników z aplikacji webowej.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.