Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: lukas016 05. 11. 2013, 22:48:38
-
Dobry den,
neviete prosim ako mozem do gcc nainstalovat podporu pre mips procesory lebo v repozitaroch neviem nic najst a na internete som nasiel len nejake platene alebo odlahcene verzie (nie priamo pre gcc). Potreboval by som nieco obecne lebo neviem presny typ procesora.
Za odpoved vopred dakujem.
-
http://gcc.gnu.org/onlinedocs/gcc/MIPS-Options.html
-
Skus buildscript
http://d3s.mff.cuni.cz/teaching/operating_systems/download/toolchain.mips.sh (http://d3s.mff.cuni.cz/teaching/operating_systems/download/toolchain.mips.sh)
Zbuildi sa to do CROSS_PREFIX; aktualna zlozka bude pracovna, takze musis byt mimo CROSS_PREFIXu.
-
Napokon sa mi podarilo nainstalovat mips-linux-gnu-gcc ale bohuzial na cielovom zariadeni nemozem dany program spustit zrejme kvoli nastaveniu sh.https://www.google.sk/#q=ubuntu+install+libgmp3c2
Ale dik za script skusim sa na to pozriet.
-
http://gcc.gnu.org/onlinedocs/gcc/MIPS-Options.html
Tie prepinace som skusal bohuzial mi napisalo ze je to neplatny prepinac zrejme mi chybaju nejake kniznice.
-
lebo neviem presny typ procesora.
To je v případě MIPSu dost fatální problém...
https://www.gentoo.org/doc/en/handbook/handbook-mips.xml?part=1&chap=2
https://www.gentoo.org/doc/en/handbook/handbook-mips.xml?part=1&chap=5
-
Viem si ho zistit len ked som pisal dotaz tak som to bohuzial nevedel. Ale momentalne ma skor trapy to ze nemozem spustit binarny subor lebo sh mi hlasy ze sa nenasiel.
-
Este mi niekto nevie povedat ze ak som zvolil zly typ cpu je mozne ze sh mi pri spusteni zahlasi ze subor sa nenasiel?
lebo som zvyknuty ze v tskom pripade dostanem chybovu hlasku zle ELF...
Za odpoved vopred dakujem.
-
Este mi niekto nevie povedat ze ak som zvolil zly typ cpu je mozne ze sh mi pri spusteni zahlasi ze subor sa nenasiel?
Obavam se, ze popis problemu zustal nepochopen. Co, kde, kdy to hlasi?
-
Ak chcem spusit program na cielovom zariadeni napr ./program
Tak dostanem chybove hlasenie od sh, ze subor sa nenasiel. Pritom tam fyzicky je a dokazem ho cez cat vypisat.
Mam dojem ze na cielovom zariadeni nie je ciste sh ale asi ash. Snad to pomoze.
-
skuste na cielovej masine (s tym mips procakom) najskor:
ldd ./program
ak vypise zoznam kniznic a ako sa mapuju tak cielove cpu by mohlo byt ok, a v zozname bude pri niektorych knizniciach uvedne not found
-
Ak nahodou je to nejake embedded zariadenie a mate tam minimalny system a nemate ldd, tak to iste spravi aj toto:
LD_TRACE_LOADED_OBJECTS=1 ./program
-
ldd som uz skusal ale nie je tam nainstalovane, bohuzial ani nastavenie globalnej premenej nepomohlo.
Zariadenie na ktorom to skusam je NanoStation M5 od ubnt. Viem ze maju toolchain pre ich sdk ale to mam taky dojem ze vytvara cely firmware ale ja potrebujem len jednoduchy program tam dat.
-
Skuste to s tou premenou napr. na shell
LD_TRACE_LOADED_OBJECTS=1 /bin.sh
ak to tam vypise zoznam kniznic tak mate problem s tym, ze nemate spravny prekladac.
Ved pozite sdk a skompilujte si cez neho svoj program.
-
Tak problem bude s prekladacom. SDK je kus problem nainstalovat lebo je len na 32bit.
-
Kdybych vedel o jake zarizeni se jedna, mohla by byt odpoved presnejsi, jinak bych asi doporucil http://wiki.openwrt.org/doc/devel/crosscompile (je to lepsi si to sestavit sam a pak pridavat pripadne knihovny/zavislosti) a pripadne hotove toolchains (jsou tam i cele SDK) jako napr. http://downloads.openwrt.org/attitude_adjustment/12.09/ramips/rt305x/OpenWrt-Toolchain-ramips-for-mipsel_r2-gcc-4.6-linaro_uClibc-0.9.33.2.tar.bz2
-
Pisal som vyssie NanoStation M5 od www.ubnt.com, alebo ine ich zariadenia. Skusal som ich sdk skompilovat bez uprav ale vyhodilo mi to chybu, ze sa nenasla zlozka a nemal som uz chut skusat SDK pre ine zariadenie alebo zistovat odkial stiahnem chybajuci priecinok. Pokial viem malo by to bezat na upravenom openwrt. Co sa tyka ich sdk tak to vytvara pomocou make ale cely firmware co sa mi zda byt kus zbytocne ked chcem momentalne vytvorit len jednoduchu aplikaciu aby som si vyskusal kompilaciu.
-
Zbytecne je umrit. Tou praci navic ziskas vsechny zavislosti pro tu binarku a pokud neco na cilovem zarizeni chybi(nejake knihovny), tak to tam budes mit moznost dohrat. Ale co ti budu radit, sam urcite vis co je nejlepsi :) Chci ti jenom usetrit cas, stejne te to nemine. Ale i cesta je cil...
Jinak M5 je myslim vice verzi, ale pokud mas tu novejsi, tak to je asi ar71xx (to si jeste zkontroluj pres /proc/cpunifo) http://downloads.openwrt.org/attitude_adjustment/12.09/ar71xx/generic/OpenWrt-Toolchain-ar71xx-for-mips_r2-gcc-4.6-linaro_uClibc-0.9.33.2.tar.bz2
-
Tak ja mometalne potrebujem len zakladne veci, ktore by sa dali spravit aj cez shell ale radsej by som to riesil v ramci jednej aplikacie a znizil HW naroky. A robit cely firmware velmi nechcem z dovodu, ze ak by to fungovalo tak ako chcem tak by bolo potrebne nahravat upraveny firmware do kazdeho zariadenia a tych je niekolko tisic.
+ rad sa naucim nieco nove.
-
A robit cely firmware velmi nechcem z dovodu, ze ak by to fungovalo tak ako chcem tak by bolo potrebne nahravat upraveny firmware do kazdeho zariadenia a tych je niekolko tisic.
To je samozrejme uplny nesmysl. Zato by to fungovalo, neb by to bylo zkompilovano proti knihovnam, ktere firmware skutecne obsahuje. Ne proti tem, jejichz zdrojaky si nainstalujes na svuj pocitac a ktere zrejme budou asi o nekolik let novejsi.
-
A robit cely firmware velmi nechcem z dovodu, ze ak by to fungovalo tak ako chcem tak by bolo potrebne nahravat upraveny firmware do kazdeho zariadenia a tych je niekolko tisic.
Ok, delej jak myslis. Ja jsem nikde nic o vlastnim firmware nepsal. Psal jsem, ze si mas zkompilovat zakladni OpenWrt pro tu danou platformu(ar71xx) a SVN revizi OpenWrt. Tim ziskas kompletni toolchain a staging adresar (include, libs pro target), se kterym budes teoreticky schopny zkompilovat neco co ti na tom kramu od Ubnt pobezi. Nikde neni napsane, ze to musis prehravat cele. Tim ze pouzijes OpenWrt build system, usetris spousty casu a nervu. Lehce pak pridas dalsi zavislosti (chybi libpcap? libsqlite3? neni problem, pridas do konfigurace a znovu zkompilujes).
Ja mam treba nekolik takovych souboru, ktere pouzivam pro ruzne zarizeni, ktere si pomoci prikazu 'source' nahraju do aktualniho prostredi:
export OWRT_ROOT=/opt/devel/openwrt/cm2
export STAGING_DIR=$OWRT_ROOT/staging_dir/target-mips_r2_uClibc-0.9.33
export TOOLCHAIN=$OWRT_ROOT/staging_dir/toolchain-mips_r2_gcc-4.6-linaro_uClibc-0.9.33
export PATH=$TOOLCHAIN/bin:$PATH
export ARCH=mips
export CROSS_COMPILE=mips-openwrt-linux-uclibc-
export CC=${CROSS_COMPILE}gcc
export CXX=${CROSS_COMPILE}g++
export LD=${CROSS_COMPILE}gcc
export STRIP=${CROSS_COMPILE}strip
export AR=${CROSS_COMPILE}ar
export RANLIB=${CROSS_COMPILE}ranlib
a pak mam treba v Makefile (pokud na zarizeni chybi libpcap):
cp $(STAGING_DIR)/usr/lib/libpcap.so.1.1 root@mips-cm2:/usr/lib
A stejne pokud tady mluvis o 1k+ zarizenich, tak te vetsinou vlastni firmware nemine, protoze to budes chtit nejak spravovat, monitorovat, upgradovat...
-
Na experimenty doporucuji buildroot. Je to system, ktery stahne vse potrebne a podle zadanych pozadavku sestavi komplet root filesystem (umi snad i kernel-nevim).
Sestavit binutils+gcc pro mips je trivialni ukol; stejne tak buildnout kernel Linuxu. O neco mene trivialni je sestavit nejake libc a userland binarky typu busybox (vetsina z nich ma totiz mnoho potizi, kdy nefunguji s nejakym gcc nebo na nejakem procesoru, apod.). Na posledni ukol je dobry prave ten buildroot.
-
Buildroot som skusal ale ked sa to instalovalo viac ako 30 minut tak som to radsej zrusil. A ake zariadenie je vhodne pouzivat lebo mam skusenosti este s mikrotikom ale to ich API a zle chovanie ssh je naozaj hrozne.
-
"buildroot" se kompiloval na mem Atomu (eee pc 1000h) celou noc, takze tomu dejte sanci. Absolvoval jsem to 2x, jednou pro PowerPC, jednou pro MIPS, kvuli tomuto: http://forum.root.cz/index.php?topic=7178.0
-
ked sa to instalovalo viac ako 30 minut tak som to radsej zrusil.
;D ;D ;D
Cece... s timhle pristupem se fakt daleko nedostanes. Te neco honi, nebo proc to nenechas bezet at to bude hotovy?