Portál AbcLinuxu, 5. května 2025 23:21

Dotaz: Vlastní jádro pro raspberry pi, cross kompilátor

24.6.2014 18:59 malina
Vlastní jádro pro raspberry pi, cross kompilátor
Přečteno: 785×
Odpovědět | Admin

Dobrý den,

situace: Mám Raspberry Pi, pro kterou bych chtěl napsat v jazyce C vlastní jádro (OS), čistě pro poučení a zábavu. Na stolním počítači, který je výkonnější než "Malina", mám Arch Linux (jak procesor, tak systém je x86_64), takže bych ho chtěl využít ke kompilaci svého vlastního jádra (OS), které teprve napíšu :-) pro Raspberry Pi. Potřebuju tedy cross kompilátor, který by běžel pod Arch Linuxem (x86_64) a kompiloval pro "Malinu".

Co jsem zkoušel: Postupoval jsem podle http://wiki.osdev.org/GCC_Cross-Compiler, příčemž tento postup skončil pokaždé s chybou. Bohužel vám neřeknu přesně, proč to skončilo s chybou, protože je to nějaký ten pátek, co jsem to zkoušel (teprve teď jsem opět dostal "chuť" to znovu zkusit), takže mě omluvte. Něco bylo pokaždé špatně s "target platform". Neznalo ji to, ale bohužel nevím, co jsem přesně dával. Něco ve stylu unknown-armv6l.

Vím, že na Internetu je spousta návodů, ale žádný z nich nesplňuje přesně, co chci. Proto budu moc rád, pokud mi místní guruové poradí nebo aspoň mě trochu naťuknou. Předem moc díky.

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Jardík avatar 24.6.2014 20:39 Jardík | skóre: 40 | blog: jarda_bloguje
Rozbalit Rozbalit vše Re: Vlastní jádro pro raspberry pi, cross kompilátor
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zkus hledat něco jako cross linux from scratch. V podstatě potřebuješ nejdříve zkompilovat binutils, s argumenty host a build na x86_64-*-linux a target architekturu toho RPi (z tvého příspěvku tedy soudím něco jako armv6l-*-linux, chtělo by to ale zjistit). Potom GCC (opět s host, build na x86_64 a target RPi). Potom budeš potřebovat zkompilovat nějakou C knihovnu (glibc, uclibc apod), build bude x86_64, ale tentokrát target i host RPi. Potom ještě jednou asi binutils a GCC, aby správně linkovali a využili vlastnosti té nové C knihovny.

Pokud stačí pouze cross kompilátor, tak by tohle mělo stačit. Kdybys pak chtěl ještě nativní kompilátor, tak znovu binutils a GCC, tentokráte build na x86_64 a host i target na RPi.
Věřím v jednoho Boha.
24.6.2014 20:50 malina
Rozbalit Rozbalit vše Re: Vlastní jádro pro raspberry pi, cross kompilátor

Děkuju. Kamenem úrazu je právě "target platform". Neví někdo, jak by měla správně pro Raspberry Pi vypadat? Googluju dost dlouhou dobu, ale ještě se mi nepodařilo najít "vyhovující".

Jardík avatar 24.6.2014 20:59 Jardík | skóre: 40 | blog: jarda_bloguje
Rozbalit Rozbalit vše Re: Vlastní jádro pro raspberry pi, cross kompilátor
Zkus ten armv6l-*-linux, kde místo * může být v podstatě cokoliv, třeba armv6l-unknown-linux. Důležité je to první (architektura) a ten linux. To uprostřed by mělo popisovat zařízení, ale je to v podstatě jedno.
Věřím v jednoho Boha.
Jardík avatar 24.6.2014 21:06 Jardík | skóre: 40 | blog: jarda_bloguje
Rozbalit Rozbalit vše Re: Vlastní jádro pro raspberry pi, cross kompilátor
Nebo tady používají triplet armv6j-hardfloat-linux-gnueabi. A tu má něco debian i s popisem těch tripletů.
Věřím v jednoho Boha.
Jardík avatar 24.6.2014 21:10 Jardík | skóre: 40 | blog: jarda_bloguje
Rozbalit Rozbalit vše Re: Vlastní jádro pro raspberry pi, cross kompilátor
A teď vidím
Raspbian - Uses the hard-float version of the "new" ABI (EABI) like Debian armhf but targets v6 rather than v7. Currently tracks Debian wheezy and jessie. Primarily but not exclusively targeted at the Raspberry Pi. GNU Triplet: arm-linux-gnueabihf
Takže bych zkusil to. Víc už asi nemůžu poradit. Přeju hodně zdaru ^^.
Věřím v jednoho Boha.
24.6.2014 21:06 malina
Rozbalit Rozbalit vše Re: Vlastní jádro pro raspberry pi, cross kompilátor

