事前に必要なものはこちらを参考にビルドしてください。
Binutilsのビルド
% tar xf binutils-2.21.1.tar.bz2 % cd binutils-2.21.1 && mkdir build_arm && cd build_arm % ../configure --target=arm-linux-eabi --prefix=/home/syohei/local/arm-eabi --disable-nls \ --enable-interwork --enable-multilib % make -j2 % make install % export PATH=/home/syohei/local/arm-eabi/bin:$PATH
GCCのビルド
% tar xf gcc-4.6.1.tar.bz2 % tar xf newlib-1.19.0.tar.gz % cd gcc-4.6.1 % ln -s ../newlib-1.19.0/newlib . && ln -s ../newlib-1.19.0/libgloss . % mkdir build_arm && cd build_arm % ../configure --target=arm-linux-eabi --enable-languages=c --with-gmp=/usr/local \ --with-mpfr=/usr/local --with-mpc=/usr/local --with-ppl=/usr/local --with-gloog=/usr/local \ --prefix=/home/syohei/local/arm-eabi --disable-nls --disable-libssp --disable-shared \ --disable-threads --with-newlib --with-headers=/home/syohei/src/gcc-4.6.1/newlib/libc/include \ --enable-interwork --enable-multilib --with-gnu-as --with-gnu-ld --disable-libmudflap \ --disable-libquadmath --disable-libgomp % make -j2 % make install
newlibのビルド
% cd newlib-1.19.0 % mkdir build_arm && cd build_arm % ../configure --target=arm-linux-eabi --prefix=/home/syohei/local/arm-eabi --disable-nls \ --enable-interwork --enable-multilib % make -j2 % make install
gdbのビルド
% tar xf gdb-7.3.tar.bz2 % cd gdb-7.3 && mkdir build_arm && cd build_arm % ../configure --target=arm-linux-eabi --prefix=/home/syohei/local/arm-eabi --disable-nls \ --enable-interwork --enable-multilib % make -j2 % make install
Linuxカーネルのビルド
% tar xf linux-3.0.1.tar.bz2 % cd linux-3.0.1 % make ARCH=arm menuconfig # ターゲットに合わせたコンフィギュレーションを行う % make -j2 ARCH=arm CROSS_COMPILE=arm-linux-eabi- KCFLAGS='-D__linux__'
クロスコンパイラに__linux__ってマクロができているかと思っていたん
ですけどなかったので, フラグ変数で定義を追加しています。
ビルドに使ったコンフィギュレーションファイルはgistに置きました
目的があったわけでもないので、ビルド通すためだけの設定です。
そのままではいくつかビルドできないドライバがありましたが、
特定の環境に絞り込んでやれば、その問題と遭遇することはまあ
ないんじゃないかなと思います。