Portál AbcLinuxu, 5. května 2025 23:21
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.
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í".
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.
armv6j-hardfloat-linux-gnueabi
. A tu má něco debian i s popisem těch tripletů.
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-gnueabihfTakže bych zkusil to. Víc už asi nemůžu poradit. Přeju hodně zdaru ^^.
Díky. Zkusím to.
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.
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í.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.