Linksys WRT54GL WLAN router (RS232)

Kezdőlap Fórumok Programozás Linksys WRT54GL WLAN router (RS232)

10 bejegyzés megtekintése - 1-10 / 73
  • Szerző
    Bejegyzés
  • #2176638
    Androla
    Felhasználó

      Egy példa ha valakinek komolyabban felkeltettem az érdeklődését:

      http://www.jbprojects.net/projects/wifirobot/

      #2176639
      Androla
      Felhasználó

        Egy példa ha valakinek komolyabban felkeltettem az érdeklődését:

        http://www.jbprojects.net/projects/wifirobot/

        #2176640
        admin
        Adminisztrátor
          Androla wrote:
          Üdv. Mindenkinek !

          A téma címében szereplő WRT54GL routert szeretnénk programozni,
          a feladat a routerhez letölthető moddingok módosítása kiegészítése,
          illetve új script írása lenne.

          Ehhez C-ben kell programoznod…..

          Androla wrote:
          A feladat nonprofit jellegű, a http://www.hobbielektronika.hu portálon vetettem fel egy kérdést, hogy
          kicsit túrjuk meg ezt a routert és a már megszokott funkciók mellett használjuk távvezérlésre is.
          A kérdés megoldásához programozás téren nem tudok hozzászólni mert nagyon távol áll tőlem a téma.

          Csak elektronikai és Pic programozás terén vagyok jártas.

          Ez alapnak nem rossz!

          Androla wrote:
          Úgy tudom, hogy ez a router és a letölthető moddingok is linux alapon nyugszanak

          Jól tudod…

          Androla wrote:
          ezért is kérem a ti segítségeteket, ha bárkinek felkeltettem az érdeklődését
          és ideje illetve kedve van a kérdéssel kicsit foglalkozni, szívesen olvasnám tanácsait !

          nem olyan régen építettem egy ilyen routerből egy kis okosságot, de sok tanácsot nem tudok adni…
          bár az elektronika része még elevenen él emlékeimben 😀

          Androla wrote:
          A feladat a következő:
          Ebben a Routerban elvan dugva két soros port, nincs kivezetve de nem is ez a gond:)
          Az egyiken kellene bytokat kikülldeni, ezeket majd értelmezni fogja egy PIC.
          A Neten van pár hasonló megoldás, amit majd befogok linkelni, de ezeknél ezt a kérdést
          úgy oldják meg, hogy írtak egy kliens programot hozzá ami adatokat külld a router fele,
          a router felismeri azokat és kitolja az UART-portján.
          Ezzel nincs is semmi gond, csak kényelmetlen, hogy mindig kéznél kellene lennie ennek a
          kliens.exe proginak ha valamit ki/be akarunk kapcsolni.
          Ezért gondoltunk arra, hogy a routerben lévő config honlapot kellene módosítani valahogy
          vagyis amikor valaki lehívja azt és rendesen user/pass után bejelentkezik a routerba akkor
          ott legyen még egy fül aminek pl: „Remote Control” a neve, ha idekattintunk akkor lejön
          egy új lap az explorerbe ahol gombok és mezők vannak, a mezőkbe belehetne írni karaktereket
          a mellettük lévő gomb pl”Send” kiküldi őket az RS232-őn.

          Ha esetleg van olyan közületek aki minimális segítséget tud nyújtani
          megköszönnénk, „sok kicsi sokra megy” főleg ha az ember nem jártas programozás terén !

          Üdv.
          Androla…

          a soros porthoz kell egy MAX232 vagy 233 meg, némi nyák (http://www.blackpanther.hu/~vector/WRT54GL/adk233b.jpg) meg ellenállás. Az össz költség úgy 500Ft lehet… Ezt a kliens.exe/ explorer dolgot meg sem hallottam itt… De a lényeg, hogy amit csinálni akarsz nem olyan vészes, ha
          ismered a cgi-t. Ha nem akkor még mindig megoldás, hogy az egészet valami egyszerűbb nyelven valósítod meg, pl perl vagy python, netalántán bash. Mivel egy full linux fut a routeren akár ssh-n is lehet „röptében” programozni módon. Csak ehhez kell egy bővítés bele, pl: nálam 4Gb-os SD-card van berakva. Erre már felfér elég sok dolog…

          #2176641
          admin
          Adminisztrátor
            Androla wrote:
            Üdv. Mindenkinek !

            A téma címében szereplő WRT54GL routert szeretnénk programozni,
            a feladat a routerhez letölthető moddingok módosítása kiegészítése,
            illetve új script írása lenne.

            Ehhez C-ben kell programoznod…..

            Androla wrote:
            A feladat nonprofit jellegű, a http://www.hobbielektronika.hu portálon vetettem fel egy kérdést, hogy
            kicsit túrjuk meg ezt a routert és a már megszokott funkciók mellett használjuk távvezérlésre is.
            A kérdés megoldásához programozás téren nem tudok hozzászólni mert nagyon távol áll tőlem a téma.

            Csak elektronikai és Pic programozás terén vagyok jártas.

            Ez alapnak nem rossz!

            Androla wrote:
            Úgy tudom, hogy ez a router és a letölthető moddingok is linux alapon nyugszanak

            Jól tudod…

            Androla wrote:
            ezért is kérem a ti segítségeteket, ha bárkinek felkeltettem az érdeklődését
            és ideje illetve kedve van a kérdéssel kicsit foglalkozni, szívesen olvasnám tanácsait !

            nem olyan régen építettem egy ilyen routerből egy kis okosságot, de sok tanácsot nem tudok adni…
            bár az elektronika része még elevenen él emlékeimben 😀

            Androla wrote:
            A feladat a következő:
            Ebben a Routerban elvan dugva két soros port, nincs kivezetve de nem is ez a gond:)
            Az egyiken kellene bytokat kikülldeni, ezeket majd értelmezni fogja egy PIC.
            A Neten van pár hasonló megoldás, amit majd befogok linkelni, de ezeknél ezt a kérdést
            úgy oldják meg, hogy írtak egy kliens programot hozzá ami adatokat külld a router fele,
            a router felismeri azokat és kitolja az UART-portján.
            Ezzel nincs is semmi gond, csak kényelmetlen, hogy mindig kéznél kellene lennie ennek a
            kliens.exe proginak ha valamit ki/be akarunk kapcsolni.
            Ezért gondoltunk arra, hogy a routerben lévő config honlapot kellene módosítani valahogy
            vagyis amikor valaki lehívja azt és rendesen user/pass után bejelentkezik a routerba akkor
            ott legyen még egy fül aminek pl: „Remote Control” a neve, ha idekattintunk akkor lejön
            egy új lap az explorerbe ahol gombok és mezők vannak, a mezőkbe belehetne írni karaktereket
            a mellettük lévő gomb pl”Send” kiküldi őket az RS232-őn.

            Ha esetleg van olyan közületek aki minimális segítséget tud nyújtani
            megköszönnénk, „sok kicsi sokra megy” főleg ha az ember nem jártas programozás terén !

            Üdv.
            Androla…

            a soros porthoz kell egy MAX232 vagy 233 meg, némi nyák (http://www.blackpanther.hu/~vector/WRT54GL/adk233b.jpg) meg ellenállás. Az össz költség úgy 500Ft lehet… Ezt a kliens.exe/ explorer dolgot meg sem hallottam itt… De a lényeg, hogy amit csinálni akarsz nem olyan vészes, ha
            ismered a cgi-t. Ha nem akkor még mindig megoldás, hogy az egészet valami egyszerűbb nyelven valósítod meg, pl perl vagy python, netalántán bash. Mivel egy full linux fut a routeren akár ssh-n is lehet „röptében” programozni módon. Csak ehhez kell egy bővítés bele, pl: nálam 4Gb-os SD-card van berakva. Erre már felfér elég sok dolog…

            #2176642
            gabaman
            Felhasználó

              Régóta tervezem hogy én is fabrikálok valamit, de valahogy idő vagy szándék mindig hiányzott. A beépített honlapot nem érdemes módosítani, rengeteg felesleges munkát igényel. Viszont könnyen lehet készíteni egy kis HTTP szervert az irányításhoz „bedrótozott” tartalommal. Írok egy kis példát:

              Alapnak itt van ez a szerver progi:
              http://www.jbprojects.net/projects/wifirobot/package/carserver/src/carserver.c

              Ezt kell módosítani úgy, hogy a readline() helyett egy read_http() funkciót kell írni (nem nehéz) ami pseudo kóddal így néz ki:

              Code:
              beolvasás EOF-ig
              HTTP feldolgozás
              ha metódus nem POST vagy ha nincs jelszó vagy ha nem jó a jelszó
                  login kiírás
                  retun
              vezérlés oldal kiírás (a jelszót be kell helyettesíteni)
              ha van control váltózó
                  az értékének kiírása a /dev/tts soros portra

              A HTTP beolvasás egyszerű, a mellékelt POST kérést kell csak beolvasni és a három változót kibányászni.

              Bejelentkező oldal:

              Code:
              Felhasználó:
              Jelszó:

              Vezérlő oldal (minta):

              Code:





              POST üzenet (amit a szerverünk megkap):

              Code:
              POST / HTTP/1.1
              Host: example.com
              Content-Type: application/x-www-form-urlencoded
              Content-Length: XXX

              user=$USER&pass=$PASS&control=$CODE

              Ha mindez kész lesz 🙂 akkor csak a http://ROUTER_IP:1500 címet kell beírni a böngészőbe (neked: explorer) és a weben keresztül tudod vezérelni amit szeretnél. A módosítást egy átlagos programozó 1-2 nap alatt meg tudja csinálni a leírtak alapján.

              #2176643
              gabaman
              Felhasználó

                Régóta tervezem hogy én is fabrikálok valamit, de valahogy idő vagy szándék mindig hiányzott. A beépített honlapot nem érdemes módosítani, rengeteg felesleges munkát igényel. Viszont könnyen lehet készíteni egy kis HTTP szervert az irányításhoz „bedrótozott” tartalommal. Írok egy kis példát:

                Alapnak itt van ez a szerver progi:
                http://www.jbprojects.net/projects/wifirobot/package/carserver/src/carserver.c

                Ezt kell módosítani úgy, hogy a readline() helyett egy read_http() funkciót kell írni (nem nehéz) ami pseudo kóddal így néz ki:

                Code:
                beolvasás EOF-ig
                HTTP feldolgozás
                ha metódus nem POST vagy ha nincs jelszó vagy ha nem jó a jelszó
                    login kiírás
                    retun
                vezérlés oldal kiírás (a jelszót be kell helyettesíteni)
                ha van control váltózó
                    az értékének kiírása a /dev/tts soros portra

                A HTTP beolvasás egyszerű, a mellékelt POST kérést kell csak beolvasni és a három változót kibányászni.

                Bejelentkező oldal:

                Code:
                Felhasználó:
                Jelszó:

                Vezérlő oldal (minta):

                Code:





                POST üzenet (amit a szerverünk megkap):

                Code:
                POST / HTTP/1.1
                Host: example.com
                Content-Type: application/x-www-form-urlencoded
                Content-Length: XXX

                user=$USER&pass=$PASS&control=$CODE

                Ha mindez kész lesz 🙂 akkor csak a http://ROUTER_IP:1500 címet kell beírni a böngészőbe (neked: explorer) és a weben keresztül tudod vezérelni amit szeretnél. A módosítást egy átlagos programozó 1-2 nap alatt meg tudja csinálni a leírtak alapján.

                #2176644
                Androla
                Felhasználó

                  Köszönöm az eddigi hozzászólásokat !

                  A elektro része a dolgoknak nem fog gondot okozni, illetve a Pic programozás sem (persze csak assemblerben:) ),
                  már jópár éve benne vagyok a dolgokban, de c++ linux meg színte bármi más valahogy kimaradt azt életemből.

                  Ha jól értem tehát nekem igazából egy sciptet kell iratnom valakivel, ami egy pl:1500-as portról úgy fog jelentkezni
                  mint egy weblap ?

                  Ennek a feltöltéséhez mindenképp kellene egy sd vagy elképzelhető, hogy elfér valahol a router saját memóriájában is
                  valahol a modding firmware mellett ?

                  Mi történik abban az esetben ha a router esetleg használja ezt a 2 UART-ot valamire, és közben fut az én sriptem is
                  akkor hol az openwrt hol pedig az én sciptem fog majd írkálni az UART-ra ?

                  Vagy esetleg valahogy kizárólagosan lekellene foglalni csak a script számára?
                  (Azért jutott eszembe mert valaki már említette, hogy normal esetben ott valamilyen debug infok mennek és ki szeretném
                  azt zárni, hogy a Pic esetleg egy ilyen debug byte-ot parancsként ismer fel)

                  #2176645
                  Androla
                  Felhasználó

                    Köszönöm az eddigi hozzászólásokat !

                    A elektro része a dolgoknak nem fog gondot okozni, illetve a Pic programozás sem (persze csak assemblerben:) ),
                    már jópár éve benne vagyok a dolgokban, de c++ linux meg színte bármi más valahogy kimaradt azt életemből.

                    Ha jól értem tehát nekem igazából egy sciptet kell iratnom valakivel, ami egy pl:1500-as portról úgy fog jelentkezni
                    mint egy weblap ?

                    Ennek a feltöltéséhez mindenképp kellene egy sd vagy elképzelhető, hogy elfér valahol a router saját memóriájában is
                    valahol a modding firmware mellett ?

                    Mi történik abban az esetben ha a router esetleg használja ezt a 2 UART-ot valamire, és közben fut az én sriptem is
                    akkor hol az openwrt hol pedig az én sciptem fog majd írkálni az UART-ra ?

                    Vagy esetleg valahogy kizárólagosan lekellene foglalni csak a script számára?
                    (Azért jutott eszembe mert valaki már említette, hogy normal esetben ott valamilyen debug infok mennek és ki szeretném
                    azt zárni, hogy a Pic esetleg egy ilyen debug byte-ot parancsként ismer fel)

                    #2176646
                    gabaman
                    Felhasználó
                      Androla wrote:
                      Ha jól értem tehát nekem igazából egy sciptet kell iratnom valakivel, ami egy pl:1500-as portról úgy fog jelentkezni mint egy weblap ?

                      Tőlem használhatsz szkriptet is, de 4MB-ba nem nagyon fog beleférni egy interpreter. Ha íratni akarsz, akkor nem nagyon fog menni ingyen… Az általam felvázolt megoldás egy a sok közül, máshogy is meg lehet oldani. Írattathatsz kernel modult, meghekkeltetheted a linsys beépített httpd szerverét is, stb.

                      Androla wrote:
                      Ennek a feltöltéséhez mindenképp kellene egy sd vagy elképzelhető, hogy elfér valahol a router saját memóriájában is valahol a modding firmware mellett ?

                      A firmware szó nagyon megkever, a módosított rendszert úgy képzeld el, mint egy flash meghajtóra (pen drive) telepített Windows XP csak linux köntösben 😉 . Mivel 4MB flash memória van benne, bármit írhatsz rá, és az ott is marad.

                      Androla wrote:
                      Mi történik abban az esetben ha a router esetleg használja ezt a 2 UART-ot valamire, és közben fut az én sriptem is
                      akkor hol az openwrt hol pedig az én sciptem fog majd írkálni az UART-ra ?

                      A Linux rendszermag nem enged többszörös hozzáférést a soros portokhoz. Úgy érheted el mint egy fájl (pl. /dev/ttyS0), ha használatban van, hibaüzenettel visszatér a program és nincs második meg sokadik hozzáférés. A Linux nem DOS. Nagyon nem…

                      Androla wrote:
                      Vagy esetleg valahogy kizárólagosan lekellene foglalni csak a script számára?

                      Nem kell foglaltatni, alapból zárolva lesz.

                      Androla wrote:
                      (Azért jutott eszembe mert valaki már említette, hogy normal esetben ott valamilyen debug infok mennek és ki szeretném azt zárni, hogy a Pic esetleg egy ilyen debug byte-ot parancsként ismer fel)

                      Már megint ez „valaki mondta”… Miért nem néztél utána? Nekem kb. 40 másodpercembe került hogy megtudjam, külön JTAG port van (rev. 4.0), és nem megy debug üzenet egyetlen UART-on keresztül sem.

                      Forrás:
                      http://www.linuxelectrons.com/features/howto/consolidated-hacking-guide-linksys-wrt54gl?page=0%2C1

                      Ha kevésnek találod a 4MB OS tárhelyet (értsd: rendszer ROM), használhatsz akár 2TB-os (2000GB) NAS-t is az ethernet porthoz csatlakoztatva.

                      #2176647
                      gabaman
                      Felhasználó
                        Androla wrote:
                        Ha jól értem tehát nekem igazából egy sciptet kell iratnom valakivel, ami egy pl:1500-as portról úgy fog jelentkezni mint egy weblap ?

                        Tőlem használhatsz szkriptet is, de 4MB-ba nem nagyon fog beleférni egy interpreter. Ha íratni akarsz, akkor nem nagyon fog menni ingyen… Az általam felvázolt megoldás egy a sok közül, máshogy is meg lehet oldani. Írattathatsz kernel modult, meghekkeltetheted a linsys beépített httpd szerverét is, stb.

                        Androla wrote:
                        Ennek a feltöltéséhez mindenképp kellene egy sd vagy elképzelhető, hogy elfér valahol a router saját memóriájában is valahol a modding firmware mellett ?

                        A firmware szó nagyon megkever, a módosított rendszert úgy képzeld el, mint egy flash meghajtóra (pen drive) telepített Windows XP csak linux köntösben 😉 . Mivel 4MB flash memória van benne, bármit írhatsz rá, és az ott is marad.

                        Androla wrote:
                        Mi történik abban az esetben ha a router esetleg használja ezt a 2 UART-ot valamire, és közben fut az én sriptem is
                        akkor hol az openwrt hol pedig az én sciptem fog majd írkálni az UART-ra ?

                        A Linux rendszermag nem enged többszörös hozzáférést a soros portokhoz. Úgy érheted el mint egy fájl (pl. /dev/ttyS0), ha használatban van, hibaüzenettel visszatér a program és nincs második meg sokadik hozzáférés. A Linux nem DOS. Nagyon nem…

                        Androla wrote:
                        Vagy esetleg valahogy kizárólagosan lekellene foglalni csak a script számára?

                        Nem kell foglaltatni, alapból zárolva lesz.

                        Androla wrote:
                        (Azért jutott eszembe mert valaki már említette, hogy normal esetben ott valamilyen debug infok mennek és ki szeretném azt zárni, hogy a Pic esetleg egy ilyen debug byte-ot parancsként ismer fel)

                        Már megint ez „valaki mondta”… Miért nem néztél utána? Nekem kb. 40 másodpercembe került hogy megtudjam, külön JTAG port van (rev. 4.0), és nem megy debug üzenet egyetlen UART-on keresztül sem.

                        Forrás:
                        http://www.linuxelectrons.com/features/howto/consolidated-hacking-guide-linksys-wrt54gl?page=0%2C1

                        Ha kevésnek találod a 4MB OS tárhelyet (értsd: rendszer ROM), használhatsz akár 2TB-os (2000GB) NAS-t is az ethernet porthoz csatlakoztatva.

                      10 bejegyzés megtekintése - 1-10 / 73
                      • Be kell jelentkezni a hozzászóláshoz.