Forum Turris
Fórum Turris Nápověda

Milí majitelé routerů Turris,

toto fórum bylo 9. 12. 2016 zmrazeno a nahrazeno naším novým Turris fórem. Ještě chvíli bude dostupné k prohlížení, ale již zde není možné přispívat. Více informací naleznete v oznámení o uzavření fóra.


Dear Turris routers users,

this forum has been frozen on Dec 9th, 2016 and replaced by our new Turris forum. It will be read-only accessible for some time after. For more information, read the announcement about closing the forum.

Nahoru Téma Majitelé routerů / Uživatelská vylepšení / Kompilace pro Turris
- - Od Eskymák (>) Dne 2014-05-17 18:58 Hlasů 1
Určitě nejsem jediný, komu by se hodilo na Turrisu spustit nějaký svůj oblíbený kousek SW.

Pomocí google a poskádáním různě roztříštěných návodů a informací dohromady jsem dostal následující příkaz
CC=powerpc-linux-gnu-gcc CXX=powerpc-linux-gnu-g++ ./configure --build=x86_64-linux-gnu --host=powerpc-linux-gnu

Zkompilovat se následně podařilo, ale binárku se mi nepodařilo přes SSH spustit, prej not found (místo toho aby to zahlásilo že je třeba nekompatibilní, že něco chybí a podobně).

Jedu na Debianu 7, x64 a pro debian se mi aplikaci úspěšně zkompilovat i následně pustit podařilo.

Vzhledem k tomu, že jsem nikdy předtím nic podobnýho neřešil, tak určitě dělám něco špatně, ale zároveň mi chybí spousta informací o Turrisu. Navíc jsou tu určitě ještě nějaký specifika OpenWRT.

Než zbytečně strávím další večer s googlem a metodou pokus omyl, žádám o radu někoho kdo ví jak na to. :-)

Dík
Nadřazený - Od Martin Strbačka Dne 2014-05-19 08:49
Dobry den,

pro preklad cehokoliv pro Turris je temer vzdy nutne pouzit stejny toolchain kterym byl prelozen i cely system. Pokud se nechcete zdrzovat sepisovanim Makefilu pro sestaveni balicku, muzete se inspirovat zde https://www.turris.cz/forum/topic_show.pl?pid=811;hl=ocaml . Kazdopadne at tak ci onak, nejaky cas to zabere.
Nadřazený - - Od jirig Dne 2014-05-19 12:51
Nevím úplně přesně, co jste zkoušel :wink: ale hlášení not found může být způsobené věcmi, které s kompilací přímo nesouvisejí:

- špatně nastavená práva: zkuste chmod u+rx program

- program není v cestě, kde se hledá: v aktuální adresáři program spouštějte jako ./program

Základní kontrolu lze provést následovně (vše lze po instalaci stejnojmenných balíčků vyzkoušet přímo na Turrisu):

- vypsání typu souboru, bude tam i architektura, pro kterou je program určený: file program

- vypsání dynamických knihoven, které program potřebuje: ldd ./program

- výpis systémových volání: strace ./program -- dost nepřehledné, ale často tak lze zjistit, co programu chybí.

Omlouvám se, jestli jsou rady příliš triviální, ale uživatelé Turrisu mají dost rozrůzněné znalosti.
Nadřazený - - Od mimi.vx Dne 2014-05-19 19:43
toto je stadardní chyba pokud nesouhlasí architektura binarky s architekturou systemu ...
Nadřazený - - Od jirig Dne 2014-05-19 20:10
Už jen úplně na okraj: Mně by docela zajímalo, jak ta hláška vznikla, protože bash píše cannot execute binary file (což je celkem rozumná reakce na návratovou hodnotu ENOEXEC z funkce execve()), kdežto ash trochu záhadně syntax error (patrně binárku v nějakou chvíli zkouší spustit i jako script). Myslel jsem si, že not found by mohlo souviset s nenalezenými knihovnami, ale chová se to stejně pro statické i dynamické programy.
Nadřazený - Od mimi.vx Dne 2014-05-19 21:36
to netusim , ale tyto hlasky me delal casto xtreamer kdyz jsem se na nem pokousel rozjet binarky slinkovane s jinou libc ..
Nadřazený - Od Eskymák (>) Dne 2014-05-19 21:03
Díky za rady, na debianu se mi podařilo získat informace jen z prvního příkazu a to:
file '/home/eskymak/openttd-1.4.0/bin/openttd'
/home/eskymak/openttd-1.4.0/bin/openttd: ELF 32-bit MSB executable, PowerPC or cisco 4500, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, BuildID[sha1]=0x576402ea433f9fb2c30bce4eaa10d130811a82f0, with unknown capability 0x41000000 = 0x13676e75, with unknown capability 0x10000 = 0xb0401, stripped
eskymak@unknown:~/openttd-1.4.0$


Hádám ale, že by zde asi nemělo být for GNU/Linux 2.6.18,

Více bohužel
eskymak@unknown:~/openttd-1.4.0$ ldd '/home/eskymak/openttd-1.4.0/bin/openttd'
  není dynamickým spustitelným kódem
eskymak@unknown:~/openttd-1.4.0$ strace '/home/eskymak/openttd-1.4.0/bin/openttd'
bash: strace: příkaz nenalezen


A na Turrisu dostávám jen:
cd /sd/bin/
root@Jurris:/sd/bin# ls
ai       baseset  game     lang    openttd  scripts
root@Jurris:/sd/bin# ./openttd
-ash: ./openttd: not found


Díky za rady, věřím že se tím pomalu prokousáme. Já se zase jdu chvíli věnovat tvýmu návodu a pokusím se nacpat si do systému potřebný balíky. :-)
Nahoru Téma Majitelé routerů / Uživatelská vylepšení / Kompilace pro Turris

Powered by mwForum 2.29.3 © 1999-2013 Markus Wichitill