Gentooだと簡単ですね
・Gentoo Linux Documentation -- Cross-Compiling The Kernel
・Crossdev - Gentoo Linux Wiki
まずディレクトリを作成しておく
# mkdir /usr/local/portage
/etc/make.conf に以下を追記
PORTDIR_OVERLAY="/usr/local/portage"
次に crossdev をインストール
# emerge -v crossdev
ターゲットのシステムを調べるには対象のマシンで gcc -v を実行すればいいと思う
# gcc -v 2>&1 | grep ^Target Target: armv5tel-softfloat-linux-gnueabi
crossdev -S -t armv5tel-softfloat-linux-gnueabi でインストールできる(-S で stable を指定)
ただインストールする際に以下のようなエラーが出るので
package.keywords と package.use はディレクトリを作ってその中に入れるようにする
* please convert /etc/portage/package.keywords to a directory * If you file a bug, please attach the following logfiles: * /var/log/portage/cross-armv5tel-softfloat-linux-gnueabi-info.log
以下のようにする (package.use も同じように)
# cd /etc/portage # mv package.keywords default.keywords (ファイル名は何でもいいっぽい) # mkdir package.keywords # mv default.keywords package.keywords/
再度インストール
# crossdev -S -t armv5tel-softfloat-linux-gnueabi ----------------------------------------------------------------------------------- * crossdev version: 20120721 * Host Portage ARCH: amd64 * Target Portage ARCH: arm * Target System: armv5tel-softfloat-linux-gnueabi * Stage: 4 (C/C++ compiler) * ABIs: default * binutils: binutils-[stable] * gcc: gcc-[stable] * headers: linux-headers-[stable] * libc: glibc-[stable] * CROSSDEV_OVERLAY: /usr/local/portage * PORT_LOGDIR: /var/log/portage * PORTAGE_CONFIGROOT: * Portage flags: _ - ~ - _ - ~ - _ - ~ - _ - ~ - _ - ~ - _ - ~ - _ - ~ _ - ~ - _ - ~ - _ - ~ - _ - ~ - _ - ~ - _ - ~ - _ - ~ * Log: /var/log/portage/cross-armv5tel-softfloat-linux-gnueabi-binutils.log * Emerging cross-binutils ... [ ok ] * Log: /var/log/portage/cross-armv5tel-softfloat-linux-gnueabi-linux-headers-quick.log * Emerging cross-linux-headers-quick ... [ ok ] * Log: /var/log/portage/cross-armv5tel-softfloat-linux-gnueabi-glibc-headers.log * Emerging cross-glibc-headers ... [ ok ] * Log: /var/log/portage/cross-armv5tel-softfloat-linux-gnueabi-gcc-stage1.log * Emerging cross-gcc-stage1 ... [ ok ] * Log: /var/log/portage/cross-armv5tel-softfloat-linux-gnueabi-linux-headers.log * Emerging cross-linux-headers ... [ ok ] * Log: /var/log/portage/cross-armv5tel-softfloat-linux-gnueabi-glibc.log * Emerging cross-glibc ... [ ok ] * Log: /var/log/portage/cross-armv5tel-softfloat-linux-gnueabi-gcc-stage2.log * Emerging cross-gcc-stage2 ... [ ok ]
armv5tel-softfloat-linux-gnueabi-xxx というファイル名でコンパイラがインストールされる これらを使ってカーネルをビルドしたい場合は以下のようになるのでスクリプトを作成しておいた
#!/bin/sh exec make ARCH="arm" CROSS_COMPILE="armv5tel-softfloat-linux-gnueabi-" "$@"
0 件のコメント:
コメントを投稿