!!!クロス開発環境の構築 簡単なクロス開発環境の構築について順に説明します。 !!VMware Playerインストール *[公式サイト|http://www.vmware.com/]からWindowsXP用を[ダウンロード|http://www.vmware.com/download/player/](要登録) *ダウンロードしたファイルを開く *メッセージ通りに、普通にインストール !!クライアント(仮想PC)にVine Linuxインストール *[Ring Server|http://www.t.ring.gr.jp/]からISOイメージをダウンロード **元ファイルのディレクトリは/archives/linux/Vine/Vine-xxx/CDIMAGE/ *クライアント(仮想PC)を作る(qemuを使うのだったかな?) **ISOイメージファイルをVMware上の仮想PCに食わせる **面倒ならこちら→ *.vmxファイルを開いて仮想PCを起動し、VineLinuxをインストールする **インストール種類:デスクトップ **firewall有り(あとで設定しなおす) **標準ログインはテキスト **一般ユーザを追加しておく ***例:ユーザー名z3、パスワード11111111 !!Vine Linux設定 *startxでX-Window起動 *メニューから、デスクトップ→システム管理→synapticパッケージマネージャ **パッケージ追加 ***システム環境/デーモン telnet-server-0.17.x-30vl2.i386.rpm ***開発/ライブラリ ncurses-devel-5.4-0vl3.i386.rpm *デスクトップ→システム管理→セキュリティレベルとファイアウォールの設定 **telnetを許可 !!buildroot構築 *先に[Ring Server|http://www.t.ring.gr.jp/]からGNUツールをダウンロードしておく **元ファイルのディレクトリは/archives/GNU/、/archives/linux/kernel.org/kernel/v2.6/ **mkdir dl_doneでディレクトリ作成して、ダウンロードしたファイルを置いておく **==必要なファイル(余分なものもありますw)==時々バージョンが上がってるので、何もしないで自動ダウンロードに任せるのが楽 ***binutils-2.17.tar.bz2 ***gcc-4.2.0.tar.bz2 ***bash-3.2.tar.gz ***autoconf-2.61.tar.bz2 ***automake-1.10.tar.bz2 ***linux-2.6.20.4.tar.bz2 (最新ではない) *[公式サイト|http://buildroot.uclibc.org/]からbuildroot-snapshot.tar.bz2をダウンロード *ファイルを展開、ディレクトリ移動 **bzcat buildroot-snapshot.tar.bz2 | tar xf - **cd buildroot/ **ln -s ../dl_done dl *設定 **make menuconfig ***arm - xscaleサポート(iWMMXt pxa270ではない) ***USE_BXはデフォルトのまま ***rootfs cpio形式 ***面倒な人はこちら→{{ref buildroot-base.zip}} *構築 **make *~/buildroot/build_arm/staging_dir/binにクロス開発用のコマンドが作られるので、ここにpathを通す !!Linux *[Ring Server|http://www.t.ring.gr.jp/]からカーネルソースをダウンロード **元ファイルのディレクトリは/archives/linux/kernel.org/kernel/v2.6/ **必要なファイル ***linux-2.6.21.5.tar.bz2 *ファイルを展開、ディレクトリ移動 **bzcat linux-2.6.21.5.tar.bz2 | tar xf - **ln -s linux-2.6.21.5 linux **cd linux **パッチを当てる *設定 **make -j2 ARCH=arm CROSS_COMPILE=arm-linux- mrproper **make -j2 ARCH=arm CROSS_COMPILE=arm-linux- allnoconfig **make -j2 ARCH=arm CROSS_COMPILE=arm-linux- menuconfig ***arm - pxa2xxサポート ***initramfsサポート、rootfsはbuildrootで作成したrootfs.arm.cpioを指定 ***ELF形式サポート ***pxa FrameBufferサポート *構築 **make -j2 ARCH=arm CROSS_COMPILE=arm-linux- *モジュール作成 **make -j2 ARCH=arm CROSS_COMPILE=arm-linux- INSTALL_MOD_PATH=mod modules_install **tar czf modules.tgz -C mod . !!自前のinitramfs *rootfs圧縮 **mkinitramfs rootfsdir rootfs.cpio **mkinitramfsの中身(カーネルソース参照:Documentation/filesystems/ramfs-rootfs-initramfs.txt) ""#!/bin/sh "" ""# Copyright 2006 Rob Landley and TimeSys Corporation. ""# Licensed under GPL version 2 "" ""if [ $# -ne 2 ] ""then "" echo "usage: mkinitramfs directory imagename.cpio.gz" "" exit 1 ""fi "" ""if [ -d "$1" ] ""then "" echo "creating $2 from $1" ""# (cd "$1"; find . | cpio -o -H newc | gzip) > "$2" "" (cd "$1"; find . | cpio -o -H newc ) > "$2" ""else "" echo "First argument must be a directory" "" exit 1 ""fi *rootfs展開 **cat rootfs.cpio | cpio -id