Temat: Drugi serwer www z gargoyle

Witam,
Mam postawiony obraz z eko.one.pl na WRT160NL z Gargoyle PL.
Chciałem postawić drugi serwer www według instrukcji http://eko.one.pl/?p=openwrt-statuspolaczenia , ale jakoś nie potrafię tego ogarnąć.
Przede wszystkim nie mam pliku /etc/init.d/httpd.
Możecie mi w tym pomóc?

Pozdrawiam

2

Odp: Drugi serwer www z gargoyle

httpd pochodził z busyboxa i dawno go już nie. Obecnie masz uhttpd i jego zainstaluj, będziesz miał pliku uhttpd zamiast httpd i tam możesz dokonać konfiguracji. Albo skorzystać z tego co ma gargoyle, czyli httpd_gargoyle, tyle że musisz ręcznie go uruchomić i podać odpowiednie parametry.

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

3

Odp: Drugi serwer www z gargoyle

Dzięki za podpowiedz. Zainstalowałem uhttpd i działa.
Teraz pytanie z innej beczki.
Zrobiłem małe urządzono na ATtiny2313 do zdalnego włączania komputera (moja plyta nie obsługuje WoL).
Mam zdefiniowane kilka znaków które sprawdzają czy komputer jest włączony, włączają go lub resetują.
Jak korzystam picocom'a wszystko działa, ale chciałem do tego dorobić interfejs www - a jestem w tym zupełnie zielony.
Jakich poleceń użyć do wysłania i odebrania znaku z ttyUSBx, tak żeby można to potem wykorzystać w skrypcie cgi? Pytanie zapewne jest banalne ale nie udało mi się wygooglować odpowiedzi.

4

Odp: Drugi serwer www z gargoyle

cat/grep/gcom

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

5

Odp: Drugi serwer www z gargoyle

Sorry ze zawracam głowę ale nie potrafię odebrać tych danych.
Jak napisałem wcześniej z picocom'em wszystko działa.
Wysłanie danych przez
echo 'B' > /dev/ttyUSB0
działa prawidłowo (urządzenie prawidłowo reaguje).
Jednak nie potrafię przechwycić czymś innym niż picocom danych zwrotnych.
Cezary czy możesz podać mi dokładniejszą składnie?

6

Odp: Drugi serwer www z gargoyle

cat /dev/ttyUSB0
jak do pliku chcesz, to
cat /dev/ttyUSB0 > /ścieżka/plik.txt
z moim arduino  działa jak trzeba wink

7

Odp: Drugi serwer www z gargoyle

Próbowałem z cat /dev/ttyUSB0 ale to nic nie pokazuje - tzn. w jednym terminalu odpalam cat a w drugim wysyłam poprzez echo do urządzenia rozkaz - urządzenie reaguje ale informacji zwrotne nie dostaje.
Zastanawiam się czy takie polecenie nie wymaga znaku końca linii.
Ja czekam na pojedyncze znaki - może tu jest problem ?

8

Odp: Drugi serwer www z gargoyle

Cat też nie czeka, tylko wyświetla. Nie interesują go końce linii.

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

9

Odp: Drugi serwer www z gargoyle

może zaprogramowałeś tak, ze wysyła ci znaki z poza tablicy ASCI.
na przykład ardiuno tak ma. jak mu na przyklad każesz wyśłać liczbę, to on tą liczbe traktujejako ASCI domyślnie,czyli jak wyślesz przez port '0',to nic nie zobaczysz.

spróbuj wrzucić do kontrolera coś w stylu:
Serial.println("test");
albo odpowiednik, zaleznie od tego, czym to progrmujesz i puść to w petli.

10

Odp: Drugi serwer www z gargoyle

Kontroler zwraca znaki ASCII - tak jak napisałem w picocom'ie wszystko działa (wysłanie i odbiór).
Co więcej jak zostawie ja jednym terminalu picocom'a w nasłuchu a z drugiego wyśle rozkaz poprzez echo '?' > /dev/ttyUSB0 to w picocom'ie dostaje odpowiedz.
Problem jest chyba z poleceniem cat. Ale juz nie wiem jak to ugryźć.

