[Armadillo:03500] emdebianによるeabiビルド

Takenoshita Koyo email@hidden
2008年 10月 6日 (月) 20:42:12 JST


linux-2.6.18-at/atmark-distで、
emdebianのツールチェインを使って、eabiビルドする方法をまとめました。

開発PCには、Debian lennyを使用しました。
(Debian etchだと、
依存関係の問題でemdebianのツールチェインをインストールできませんでし
た。)

1. クロスコンパイル用のツールチェインをインストール
email@hidden:~/$ sudo apt-get install libc6-armel-cross
libc6-dev-armel-cross binutils-arm-linux-gnueabi
gcc-4.3-arm-linux-gnueabi g++-4.3-arm-linux-gnueabi
linux-kernel-headers-arm-cross

2. arm-linux-gnuの代わりに、arm-linux-gnueabi-*を使うようにatmark-dist修
正

diff --git a/vendors/AtmarkTechno/Armadillo-500/config.arch
b/vendors/AtmarkTechno/Armadillo-500/config.arch
index 962d142..ae56b5a 100644
--- a/vendors/AtmarkTechno/Armadillo-500/config.arch
+++ b/vendors/AtmarkTechno/Armadillo-500/config.arch
@@ -20,7 +20,7 @@ CONSOLE_BAUD_RATE = 9600
 # STRIP_EXTRA_OPT := --remove-section=.note --remove-section=.comment
 # STRIP_EXTRA_LIBOPT := --remove-section=.note
--remove-section=.comment --strip-unneeded

-VENDOR_CFLAGS = -I/usr/arm-linux/include -I$(GCC_DIR)/include
+VENDOR_CFLAGS = -I/usr/arm-linux-gnueabi/include -I$(GCC_DIR)/include


############################################################################

diff --git a/vendors/config/arm/config.arch
b/vendors/config/arm/config.arch
index 2385eb7..55129ca 100644
--- a/vendors/config/arm/config.arch
+++ b/vendors/config/arm/config.arch
@@ -57,7 +57,7 @@ endif

 MACHINE       = arm
 ARCH          = arm
-CROSS_COMPILE = arm-linux-
+CROSS_COMPILE = arm-linux-gnueabi-
 CROSS         = $(CROSS_COMPILE)

 CC        = $(CROSS_COMPILE)gcc $(CPUCFLAGS)

3. kernel configuration
KernelFeatures--->
[*] Use the ARM EABI to compile the kernel
[*] Allow old ABI binaries to run with this kernel(EXPERIMENTAL)

4. makeする。

5. 作成されたものがeabiになっていることを確認する。
email@hidden:~/eabi/atmark-dist$ readelf -h
linux-2.6.x/arch/arm/boot/compressed/vmlinux | grep Flags
  Flags:                             0x4000000, Version4 EABI
email@hidden:~/eabi/atmark-dist$ readelf -h romfs/bin/busybox | grep
Flags
  Flags:                             0x4000002, has entry point,
Version4 EABI


但し、makeするとき、atmark-dist/user以下でいくつかエラーがでます。
A. <asm/page.h>をインクルードしている場合
特に、busy boxで<asm/page.h>をincludeしているファイルがたくさんあります
が、
/usr/arm-linux-gnueabi/includeには、page.hはないのでエラーになります。
これは、単にコメントアウトしただけで回避しました。

B. ping6, flatfsd
これらは、エラーの内容を追っていないので、単にmakeの対象から外しました。

以上、ご参考になれば。

-- 
Takenoshita Koyo




armadillo メーリングリストの案内