Kezdőlap › Fórumok › Programozás › Linksys WRT54GL WLAN router (RS232)
- This topic has 72 hozzászólás, 7 résztvevő, and was last updated 16 years, 7 months telt el by
admin.
-
SzerzőBejegyzés
-
2008-11-25-11:09 #2176638
Egy példa ha valakinek komolyabban felkeltettem az érdeklődését:
2008-11-25-11:09 #2176639Egy példa ha valakinek komolyabban felkeltettem az érdeklődését:
2008-11-25-12:48 #2176640Androla 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 nyugszanakJó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…2008-11-25-12:48 #2176641Androla 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 nyugszanakJó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…2008-11-25-16:13 #2176642Ré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.cEzt 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 portraA 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: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: XXXuser=$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.
2008-11-25-16:13 #2176643Ré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.cEzt 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 portraA 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: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: XXXuser=$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.
2008-11-25-19:08 #2176644Kö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)2008-11-25-19:08 #2176645Kö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)2008-11-25-20:28 #2176646Androla 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%2C1Ha 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.
2008-11-25-20:28 #2176647Androla 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%2C1Ha 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.
-
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.
legutóbbi hsz