| Forum / Linux / Kompilacja programów na arch. MISP na linuxie 2.4??? |
| Autor | Wiadomość |
| Roly
|
Posted: 25 Mar 2007 20:44:30 Witam! Dostalem za zadanie napisanie i wdrozenie prostego programu na architekture MISP. W urządzeniu jest uruchomiony system Linux z jadrem 2.4 Moje pytanie jest nastepujace jak skompilowac program w Linuxie x86 z jadrem 2.6?? Program bedzie napisany w uClibc. Pozdrawiam! |
| Tomasz Chmielewski
|
Posted: 25 Mar 2007 20:59:34 Roly schrieb: Witam!
Dostalem za zadanie napisanie i wdrozenie prostego programu na architekture MISP. W urządzeniu jest uruchomiony system Linux z jadrem 2.4 Moje pytanie jest nastepujace jak skompilowac program w Linuxie x86 z jadrem 2.6?? Program bedzie napisany w uClibc. Musisz miec narzedzia do kompilacji skrosnej (cross-compiler). A najprosciej - openwrt dostarcza odpowiednie narzedzia do kompilacji na rozne architektury: svn co https://svn.openwrt.org/openwrt/trunk/ cd trunk make menuconfig wybrac sobie jakis docelowy system (np. Broadcom BCM947xx/953xx [2.4]). make I zbuduje ci sie pelne srodowisko do kompilacji na architekture mips. Potem tylko odpowiednio zdefiniowac sciezki (PATH, CFLAGS itp.), i mozesz kompilowac swoje wlasne programy "napisane w uClibc" (chociaz chyba co innego miales na mysli). Inna mozliwoscia jest skorzystanie z buildroot - http://buildroot.uclibc.org/ - ale oni udostepniaja dziwne paczki ("daily snapshots"), ktore jednego dnia sie buduja, innego nie... |
| Roly
|
Posted: 25 Mar 2007 21:38:36 Kompilowales moze cos kiedys na Access Pointy?? Ten program co mam napisac wlasnie ma dzialac na D-Link DSL-G624T. Jezeli tak to bylbym wdzieczny za jakas szersza informacje... Tam wlasnie dziala MISP: #cat /proc/version 2.95.3 2001 0315 (release/MontaVista)) |
| Tomasz Chmielewski
|
Posted: 26 Mar 2007 08:07:07 Roly schrieb: Kompilowales moze cos kiedys na Access Pointy??
Ten program co mam napisac wlasnie ma dzialac na D-Link DSL-G624T. Model sprzetu raczej nic nie ma do dzialania programu (no, chyba ze jakis b. specyficzny korzystajacy z funkcji akurat tego routerka). Jezeli tak to bylbym wdzieczny za jakas szersza informacje...
Poszukaj w google czegos o "cross-compiling". Tam wlasnie dziala MISP:
#cat /proc/version 2.95.3 2001 0315 (release/MontaVista)) MontaVista tez powinna miec jakis toolchain do tego (chociaz te dwa co ci podalem powinny wystarczyc). |
| Roly
|
Posted: 26 Mar 2007 11:56:31 Zrobiłem tak: Skompilowałem https://svn.openwrt.org/openwrt/trunk/ na odpowiedni procesor tak jak podałeś i w katalogu /root/instalki/trunk/staging_dir_mipsel/mipsel-linux- uclibc/bin jest gcc wiec napisałem program proste hello world main() { printf("Hello"); } zapisałem jako l.c potem skompilowalem ./gcc l.c -o l.bin wgrałem na router i wyskakuje błąd # ./l.bin ./l.bin: No such file or directory # Hmm chyba że coś źle robie?? Byłbym wdzięczny za jeszcze jakieś info bo już nie mam pomysłów a muszę ten program napisać Pozdrawiam |
| Roly
|
Posted: 26 Mar 2007 11:58:36 Złą linijkę wstawilem ten błąd to: # ./l.bin ./l.bin: 1: Syntax error: "(" unexpected # |
| Tomasz Chmielewski
|
Posted: 26 Mar 2007 13:26:47 Roly schrieb: Złą linijkę wstawilem ten błąd to:
# ./l.bin ./l.bin: 1: Syntax error: "(" unexpected # Zobacz na routerze (lub skopiuj plik z routera): file <jakas binarka I identycznie z twoim skompilowanym programem. Chociaz pewnie sie rozchodzi i biblioteke C (glibc, uClibc). Sprobuj skompilowac binarke statycznie, zobacz czy wtedy zadziala. |
| Roly
|
Posted: 26 Mar 2007 14:46:07 Wiec tak: /root/instalki/trunk/staging_dir_mipsel/mipsel-linux-uclibc/bin main() { printf("Hello "); } Kompiluje: Nie ma żadnych błędów. Nie ma żadnych błędów l-dynamic.bin: ELF 32-bit LSB executable, MIPS, version 1 (SYSV), dynamically linked (uses shared libs), not stripped l-static.bin: ELF 32-bit LSB executable, MIPS, version 1 (SYSV), statically linked, not stripped kill-from-router: ELF 32-bit LSB executable, MIPS, MIPS-I version 1 (SYSV), dynamically linked (uses shared libs), stripped Jednak trochę się różnią tylko jak to teraz zmienić?? Po wgraniu na router: # ./l-dynamic.bin ./l-dynamic.bin: 1: Syntax error: "(" unexpected # ./l-static.bin ./l-static.bin: 1: Syntax error: "(" unexpected Już dwa dni nad tym siedze bez efektów.... PS: uClibc-0.9.28 takie jest uClibc zainstalowane z trunk uClibc-0.9.19 takie jest uClibc na routerze Może z tym coś jest nie tak, że wersje są różne? |
| Tomasz Chmielewski
|
Posted: 26 Mar 2007 15:10:00 Roly schrieb: PS:
uClibc-0.9.28 takie jest uClibc zainstalowane z trunk uClibc-0.9.19 takie jest uClibc na routerze Może z tym coś jest nie tak, że wersje są różne? Najprawdopodobniej: 17 August 2005, uClibc 0.9.28 Released CodePoet Consulting is pleased to announce the release of uClibc 0.9.28. You are probably used to this by now, but this release is NOT binary compatible with uClibc 0.9.27 or any earlier release, so be prepared to recompile your software if you are still using an old version of uClibc. Sprobuj zbudowac toolchain z buildroot - tam jest mozliwosc wybrania uclibc. |
| Roly
|
Posted: 26 Mar 2007 18:52:53 Sprobuj zbudowac toolchain z buildroot - tam jest mozliwosc wybrania uclibc. Tylko jest pewien problem bo akurat z uClibc 0.9.19 sie nie kompiluje : ( a 0.9.27 mnie tez nie ratuje bo z opisu na stronie wynika że też nie kompatybilne :( Nie mogę nigdzie znaleźć starszego buildroot. Nie masz gdzieś?? |
| Tomasz Chmielewski
|
Posted: 26 Mar 2007 19:10:28 Roly schrieb: Sprobuj zbudowac toolchain z buildroot - tam jest mozliwosc wybrania uclibc.
Tylko jest pewien problem bo akurat z uClibc 0.9.19 sie nie kompiluje : ( a 0.9.27 mnie tez nie ratuje bo z opisu na stronie wynika że też nie kompatybilne :( Nie mogę nigdzie znaleźć starszego buildroot. Nie masz gdzieś?? Do twojego routera producent powinien dawac kod zrodlowy? Moze tam bedzie toolchain. Poszperaj tez na stronach MontaVisty. |
| Roly
|
Posted: 26 Mar 2007 19:28:14 Do twojego routera producent powinien dawac kod zrodlowy? Moze tam bedzie toolchain. No właśnie jest kod źródłowy np http://dlink.pl/?go=gNTyP9CgrdFOIC4AStFCF834mptYLu5TTNvhLPG3yV3oVY98gKltbNlwaaRp5j8oAmu5j3cf/YEfRY6kjP7kIlhR4aiIMoK7C5LttWdXksBOFfoWboDKv0KDuHDdeJDL ale nie ma tam toolchain :( Pomalutku tracę już nadzieje że coś takiego da się zrobic :( |
| Tomasz Chmielewski
|
Posted: 26 Mar 2007 19:51:56 Roly schrieb: Do twojego routera producent powinien dawac kod zrodlowy?
Moze tam bedzie toolchain. No właśnie jest kod źródłowy np http://dlink.pl/?go=gNTyP9CgrdFOIC4AStFCF834mptYLu5TTNvhLPG3yV3oVY98gKltbNlwaaRp5j8oAmu5j3cf/YEfRY6kjP7kIlhR4aiIMoK7C5LttWdXksBOFfoWboDKv0KDuHDdeJDL ale nie ma tam toolchain :( Pomalutku tracę już nadzieje że coś takiego da się zrobic :( Da sie, ale porywasz sie z motyka na Slonce. Innymi slowy: usilujesz zrobic cos, o czym za bardzo nie masz pojecia :) |
| Roly
|
Posted: 26 Mar 2007 19:59:20 Da sie, ale porywasz sie z motyka na Slonce.
Innymi slowy: usilujesz zrobic cos, o czym za bardzo nie masz pojecia :) Może i sie porywam ale najgorsze jest to że nie mam wyjścia i muszę to napisać :( |
|
Czas ładowania strony (sek.): 1.059 users miniBB.net © 2001-2010 | Polityka Prywatności e-giełdy + opisy gg + kumy fubi ° oko na maroko ° nimda °
|