«前の日記(2008-01-07(月)) 最新 次の日記(2008-01-19(土))» 編集
RSS feed

からっぽの日記


2008-01-12(土) 曇り [長年日記]

PowerPC用クロスコンパイル環境

Debian etch の玄箱HG用のクロスコンパイル環境を作成した。sarge 用は以前作ったがぶっ壊れてしまったので。最初は、こちらを参考にしながらコンパイルしてたんだが、GCC のコンパイルがエラーが出て先へ進まず... 悩んでたところ、参考にしてたサイトをよく見てみたら Embedded Debian -- The Universal Embedded Operating System というサイトでバイナリがあることに気付く。丸一日くらい時間を費やしてしまったorz クロスコンパイル環境はchroot上に作成したので以下メモ。

cdebootstrap のインストール

# aptitude install cdebootstrap

etch環境を作成

# mkdir -p /home/bootstrap/etch
# cdebootstrap --arch i386 etch /home/bootstrap/etch/ http://ftp.jp.debian.org/debian
# cp /etc/hosts /home/bootstrap/etch/etc
# vi /home/bootstrap/etch/etc/apt/source.lst

/home/bootstrap/etch/etc/apt/source.lst

# etch
deb http://ftp.jp.debian.org/debian/ etch main non-free contrib
deb-src http://ftp.jp.debian.org/debian/ etch main non-free contrib

# security
deb http://security.debian.org/ etch/updates main contrib non-free
deb-src http://security.debian.org/ etch/updates main contrib non-free

# cross compile
deb http://www.emdebian.org/debian/ stable main

chroot を実行

# mount -t proc proc /home/bootstrap/etch/proc
# mount -o bind /dev /home/bootstrap/etch/dev
# mount -t devpts devpts /home/bootstrap/etch/dev/pts
# chroot /home/bootstrap/etch /bin/bash

以下、chroot内の etch にて

タイムゾーンの設定

# tzconfig
Do you want to change that? [n]: y
Number: 5
Name: [] tokyo

パッケージ更新

# aptitude update && aptitude upgrade

Kernel再構築に必要なパッケージをインストール

# aptitude install autoconf automake binutils gcc gettext kernel-package libncurses5-dev libtool linux-kernel-headers make

emdebian の gpgキーを取得

# gpg --keyserver wwwkeys.eu.pgp.net --recv-keys 0x97BB3B58
# gpg --check-sigs 0x97BB3B58
# gpg --fingerprint 0x97BB3B58
# gpg --armor --export 0x97BB3B58 | apt-key add -

クロスコンパイル用パッケージをインストール

# aptitude install binutils-powerpc-linux-gnu gcc-4.1-powerpc-linux-gnu libc6-powerpc-cross libc6-dev-powerpc-cross linux-kernel-headers-powerpc-cross

テスト用ファイル作成

# vi hello.c

hello.c

#include <stdio.h>

int main()
{
    printf("Hello cross-compiling world!\n");
    return 0;
}

コンパイルテスト

# powerpc-linux-gnu-gcc -static hello.c -o hello
# file hello
hello: ELF 32-bit MSB executable, PowerPC or cisco 4500, version 1 (SYSV), for GNU/Linux 2.4.1, statically linked, for GNU/Linux 2.4.1, not stripped

hello を玄箱HGに持っていって実行

% ./hello
Hello cross-compiling world!

«前の日記(2008-01-07(月)) 最新 次の日記(2008-01-19(土))» 編集
RSS feed