U vestavěného zařízení se obvykle nekompiluje software přímo na něm. Je pohodlnější dělat to, co se nazývá cross-compilation
což je ve zkratce kompilace pomocí vašeho běžného PC na jinou architekturu než x86.
Řekl jsi, že jsi v Linuxu nováčkem; jen pro vaši informaci, čelíte obrovskému problému:křížová kompilace na vestavěná zařízení není snadný úkol.
Prozkoumal jsem váš HMI systém a všiml jsem si některých výsledků, které hovoří o Yocto.Yocto
je zkrátka celý rámec pro vytváření firmwaru pro vestavěná zařízení.
Protože vaše HMI masivně využívá Open Source projekty (Linux, pravděpodobně busybox atd.), výrobce musí poskytuje způsob, jak svépomocí přestavět všechny open source komponenty. Obvykle to musíte udělat BSP
(Balík podpory desky). Výrobce hardwaru jej obvykle dodává:
- Pomocí
buildroot
projekt, který vám umožní přestavět celý váš firmware od začátku. - Pomocí
yocto
meta, která vám po přidání do nové kopie odpovídajícího projektu yocto umožní přestavět celý váš firmware. - Vzácněji hromada mizerných skriptů a předem sestaveného kompilátoru.
Takže na vašem místě bych:
- Kontaktujte podporu výrobce a požádejte o věci pro přebudování firmwaru, jak vyplývá z použití Open Source.
- Paralelně vyhledejte na Googlu „vaše HMI + yocto“, „vaše HMI + kořenový adresář“ atd.
Po ještě větším googlování jsem na githubu našel meta Yocto.
Stroje implementované touto meta můžete zkontrolovat v adresáři conf/machine meta.
V současné době je definováno pět počítačů pod těmito kódovými názvy:
- sada us01
- sada us02
- sada us03
- usom01
- usom02
Takže navrhuji, abyste se do toho pustili. Toto je pravděpodobně způsob, jak si můžete vytvořit software sami. Můžete se také podívat na tuto stránku na účtu github, která vám může poskytnout další vodítka.
Souhlasím s odpovědí binarymu ohledně křížové kompilace. Pokud byste však přesto chtěli kompilovat přímo na stroji s takto konzervativním hardwarem, doporučil bych poohlédnout se po menším kompilátoru, jako je Tiny C Compiler (tcc), který na architektuře x86 zabírá přibližně 100 kB. Upozorňuji však, že rozšiřuje podporu pouze do ISO C99, nikoli C11.