現在、Kernel-2.6.4でnoMMU版が動作しています。
ユーザランドは、busybox+uClibc(スタティックリンク)が利用可能です。
1. m32r-elfツールをインストールします。
% cd /usr/local % bzip2 -cd m32r-elf.20040210-3.2.tar.bz2 | tar xf - % ln -s m32r-elf.20040210-3.2 m32r-elf-3.22. binutilsのコンパイルを行います。
% bzip2 -cd binutils-2.13_src_20040210.tar.bz2 | tar xf - % cd binutils % mkdir build % cd build % ../src/configure --target=m32r-elf --prefix=/usr/local/m32r-elf-3.2 % make3. elf2fltをelfツールに組み込みます。
% bzip2 -cd elf2flt-20040409.tar.bz2 | tar xf -
% mkdir build
% cd build
環境に合わせて設定を行います。
binutils_src=/xxx/binutils/src ... binutilsのソースパス
binutils_build=/xxx/binutils/build ... binutilsのビルドパス
binutils_prefix=/usr/local/m32r-elf-3.2 ... m32r-elfツールのパス
% ../configure --target=m32r-elf --srcdir=../elf2flt \
--prefix=${binutils_prefix} \
--with-binutils-include-dir=${binutils_src}/include \
--with-bfd-include-dir=${binutils_build}/bfd \
--with-libbfd=${binutils_build}/bfd/libbfd.a \
--with-libiberty=${binutils_prefix}/lib/libiberty.a
% make
% make install
% bzip2 -cd uClibc-0.9.26-20040507.tar.bz2 | tar xf -
% cd uClibc-0.9.26
% make menuconfig
ここで以下の項目を設定します。
Target Architecture Features and Options ->
Target CPU has a memory management unit (MMU) ... 無効にします。
Linux Kernel header location ... 環境に合わせて設定します。
General Library Settings ->
Malloc returns live pointer for malloc(0) ... 有効にします。
% set path=($path /usr/local/m32r-elf-3.2/bin)
% make
% make install
FLATフォーマットに関するページ http://www.beyondlogic.org/uClinux/bflt.htm