Díky. Zkusím to.

26.6.2014 11:53 martin
Rozbalit Rozbalit vše Re: Vlastní jádro pro raspberry pi, cross kompilátor
Odpovědět | | Sbalit | Link | Blokovat | Admin
nebo scratchbox.
Kdysi jsem ho pouzival pro linuxove jadro pro palm TT :)
tuhle
Nevim jestli to pojede na x64 ja jsem chudej tak mam porad jen 8 a 32bit.
26.6.2014 14:19 malina
Rozbalit Rozbalit vše Re: Vlastní jádro pro raspberry pi, cross kompilátor

Díky za tip. Můj problém je to, že se vždycky pro něco (krátce) nadchnu, abych to potom odhodil jako nepotřebnou věc. Tj. když jsem zjistil, kolik se toho budu muset naučit, abych udělal aspoň primitivní OS, resp. jádro, tak moje nadšení zchladlo. Tímto se omlouvám hlavně Jardíkovi. Snad se to bude někomu hodit.

Jardík avatar 26.6.2014 14:42 Jardík | skóre: 40 | blog: jarda_bloguje
Rozbalit Rozbalit vše Re: Vlastní jádro pro raspberry pi, cross kompilátor
Nic se neděje. Já před nějakou dobou taky experimentoval, utvořit distro bez kýblu zbytečných závislostí. Kernel + musl (c knihovna) + busybox + binutils + GCC + nutné závislosti, s tím, že pak dám X bez zbytečných blbostí + nutné závislosti, a nějakého lehkého správce oken. K Xkám už jsem se nedostal, protože mě to přestalo bavit :-)
Věřím v jednoho Boha.
26.6.2014 14:46 malina
Rozbalit Rozbalit vše Re: Vlastní jádro pro raspberry pi, cross kompilátor

Tak aspoň nejsem sám. :-) Hezký den přeju.

10.7.2014 14:50 malina
Rozbalit Rozbalit vše Re: Vlastní jádro pro raspberry pi, cross kompilátor
Odpovědět | | Sbalit | Link | Blokovat | Admin

Dávám sem odkaz týkající se tohoto tématu:

How to build a cross compiler for your Raspberry Pi

Plus mám k tomu důležitou poznámku: Abyste mohli pomocí sady skriptů "crosstool-ng" (já zkoušel verzi z gitu) vytvořit "cross toolchain" (viz odkaz), tak je potřeba GNU make verze 3.81 (možná budou fungovat i některé starší verze). Samozřejmě toto bude platit jenom určitou dobu, než se to opraví.

Jendа avatar 10.7.2014 16:23 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Vlastní jádro pro raspberry pi, cross kompilátor
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tudy.
10.7.2014 16:45 malina
Rozbalit Rozbalit vše Re: Vlastní jádro pro raspberry pi, cross kompilátor

Teeeda díky. Nejspíš to budu číst za dlouhých zimních večerů. ;-)

10.7.2014 19:45 nyan
Rozbalit Rozbalit vše Re: Vlastní jádro pro raspberry pi, cross kompilátor
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nez buildit vlastni cross-tooly, bych se nejdriv podival na to co ma ta tvoje distro, temer kazda distro neco ma..

Jo jinak, clang umi buildit pro jakejkoliv target na jakekoliv masine - ma to ale jeden hacek, nema vlastni C knihovnu, takze porad potrebujes nejakou libc pro arm, plus ty dalsi tooly.

Petr Tomášek avatar 15.7.2014 10:43 Petr Tomášek | skóre: 39 | blog: Vejšplechty
Rozbalit Rozbalit vše Re: Vlastní jádro pro raspberry pi, cross kompilátor
Odpovědět | | Sbalit | Link | Blokovat | Admin
Hledej „bare metal“ (aneb „holé železo“)...
multicult.fm | monokultura je zlo | welcome refugees!

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.