11

Odp: Drugi serwer www z gargoyle

to moze tak:
zainicjuj port 'stty -F /dev/ttyUSB0 cs8 115200' (zmień prędkość jak masz inna w programie), nie opdpalaj zadnych screenów ani  picocomów.
i potem sobie wklep na jednym terminalu 'cat /dev/ttyUSB0' a w drugim 'echo "?" > /dev/ttyUSB0'
u mnie tak działa bez problemów.
moze ten picocom ci jakoś blokuje port.....

12

Odp: Drugi serwer www z gargoyle

W sumie to juz tez testowałem tylko zamiast stty używałem gcom - bo stty nie był domyślnie zainstalować.
A można doinstalować stty z repozytorium?
Powalczę z tym jak dotrę do domu.

13

Odp: Drugi serwer www z gargoyle

Picocom jest zwykłym programem, wiec po jego zatrzymaniu nic nie jest blokowane.

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

14

Odp: Drugi serwer www z gargoyle

tak właściwie, to teges.... jak podłączysz ATtiny2313 bezpośrednio do RSa w routerze, to nie bedziesz mógł przypadkiem wysyłać z niego komend do shella?
to chyba najprostrze i najpewniejsze rozwiazanie.

z routera piszesz do /dev/ttyS0 kontroler ci odpala skrypty, albo pisze do pliku i masz komunikcje w dwie strony bez blokowania, dodatkowych interfejsów i wogóle. musisz tylko pamiętać,ze pierwszy znak niezaleznie od tego, jaki bedzie - nic nie zrobi. tak samo jak w putty, kontroler dostanie w odpowiedzi banner. no i przy starcie dostanie wszystkie mozliwe znaki, wiec musisz jakąś swoją sekwencją inicjować połączenie.
właśnie takie coś zrobiłem z dockstarem i arduino. wszystkie problemy rozwiązame-pełna integracja z systemem big_smile

testowałem takim czymś:

void setup() {
  Serial1.begin(115200);
 
}

int input = 0;

void loop() {
  if (Serial1.available()) {
    input = Serial1.read();
    switch (input) {
      case 'x':
        Serial1.println("date >> /tmp/arduino.data");
        break;
    }
  }  
}

zadnych problemów wink

15

Odp: Drugi serwer www z gargoyle

Dzięki Patryk za odpowiedz. Znowu znalazłem chwilę żeby wrócić do problemu.
Masz racje z tym RS ale miałem przejściówka na pl2303 i chciałem ją wykorzystać, poza tym łatwiej podłączyć USB niż kombinować z dziwnym podłączeniem w moim routerze.

Dalszy opis problemu.
Jak zmusiłem mikro-kontroler do wysyłania znaków co sekundę to w picocom'ie wszystko działa.Chociaż widzę coś na znak nie opróżnionego bufora tzn. resetuje mikro-kontroler i po kilkunastu sekundach odpalam picocom'a to na początku znaki ładują się błyskawicznie a po chwili dopiero co sekundę.
Polecenie cat /dev/ttyUSB0 wczytuje tylko jeden znak - po czym muszę go uruchomić jeszcze raz i dalej to samo.

Może ja czegoś tutaj nie rozumiem ale teraz się zawiozłem i muszę to uruchomić.

16

Odp: Drugi serwer www z gargoyle

Hura zadziałało.
Rozwiązanie gdyby ktoś tez z takim problemem walczył.
Okazał się ze picocom zmienia konfiguracje /dev/ttyUSB0 podczas uruchomienia.
wystarczyło uruchomić go w tle, odczytać konfiguracje stty -g -F /dev/ttyUSB0 i po wyłączeniu picocoma załadować ja przez stty. Później cat /dev/ttyUSB0 działa tak jak chciałem. big_smile

Pozdrowienia