トップ 差分 一覧 ソース 検索 ヘルプ RSS ログイン

開発メモ

クロス開発環境の構築

簡単なクロス開発環境の構築について順に説明します。

VMware Playerインストール

  • 公式サイトからWindowsXP用をダウンロード(要登録)
  • ダウンロードしたファイルを開く
  • メッセージ通りに、普通にインストール

クライアント(仮想PC)にVine Linuxインストール

  • Ring Serverから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から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 (最新ではない)
  • 公式サイトから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形式
      • 面倒な人はこちら→buildroot-base.zip(1214)
  • 構築
    • make
  • ~/buildroot/build_arm/staging_dir/binにクロス開発用のコマンドが作られるので、ここにpathを通す

Linux

  • Ring Serverからカーネルソースをダウンロード
    • 元ファイルのディレクトリは/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 <rob@landley.net> 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

(・ω・)趣味でやってるサイトですよ。