私はSnow Leopardを実行しているMacを持っていますが、Linuxカーネルをコンパイルできないことを知っています。カーネルをコンパイルするためにLinux VM(virtualbox)を使用していますが、Eclipse(galileo)でコンパイルできるかどうかを知りたいです。
答え1
Macではカーネルを構築できないという情報が正確ではありません。クロスコンパイラを設定し、x86をアーキテクチャとしてターゲットに設定したり、Power PC用のカーネルを構築したりできます。臆病者Linuxディストリビューションではすでにそうしています。 ㅏサンプルARM7用のクロスコンパイラを設定する手順:
私は3月にARM7プロセッサを使用して新しい組み込みプロジェクトを開始したので、GNU ARMツールチェーンを試してみたいと思いました。基本的に、私はMac OS XのMacbook ProでGCCクロスコンパイラとEclipse CDTを使ったクロス開発に興味があります。これがうまくいくかどうか見てみましょう。 ;-)
したがって、最初のステップとしてMac OS XでGNU ARMツールチェーンを構築する方法は次のとおりです(これはLinuxでツールチェーンを構築することと変わりません)。
まず、必要なパッケージ(binutils、gcc、newlib、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
インストールディレクトリは/usr/local/crossgccでなければなりません。
$ sudo mkdir /usr/local/crossgcc
$ sudo chmod 777 /usr/local/crossgcc
まず、binutilをビルドします。
$ 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
C/C++ サポートで gcc コンパイラをビルドします。
$ 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
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
あなたの場合、カーネルを望まないターゲットアーキテクチャをコンパイルするには、クロスコンパイラが必要です。コンパイルはコンピュータ上でローカルで実行されるため、VirtualBoxでビルドするよりも高速です。
答え2
すべてのヘッダーファイルと適切なツールがある限り、他のシステムでLinuxカーネルをコンパイルすることができます。 Eclipseを使用すると正常に動作しません(まったくありますが)。 Linuxコマンドラインに「make config」と入力します。カーネルを構成するオプションです。次に、ソースコードに付属のREADMEファイルを読みます。コンパイルとインストールに関する情報を提供します。カーネルの詳細については、この記事シリーズ(http://www.linux.org/threads/%EF%BB%BFthe-linux-kernel-introduction.4203/)。