Compilando o kernel do Linux no Eclipse

0

Eu tenho um Mac rodando o Snow Leopard e sei que não posso compilar o kernel do Linux. Eu usei uma VM Linux (virtualbox) para compilar o kernel, mas eu queria saber se eu poderia compilá-lo no Eclipse (galileo).

    
por Coder404 07.03.2013 / 04:33

2 respostas

5

A informação que diz que você não pode construir o kernel no Mac é imprecisa. É possível configurar um compilador cruzado e ter o x86 como arquitetura de destino ou construir um kernel para o power pc como o Yellowdog que o Linux Distro fez. Um exemplo um procedimento para configurar um compilador cruzado para o ARM7:

Estou iniciando um novo projeto incorporado com o processador ARM7 em março, então queria brincar com o conjunto de ferramentas GNU ARM. Basicamente, estou interessado em fazer um desenvolvimento cruzado no meu Macbook Pro no Mac OS X, usando um compilador cruzado do GCC junto com o Eclipse CDT. Vamos ver se isso funciona. ; -)

Então, como primeiro passo, aqui está como eu construí um toolchain GNU ARM no Mac OS X (isso não deve ser diferente de construir o toolchain no Linux):

Primeiro baixe e descompacte os pacotes necessários: binutils, gcc, newlib e gdb.

$ mkdir ~/crossgcc && cd ~/crossgcc
$ wget ftp://sourceware.org/pub/binutils/snapshots/binutils-2.18.50.tar.bz2
$ tar jxf binutils-2.18.50.tar.bz2
$ wget http://ftp.gnu.org/pub/gnu/gcc/gcc-4.2.3/gcc-4.2.3.tar.bz2
$ tar jxf gcc-4.2.3.tar.bz2
$ wget ftp://sources.redhat.com/pub/newlib/newlib-1.16.0.tar.gz
$ tar zxf newlib-1.16.0.tar.gz
$ wget http://ftp.gnu.org/pub/gnu/gdb/gdb-6.6.tar.gz
$ tar zxf gdb-6.6.tar.gz

O diretório de instalação deve ser / usr / local / crossgcc.

$ sudo mkdir /usr/local/crossgcc
$ sudo chmod 777 /usr/local/crossgcc

Primeiro, construímos os binutils:

$ mkdir build-binutils && cd build-binutils
$ ../binutils-2.18.50/configure --target=arm-elf \
--prefix=/usr/local/crossgcc/ 2>&1 | tee configure.log
$ make all install 2>&1 | tee make.log
$ export PATH=$PATH:/usr/local/crossgcc/bin

Compile o compilador gcc com suporte a C / C ++:

$ cd ../gcc-4.2.3
$ ln -s ../newlib-1.16.0/newlib .
$ ln -s ../newlib-1.16.0/libgloss .
$ cd ..
$ mkdir build-gcc && cd build-gcc
$ ../gcc-4.2.3/configure --target=arm-elf \
--prefix=/usr/local/crossgcc/ --with-newlib \
--with-gnu-as --with-gnu-ld --enable-languages=c,c++ 2>&1 | tee configure.log
$ make all install 2>&1 | tee make.log

Construa o depurador gdb:

$ cd ..
$ mkdir build-gdb && cd build-gdb
$ ../gdb-6.6/configure --target=arm-elf --prefix=/usr/local/crossgcc/
$ make all install 2>&1 | tee make.log

No seu caso, você precisa de um compilador cruzado para qualquer arquitetura-alvo que você queira que seu kernel seja. Observe que a compilação será executada nativamente em sua máquina, será mais rápida do que construir no VirtualBox.

    
por 16.08.2013 / 19:45
0

Contanto que você tenha todos os cabeçalhos e ferramentas adequadas, os kernels Linux podem ser compilados em outros sistemas. Usando o Eclipse não funcionaria bem (se em tudo). Em uma linha de comando do Linux, digite "make config". Configure as opções para o seu kernel que deve ser feito. Em seguida, leia o arquivo README que vem com o código-fonte. Ele fornecerá informações sobre compilação e instalação. Para obter informações detalhadas sobre o kernel, leia esta série de artigos ( link ).

    
por 16.08.2013 / 19:35