Kolega Onken chyba zapomniał wrzucić obiecane skrypty więc ja wrzucam. Trochę surowe, zapewne da się je lepiej napisać, ale jakoś działają ;P i ogólną zasadę korzystania z API HiLinkowego w routerach pokazują (wymóg logowania, zmiana tokena co komendę).

Skrypt wprowadzający PIN miał być uruchamiany z poziomu routera OpenWRT w cronie i co jakiś czas sprawdzać czy nie trzeba zapodać routerowi HiLink PINu.

1) Skrypt na wpisanie PINu do routera Hilink za pomocą API
2) Skrypt na reboot routera Hilink za pomocą API

Nie wiedzieć czemu w nagłówkach zczytanych z routera pojawia windowsowe zakończenie linii i w związku z tym trzeba było się tego pozbyć, żeby skrypt poprawnie działał w linuxie:

tmp=$(awk '{ sub("\r$", ""); print }' "$headers")

Ok Cezary, ale czemu koledze pocieło tego sid'a? Skoro w skrypcie wyraźnie jest kolejno:
-H "$sid1" -H "$tok1" -H "Content-Type: text/xml"

W po uruchomieniu:
-H 'Cookie: SessionID=hAOhr6m8GwUSoHQryHNIn' -H 'Content - Type: text/x m l'bNcKVzhIzHV1So4MvVjFpgNAdya+ZmTTJA97vdj9LjTEAb+YGxjP+v+OcTVbZo7TSHIg5jrG6DaMEX' -H '__RequestVerificationToken: FaKIOeaxWYVreijrwr4cjfFqCRODiBI8

Oraz pełny sid wygląda tak:
Cookie: SessionID=hAOhr6m8GwUSoHQryHNIn3qmPCibMsYslLjSuSMDXcGzsGS1C0bNcKVzhIzHV1So4MvVjFpgNAdya+ZmTTJA97vdj9LjTEAb+YGxjP+v+OcTVbZo7TSHIg5jrG6DaMEX

a jest:
-H 'Cookie: SessionID=hAOhr6m8GwUSoHQryHNIn' -H 'Content - Type: text/x m l'bNcKVzhIzHV1So4MvVjFpgNAdya+ZmTTJA97vdj9LjTEAb+YGxjP+v+OcTVbZo7TSHIg5jrG6DaMEX'

W tokenie tego nie ma pojawia się tylko przy

echo $tok1

zastanawia mnie czemu połamał się SessiodID w ostatnim curl:

...
curl -X POST -d 'WYCINAM' http://192.168.0.8/api/pin/operate -H 'Cookie: SessionID=hAOhr6m8GwUSoHQryHNIn' -H 'WYCINAM'bNcKVzhIzHV1So4MvVjFpgNAdya+ZmTTJA97vdj9LjTEAb+YGxjP+v+OcTVbZo7TSHIg5jrG6DaMEX' -H '__RequestVerificationToken: FaKIOeaxWYVreijrwr4cjfFqCRODiBI8
...

skoro w skrypcie jest:

...
curl -X POST -d "WYCINAM" http://$modIPAdr/api/pin/operate -H "$sid1" -H "$tok1" -H "WYCINAM"
...

ehhh... same problemy z tym hostingiem teraz hmm

4

(60 odpowiedzi, napisanych Oprogramowanie)

Bo to nadal nie te sterowniki. Chcesz zmienić HiLinka na zwykły to instalujesz FCSerial, w drugą stronę potrzeby jest MobileBrServ. >>TU<< masz opisane przejścia w jedną i w drugą stronę wraz z linkami do sterowników jakie są potrzebne przy danym przejściu.

5

(190 odpowiedzi, napisanych Oprogramowanie)

build000 napisał/a:

...indeed - jak mawiał pewien kosmita w Star Gate big_smile

big_smile

6

(190 odpowiedzi, napisanych Oprogramowanie)

