クロス開発ツールのインストール - Debian編
クロス開発ツールをDebianホストにインストールする手順です。
- 1. 対象OS
- 2. クロスツールチェインのインストール
- 3. u-boot-tools
- 4. mtd-tools
- 5. dpkg-cross
- 5.1. dpkg-cross のインストール
- 5.2. dpkg-cross の使い方
- 6. apt-cross
- 6.1. apt-cross のインストール
- 6.2. apt-cross の使い方
1. 対象OS
- Debian GNU/Linux 4.0 etch (x86)
- Debian GNU/Linux sid (x86)
2. クロスツールチェインのインストール
クロスのgccやbinutilsをインストールする手順です。
株式会社パイロンが独自に配布する非公式なDebianパッケージです。これらのパッケージについてDebianプロジェクトへの質問はお控えください。
/etc/apt/sources.listに以下のapt-lineを追加します。
deb http://downloads.pylone.jp/cross-toolchain/deb ./
(まだ行っていなければ) pylone.jp の鍵を導入します。
# wget http://pylone.jp/pubkey.asc -O - | apt-key add -
パッケージ一覧を更新してから、ツールチェイン一式をインストールします。
# aptitude update # aptitude install gcc-4.1-arm-linux-gnu
必要であれば C++ コンパイラや gdb もインストールします。
# aptitude install g++-4.1-arm-linux-gnu # aptitude install gdb-arm-linux-gnu
インストールされるパッケージ一覧です。
| 名前 | バージョン |
|---|---|
| binutils-arm-linux-gnu | 2.17-3pylone0 |
| cpp-4.1-arm-linux-gnu | 4.1.1-21pylone1 |
| g++-4.1-arm-linux-gnu | 4.1.1-21pylone1 |
| gcc-4.1-arm-linux-gnu | 4.1.1-21pylone1 |
| gcc-4.1-arm-linux-gnu-base | 4.1.1-21pylone1 |
| gdb-arm-linux-gnu | 6.6.dfsg.90.20070912-1 |
| libc6-arm-cross | 2.3.6.ds1-13etch2 |
| libc6-dev-arm-cross | 2.3.6.ds1-13etch2 |
| libgcc1-arm-cross | 1:4.1.1-21pylone1 |
| libstdc++6-4.1-dev-arm-cross | 4.1.1-21pylone1 |
| libstdc++6-arm-cross | 4.1.1-21pylone1 |
| linux-kernel-headers-arm-cross | 2.6.18-7 |
3. u-boot-tools
u-boot-toolsパッケージをインストールする手順です。
u-boot-toolsにはLinuxカーネルやinitrdをU-Boot形式に変換するmkimageコマンドなどが含まれます。Linuxカーネルをソースからビルドする場合や、initrdイメージを作る場合は u-boot-toolsをインストールしてください。
Debian sid では mkimage コマンドが uboot-mkimage パッケージによって提供されています。 u-boot-tools パッケージをインストールする必要はありません。
/etc/apt/sources.list に以下を加えます。
deb http://downloads.pylone.jp/tools/deb ./ deb-src http://downloads.pylone.jp/tools/deb ./
(まだ行っていなければ)アーカイブの鍵を導入します。
# wget http://pylone.jp/pubkey.asc -O - | apt-key add -
入手可能なパッケージの一覧を更新します。
# aptitude update
u-boot-tools をインストールします。
# aptitude install u-boot-tools
4. mtd-tools
mtd-toolsをインストールする手順です。
NANDに置くルートファイルシステムのjffs2イメージをホスト上で作成する場合に必要になります。
入手可能なパッケージの一覧を更新します。
# aptitude update
mtd-tools をインストールします。
# aptitude install mtd-tools
5. dpkg-cross
dpkg-crossはターゲットアーキテクチャ用のパッケージをホストにインストールするためのツールです。
dpkg-crossを使えば、クロスコンパイルに必要なライブラリとヘッダファイルを比較的簡単に用意することができます。
以降では dpkg-crossのインストールと簡単な使い方を説明します。
5.1. dpkg-cross のインストール
# aptitude install dpkg-cross
5.2. dpkg-cross の使い方
armのlibcurses5をホストにインストールする場合を例に説明します。
まず、armのlibcurses5をダウンロードします。
$ wget http://ftp.jp.debian.org/debian/pool/main/n/ncurses/libncurses5_5.5-5_arm.deb
次に dpkg-crossで変換します。-aオプションでアーキテクチャを指定し、-bオプションでパッケージの変換を行います。
$ dpkg-cross -a arm -b libncurses5_5.5-5_arm.deb
変換されたパッケージ libncurses5-arm-cross_5.5-5_all.debが出来上がります。
変換後のパッケージ名には "-arm-cross" が追加されます。
最後に、変換されたパッケージをdpkgでインストールします。
# dpkg -i libncurses5-arm-cross_5.5-5_all.deb
dpkg-crossの-iオプションで変換とインストールを同時に行うこともできます。
# dpkg-cross -a arm -i libncurses5_5.5-5_arm.deb
アンインストールは-arm-crossを追加したパッケージ名を指定します。
# dpkg --remove libncurses5-arm-cross
同じ要領でlibncurses5-devもインストールすれば libncurses5を使ったアプリケーションをクロスコンパイルできます。
/etc/dpkg-cross/cross-compileのdefault_arch でアーキテクチャを指定すれば、dpkg-crossの-aオプションが省略できます。
6. apt-cross
apt-crossはdpkg-crossのAPT フロントエンドです。dpkg-crossではパッケージの取得を手動で行う必要がありますが、apt-crossはダウンロードからインストールまでを一度に行うことができます。
6.1. apt-cross のインストール
apt-crossのインストールは以下の通りです。
# aptitude install apt-cross
6.2. apt-cross の使い方
dpkg-crossと同じくlibncurses5を例にapt-crossの使い方を説明します。
まず、取得可能なパッケージの一覧を更新します。
$ apt-cross -a arm -S stable -m http://ftp.jp.debian.org/debian/ --update
-aオプションはアーキテクチャの指定です。-SはSuiteです。Bishopであればetchが対象なので-S stableとなります。-mはレポジトリのミラーです。
ダウンロードからインストールまでを一度に行うのであれば、以下のようにします。
# apt-cross -a arm -S stable -m http://ftp.jp.debian.org/debian/ --install libncurses5
ダウンロードのみの場合です。
# apt-cross -a arm -S stable -m http://ftp.jp.debian.org/debian/ -get libncurses5
削除の場合です。
# apt-cross -a arm --remove libncurses5
apt-crossはdpkg-crossのAPTフロントエンドですが、パッケージ間の依存関係を 扱うことはできせん。現在、作者のNeil Williams氏が依存関係解決の改良 を含めて apt-crossを書き直しているようです。
著作権と免責
Copyright © 2012 Pylone, Inc.
この文書の著作権は株式会社パイロンが保有します。
この文書は「現状のまま(as is)」で提供され、明示的であるかどうかを問わず、内容についてなんら保証するものではありません。
この文書には、技術的な誤り、誤植、不適格な表現や未完成部分等を含む可能性があります。従って、この文書は予告無しに追加、変更、削除される可能性があります。
この文書は「クリエイティブ・コモンズ-表示-2.1-日本 以降」(CC-by-2.1 or later) の下で配布されています。