現在、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フォーマットに関するページ https://www.beyondlogic.org/uClinux/bflt.htm