A co ma listwa do ochrony przepięciwej w przypadu burzy?

Żeby w jakimś sensownym stopniu się zabezpieczyć przed przepięciami od wyładowań atmosferycznych trzeba zstosować co najmniej 2 stopnie ochrony (klasa B+C):
1) Ogranicznik przepięć typu 1 (klasy B) - tzw odgromnik, ochrona przez skutkmi bezpośredniego wyładowania w sie c napowietrzną lub odgrmową, obniża przepięcie do poniżej 4 kV, wytrzymuje prąd udarowy 35-100 kA (w zależności od modelu)
2) ogranicznik przepięć typu 2 (klasy C) - ochrona przed pośrednimi wyładowaniniami amosferycznymi lub procesami łączeń w sieci elektrycznej, obniża przepięcie poniżej 1,5 kV i prąd udarowy 5-20kA
3) ogranicznik przepięć typu 3 (klasy D) - zalecany do ochrony kosztownych urządzeń elektronicznych, ma za zadanie szybko reagować na niewielkie przepięcia, które przejdą przez wczeniejsze progi ochrony przeciwprzepięciowej. Ochronniki tego typu montuje się w pobliżu zabezpieczanego urządzenia (w puszkach podtynkowych, jako gniazdka lub właśnie jako listwę przeciwprzepięciową).

Ochronniki klasy B+C montuje się na wejściu zasilania czyli np w rozdzielnicy bezpiecznikowej lub w skrzynce licznika elektrycznego.

I jeszcze jedna uwaga nie każda listwa zasilająca (nawet posiadająca warystor do ograniczania przepięć) jest listwą przeciwprzepięciową. Producent dobrej listwy przeciwprzepięciowej pochwali się zarówno badaniami jak i odpowienimi atestami.

7

(190 odpowiedzi, napisanych Oprogramowanie)

jarek7714 napisał/a:

...i zwisy, restarty modemu (nie zawsze z sukcesem-nie jest tak niezawodny jakby się wydawało, czasami pomaga dopiero reset zasilania)...

To to jest dla mnie zagadka. Na początku miałem często zwisy, a teraz już od jakiegoś dość długiego czasu (odpukać w niemalowane) działa bez problemów big_smile

build000 napisał/a:

No i sam nie sprawdziłeś a proponujesz innym - no kurczaki - nie ładnie... wink

No przecież napisałem "Ciekawe czy działałoby..." tongue

8

(190 odpowiedzi, napisanych Oprogramowanie)

@build000: cholera wie tongue Na razie mi działa w miarę dobrze na HiLinku to wolę nie ruszać za bardzo, a drugiego modemu na testy nie mam tongue

9

(190 odpowiedzi, napisanych Oprogramowanie)

Ciekawe czy na HiLinku działałoby przełączenie w tryb cdc:

usb_modeswitch -v12d1 -p 1f01 -M "5553424312345678000000000000001106xx00000101000100000000000000"

Where xx defines the type of network adapter:
00 - RNDIS
10 or 20 - cdc
30 - mode gateway (emulating stick modem).

10

(255 odpowiedzi, napisanych Oprogramowanie)

Cezary napisał/a:

Kolejny problem - w zależności od oprogramowania, dostęp do danych przez API Hilinka odbywa się albo przez token albo przez cookie. O ile w pierwszym przypadku nie ma większego problemu, o tyle w drugim przypadku trzeba zainstalować również pełny wget np.

opkg update
opkg install wget-nossl

Bo bez tego nie można czytać i używać ciasteczek przy wget

Cezary jak się okazuje mając SessionID (pobieramy z adresu /api/webserver/SesTokInfo) nie trzeba używać cookie. Można przesłać nagłówkiem "Cookie" dla wget byłoby to:

--header "Cookie: SessionID=<tu_ten_długi_hash_identyfikatora_sesji>"

