linux - cross compile

Jaroslav Buchta jaroslav.buchta na hascomp.cz
Sobota Prosinec 28 16:46:12 CET 2019


Diky za informace, preklad na cilove platforme by asi teoreticky sel, 
ale prekladac tam ve vychozim stavu neni (STM32MP1). Nepochybuju ze by 
vzhledem k vykonu MPU trval dlouho. Ucim se na tomhle, protoze to STM 
poskytuje docela dost zdroju a informaci, jejich SDK asi resi tu cross 
kompilaci na PC dobre, ty utility ktere jsem zatim zkompiloval se dari 
spustit aspon tak, ze zobrazi verzi, tak snad je smer a nastaveni 
prekladu OK. Spousti se nejaky slozity script, ktery nastavi 
odpovidajici CC a spoustu dalsich parametru v systemu, asi vcetne cest 
ke knihovnam, hlavickam atd.
Priklad vypisu prekladu, klicove bude asi to --sysroot? :
arm-openstlinux_weston-linux-gnueabi-gcc -march=armv7ve -mthumb 
-mfpu=neon-vfpv4 -mfloat-abi=hard -mcpu=cortex-a7 
--sysroot=/home/stm/STM32MPU_workspace/STM32MP15-Ecosystem-v1.1.0/Developer-Package/SDK/sysroots/cortexa7t2hf-neon-vfpv4-openstlinux_weston-linux-gnueabi 
-DHAVE_CONFIG_H -DEXEEXT=\"\" -I. -I.. -I../lib -DDEPENDS_ON_LIBICONV=1 
-DDEPENDS_ON_LIBINTL=1   -O2 -pipe -g -feliminate-unused-debug-types  -c 
-o stripslash.o stripslash.c

Jeste dotaz - jestli jsem to pochopil, tak make install mi vytvori 
strukturu adresaru na zadanem miste (.../usr/bin,include, lib, share) 
ktere nakopiruju na cilovy system do /usr? Musi se jeste nekde neco 
pridat? include je potreba asi jen v pripade, ze bych na cilovem systemu 
kompiloval? A share je k necemu krome dokumentace?


Dne 28.12.2019 v 14:53 Miroslav Mraz napsal(a):
> To je běh na dlouhou trať. V Linuxu existuje mnoho různých cestiček, 
> které nikam nevedou. Závislosti balíčků byly dost dobře udělány v 
> projektu Linux from scratch, ale jak je to nyní nevím.
> http://www.linuxfromscratch.org/blfs/view/svn/general/mc.html
> ukazuje úplně jiné, ale docela bych tomu věřil.
> Ovšem další a ne nepodstatný problém je, že to kompilujete křížově a 
> systém tedy musí sahat na správné hlavičky a používat správné 
> knihovny. To se dá vyřešit izolováním target systému pomocí chroot, 
> ale je to docela složitý proces.
> Jiná možnost je izolovat target systém pomocí emulace qemu. To je 
> poměrně prosté třeba - 
> https://hblok.net/blog/posts/2014/02/06/chroot-to-arm/ . Tohle jsem 
> zkoušel s obrazem systému pro malinu a fungovalo to, je to ale ukrutně 
> pomalé, protože se kompletně emuluje ARM na PC. U maliny jsem nakonec 
> skončil s tím, že připojím USB hard disk a překládám přímo na té 
> malině. Nejjednodušší a nejspolehlivější. Nicméně to qemu můžete 
> vyzkoušet, za to nic nedáte.
>
> Mrazík
>
> Dne 28. 12. 19 v 12:49 Jaroslav Buchta napsal(a):
>> Tak treba tohle:
>> libiconv jsem stahnul vezi 1.16 nejnovejsi, konfigurace, preklad OK
>> gettext nejnovejsi 0.20.1 pri prekladu skonci chybou, nenajde 
>> hlavickovy soubor textstyles.h Nevim co s tim, zkusil jsem verzi 
>> 0.19.8.1 a ta jde s nejakymi warningy prelozit...
>> Zkusim, uvidim, ale jak se pro takovem problemu bezne postupuje?
>>
>>
>> Dne 28.12.2019 v 7:44 Jaroslav Buchta napsal(a):
>>> Zdravim, z cvicnych duvodu bych si rad zkusil zkompilovat mc pro ARM 
>>> STM32MP1, nasel jsem ruzne stranky s postupy, libi se mi tato 
>>> http://dp.nonoo.hu/cross-compiling-mc/
>>>
>>> Jako prvni mi neni jasne, ze se nejak samozrejme predpoklada, ze 
>>> zkompiluiju nejake zdrojaky knihoven, treba ten libiconv na zacatku, 
>>> ale kde ho vezmu??? Samozrejme neni problem ho najit ale obavam se, 
>>> ze s odstupem casu dochazi v modulech k ruznym modifikacim a kdyz 
>>> ted vezmu aktualni zdrojaky, tak to bude nekompatibilni s jinymi a 
>>> dopadne to spatne jako obvykle. Existuje nejaky dokument jak na to 
>>> pro zacatecniky? Jak jsem nedavno zkousel kompilovat ten gdbserver, 
>>> tak jsem taky neuspel, stale do toho nemohu nejak proniknout :(
>>>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list




Další informace o konferenci Hw-list