Mini2440というハードをAliExpressで購入するので、とりあえず
開発環境の構築と、基本ソフトのビルド~Kernelイメージ作成までやってみた。
【概要】
大まかな流れは、まずLinux環境でクロスコンパイル環境を整えてから
u-boot作成、Kernel作成、インストールの順番に行っていく。
そしてMini2440用のパッケージは3つあるらしい。
・u-boot ・・・ ブート用
・Kernel ・・・ OS
・qemu ・・・ PC上Mini2440エミュレータ環境(Ubuntu標準のものを使うので、Synapticでqemu, qemu-kvm-extras, nbd-clientをインストール)
ブートに使う領域はNAND領域とSDカードの2つ選べるらしく、
U-BootはWindows32bit環境を使ってNAND領域のアップデートを行い、
Kernelイメージは、NAND領域かSDカードのどちらかで選べるらしい。
ここから説明は長いが、先人の知恵を借りて作業を進めていってみる。
[参考用フォルダ構成]
~/mini2440/gcc/
~/mini2440/uboot/
~/mini2440/kernel/
各パッケージは上記フォルダ内で作業を行った。
・開発環境構築編
1.synapticからlibncurses5-devをインストールした後、WEBアクセスして
http://www.friendlyarm.net/dl.php?file=arm-linux-gcc-4.3.2.tgz
からファイルをダウンロード。
端末を開いて、ルート直下に展開。
$ tar tvzof arm-linux-gcc-4.3.2.tgz
$ cd /
$ sudo tar xvzopf [置き場所パス]/arm-linux-gcc-4.3.2.tgz
2.パスを通す。
$ vim ~/.bashrc
最後の行に
export PATH=$PATH:/usr/loca/arm/4.3.2/bin
を追加。
vimが使いづらかったらgeditで編集する。
3.パスが通っているか確認。
端末を開きなおして
$ which arm-linux-gcc
・ビルド編
1.u-boot作成
端末を開いて、任意のフォルダに移動して
$ mkdir uboot ; cd uboot
$ git clone git://repo.or.cz/u-boot-openmoko/mini2440.git
$ cd mini2440
$ export CROSS_COMPILE=arm-linux- make mini2440_config
$ export CROSS_COMPILE=arm-linux- make all
u-boot.binが生成されたのを確認しておく。
2.Kernel作成
$ mkdir kernel-bin
$ mkdir kernel-modules
$ mkdir kernel
$ cd kernel
$ git clone git://repo.or.cz/linux-2.6/mini2440.git
$ cd mini2440
$ CROSS_COMPILE=arm-linux- ARCH=arm make O=../kernel-bin/ mini2440_defconfig
$ CROSS_COMPILE=arm-linux- ARCH=arm make O=../kernel-bin/ menuconfig (設定を変える場合)
$ CROSS_COMPILE=arm-linux- ARCH=arm make O=../kernel-bin/
$ CROSS_COMPILE=arm-linux- ARCH=arm make O=../kernel-bin/ INSTALL_MOD_PATH=../kernel-modules modules_install
$ ~/emv/uboot/mini2440/tools/mkimage -A arm -O linux -T kernel -C none -a 0x30008000 -e 0x30008000 -d ../kernel-bin/arch/arm/boot/zImage ./uImage
ひとまず終了。
クロスコンパイラ一式
http://www.friendlyarm.net/downloads
参考URL
http://code.google.com/p/mini2440/
http://wiki.linuxmce.org/index.php/Mini2440
http://www.emdebian.org/debian/
http://www.mech.tohoku-gakuin.ac.jp/rde/contents/tech/mini2440/install.html