>>Tu<< wstępnie bardziej szczegółowo opisałem swoje boje z identyfikatorem sesji (specjalnie po to zmieniłem oprogramowanie w modemie tongue ).

11

(21 odpowiedzi, napisanych Oprogramowanie)

@build000: a co ma budowa zasilacza laboratoryjnego z zasilaniem routera? Tym bardziej, że kolega nie podał co jest źródłem zasilania, a zapewne jest to... przetwornica impulsowa.

@viper_laser: Zgadzam się z pepe, brać coś z traco lub meana z dużą sprawnością i będzie ok. Mają duży wybór to coś bez problemu dobierzesz. Dla routera poziom szumów nie powinien być wielkim problemem, ale raczej wielkiego siana nie ma w dobrej klasy przetwornicach. Na liniowce przy parametrach jak podałeś będzie w cholerę ciepła do odprowadzenia.

12

(166 odpowiedzi, napisanych Oprogramowanie)

Poszukałem u ruskich i... chyba dupa będzie z tym cronem. Ponoć ma jakieś problemy z synchronizacją czasu hmm Niby jest w busyboxie ntpd... ale nie doszukałem się, żeby się komuś udało to jakoś ożenić neutral Moge się mylić, bo nie czytam po rusku a google translate nie potrafi za bardzo łamańców językowych przetłumaczyć tongue

Jak ci się uda jakoś to odpalić to daj znać wink

13

(166 odpowiedzi, napisanych Oprogramowanie)

build000 napisał/a:

Jeszcze pytanko o busybox - gdy mamy telnet działający (i adb) w tym modemie - jak mu się dobrać do crona (czy go w ogóle ma ?) ?

Pfff... pojęcia nie mam tongue Musisz spróbować wink Teoretycznie wystarczy mu zrobić plik cronjob w /data/crontab i odpalić
busybox crond -b -c /data/cronjob

Jak to zadziała to pewnie wystarczy dodać do autostartu ten zapis odpalający crona po starcie i będzie git... tyle, że nie wiem jak ze zmianami w pliku cronjob... hmmm...

14

(166 odpowiedzi, napisanych Oprogramowanie)

Taki nius od forth32@4pda. Mając odblokowany telent w modemie da się wysyłać komendy AT bez potrzeby wchodzenia w tryb debug. Aby tego dokonać trzeba:
1) Połączyć się po protokole telnetu z modemem (np za pomocą putty).
2) Teraz mając znak zachęty # wpisać:

cat </dev/appvcom1 & cat | busybox tr "\n" "\r">/dev/appvcom1

co podłączy nas do konsoli AT i modem zacznie nas spamować wiadomościami z tej konsoli tongue
3) Jeżeli nie chcemy widzieć spamu modemu to wpisujemy

at^curc=0

(nie przejmować się, że wiadomości modemu przerywają nam pisanie komendy tongue ).
4) Możemy już działać na komendach AT wink

Wyjście z konsoli AT:
1) kombinacja klawiszy ctrl+c spowoduje pojawienie się znaku zachęty #
2) wpisujemy busybox killall cat

15

(26 odpowiedzi, napisanych Oprogramowanie)

Całkiem niedawno chyba na tym forum ktoś opisywał to ustrojstwo. Poszukaj tongue

16

(166 odpowiedzi, napisanych Oprogramowanie)

Jest to jakaś prawdopodobnie głupota twórców no-ip. Za każdym razem program odpalając otwiera plik konfiguracyjny do zapisu hmm

Najprostsze rozwiązanie to w autorunie przed odpaleniem programu zmienić system plików do zapisu.

17

(166 odpowiedzi, napisanych Oprogramowanie)

Pfffff... a masz dostęp do karty SD na tym fw? Z tego co pamiętam to przy _D_ (ale z numerkiem 01 na końcu) nie było chyba dostępu do karty SD tongue

