Montando un toolchain con crosstool-ng a través de samples
Ayer terminaba un artículo acerca de cómo construir un toolchain con crosstool-ng, pero ahora voy a explicar como utilizar uno de los ejemplos disponibles para partir desde una base concreta. Como ya comentaba, en la página de croostool-ng hay disponible una serie de ejemplos desde los cuales podemos partir.
Para listar todos los samples disponibles, basta con ejecutar lo siguiente:
$ ct-ng list-samples
Sample name Status
alphaev56-unknown-linux-gnu [G X]
arm-bare_newlib_cortex_m3_nommu-eabi [G X]
arm-cortex_a8-linux-gnueabi [G ]
arm-davinci-linux-gnueabi [G ]
arm-iphone-linux-gnueabi [G X]
arm-unknown-eabi [G ]
arm-unknown-linux-gnueabi [G ]
arm-unknown-linux-uclibcgnueabi [G X]
armeb-test_nptl-linux-uclibcgnueabi [G X]
armeb-unknown-eabi [G ]
armeb-unknown-linux-gnueabi [G X]
armeb-unknown-linux-uclibcgnueabi [G X]
avr32-unknown-none [G X]
bfin-unknown-linux-uclibc [G ]
i586-geode-linux-uclibc [G ]
i586-mingw32msvc,i686-none-linux-gnu [G X]
i686-nptl-linux-gnu [G X]
i686-pc-mingw32 [G X]
m68k-unknown-elf [G X]
mips-ar2315-linux-gnu [G X]
mips-unknown-elf [G ]
mips-unknown-linux-uclibc [G ]
mips64el-n32-linux-uclibc [G X]
mips64el-n64-linux-uclibc [G X]
mipsel-unknown-linux-gnu [G ]
powerpc-405-linux-gnu [G ]
powerpc-860-linux-gnu [G ]
powerpc-e500v2-linux-gnuspe [G X]
powerpc-unknown-linux-gnu [G ]
powerpc-unknown-linux-uclibc [G ]
powerpc-unknown_nofpu-linux-gnu [G ]
powerpc64-unknown-linux-gnu [G X]
s390-ibm-linux-gnu [G X]
s390x-ibm-linux-gnu [G X]
sh4-unknown-linux-gnu [G ]
x86_64-unknown-linux-gnu [G ]
x86_64-unknown-linux-uclibc [G ]
L (Local) : sample was found in current directory
G (Global) : sample was installed with crosstool-NG
X (EXPERIMENTAL): sample may use EXPERIMENTAL features
B (BROKEN) : sample is currently broken
Aquí bastará con elegir uno de ellos (esto ya dependerá de la plataforma para la que queramos generar el toolchain), y el generará automáticamente los ficheros con una configuración inicial desde la que partir:
$ cd toolchain
$ mkdir mips-unknown-linux-uclibc
$ cd mips-unknown-linux-uclibc/
$ ct-ng mips-unknown-linux-uclibc
MKDIR kconfig
DEP kconfig/conf.dep
DEP kconfig/zconf.tab.dep
CC kconfig/zconf.tab.o
CC kconfig/conf.o
LD kconfig/conf
LN config
MKDIR config.gen
IN config.gen/arch.in
IN config.gen/kernel.in
IN config.gen/cc.in
IN config.gen/libc.in
IN config.gen/debug.in
CONF config/config.in
***********************************************************
Initially reported by: YEM
URL: http://ymorin.is-a-geek.org/
***********************************************************
Now configured for "mips-unknown-linux-uclibc"
A partir de aquí, podemos continuar un proceso normal. Si queremos modificar alguna opción del ejemplo elegido, basta con ejecutar:
$ ct-ng menuconfig
O si no, podemos pasar directamente a compilar, como hicimos en el tutorial anterior:
$ ct-ng build
Tags
La teoría es cuando crees saber algo, pero no funciona.
La práctica es cuando algo funciona, pero no sabes por qué.
Los programadores combinan la teoría y la práctica:
Nada funciona y no saben por qué.