Jak działa poprawnie to ok ale jak coś będzie nie tak to wgraj to co powyżej napisałem E3372Update_22.286.53.01.161_S_ADB_TLN_02.exe (bez literek _D_ lub _R_)

18

(166 odpowiedzi, napisanych Oprogramowanie)

Pfff... Taj prosto to nie ma tongue Jak wyłaczysz dostęp przez adb i telent zostaje... włączenie trybu debug ->wejście przez ttyUSB2 na konsolę linuxa (teoretycznie na modowanym fw konsola linuxa powinna już działać więc chyab nie trzeba przechodzić przez konsolę AT na ttyUSB0) -> odpalenie na niej abd -> połączenie się przez adb -> i dopiero modyfikacje plików na modemie tongue

19

(166 odpowiedzi, napisanych Oprogramowanie)

Wgrałeś chyba fw z literką _D_ (jak debug) w nazwie. Zarówno D jak i R w nazwie fw oznaczają tryb debug (tyle, że w inny sposób uzyskiwany przez co jest inna konfiguracja modemu).

Teoretycznie powinno pomóc wyrzucenie z autoruna:

sw-dbg-mode 30 &

(sw-dbg-mode to ten programik o którym wcześniej wspominałem).

Jakbyś mimo wszystko miał jakieś problemy to wgraj jednak fw E3372Update_22.286.53.01.161_S_ADB_TLN_02 (odblokowany ADB i telnet bez trybu debug) i na nim dokonaj potrzebnych zmian.

20

(166 odpowiedzi, napisanych Oprogramowanie)

Nie wiem po jakiego grzyba chcesz wyłączyć, ale ok:
od ADB jest linijka:

/sbin/adbd &

A za telnet odpowiada:

busybox telnetd -l /bin/sh

21

(166 odpowiedzi, napisanych Oprogramowanie)

Nie zarówno demona telnetu jak i adb dopiero trzeba uruchomić i żeby działały na stałe trzeba je dodać do autorun.sh.

Co do debugmode to mógłbyś albo jakiś skrypt w linuxie dać żeby po wykryciu modemu  przełączało w debug. Albo... przy odblokowanym ADB/telnecie możesz wrzucić do modemu odpowiedni skrypt lub widziałem na 4pda plik wykonywalny do modemu przełączający w debug i jedno czy drugie rozwiazanie odpalać w autorun.

22

(166 odpowiedzi, napisanych Oprogramowanie)

Po shell=2 nie masz włączonego jeszcze adb tongue tylko na bodajze ttyUSB2 powinna się pojawić konsola linuxa. Tak więc otwierasz terminala z podglądem dla ttyUSB2 i wysyłasz na ttyUSB2 uruchomienie (jednorazowe do pierwszego reboota modemu) /sbin/adbd. Dopiero po tej komendzie powinno się odpalić połączenie po ADB (o ile się konsola linuxa odblokowała, bo nie piszesz czy masz potwierdzenia odblokowania na terminalu - powinieneś na osobnym terminalu niż tym co wpisujesz komendy zrobić podgląd cat /dev/ttyUSBx).

23

(166 odpowiedzi, napisanych Oprogramowanie)

No to na temat komend at pod linuxem musi się już ktoś inny wypowiedzieć tongue

24

(166 odpowiedzi, napisanych Oprogramowanie)

hmmm... Jak już mówiłem na linuchu się nie znam, ale z tego co widzę to raczej coś źle wysyłasz te komendy AT. Masz to samo co ten kolo: http://superuser.com/questions/704355/u … ion-denied
ew. spróbuj w ten sposób: http://www.roman10.net/how-to-use-modem … -at-linux/

25

(166 odpowiedzi, napisanych Oprogramowanie)

Pffff... prawdę mówiąc nie mam pojęcia czemu nie masz ttyUSB0 hmm Ja z linuxem to tak średnio się lubimy wink

A co wypluwa:

ls -l /dev/cu.*