zlibのARM用クロスコンパイル。
http://zlib.net/にアクセスしてソースコードの
カタマリを取得。
「zlib source code」で検索するとわかりやすいが、
今回のバージョンは1.2.8なので、直リンクは
http://zlib.net/zlib-1.2.8.tar.gz
CC=/opt/arm-2012.09/bin/arm-none-linux-gnueabi-gcc \ ./configure --prefix=/home/makotzzztbd/work/rdk/sysroot make make install
freetypeのARM用クロスコンパイル。
http://sourceforge.net/projects/freetype/files/にアクセスして
「freetype2」をダブルクリック
遷移したページに、freetypeのいままでバージョンナンバーが
出てくるので、最新バージョンをクリック。
今日の時点の最新バージョンは「2.4.12」なので、
「2.4.12」をクリックし、遷移先のページに有る
「freetype-2.4.12.tar.bz2」をクリック。
そしてダウンロードが始まる。
tar jxvf freetype-2.4.12.tar.bz2 cd freetype-2.4.12/
configureをいつもどおり行う。
./configure --prefix=/home/makotzzztbd/work/rdk/sysroot/ \ CC=/opt/arm-2012.09/bin/arm-none-linux-gnueabi-gcc --host=arm-none-linux
特にエラーが出ずに終了。
make make install
これは簡単。。。
【まだ未完成】SWFTOOLのARMコンパイル
とりあえず何も考えずにソースコードのカタマリだけ
落としてきて、クロスコンパイル。
./configure --host=arm-none-linux \ --target=arm-none-linux LITTLEENDIAN=1 \ CC=/opt/arm-2012.09/bin/arm-none-linux-gnueabi-gcc \ --prefix=/home/makotzzztbd/sysroot/ \ make make install
とりあえずconfigureは通る。
続いてmake。
make
そうすると、こんなログが出続ける。
cc1: warning: include location "/usr/include/freetype2" is unsafe for cross-compilation [-Wpoison-system-directories] cc1: warning: include location "/usr/include/lame" is unsafe for cross-compilation [-Wpoison-system-directories]
つまり。lameやらfreetype2やらがクロスコンパイルされていない&
クロスコンパイルされたもののありかを指定しないのでNG。
ってことでfreetype2から作り直す。
ARM クロスコンパイラの取得方法
http://www.mentor.com/embedded-software/codesourcery にアクセスし
「Download Lite Edition」をクリック。
「Sourcery CodeBench Lite Edition」というページに切り替わるので、
画面中部にある「Support and updates」の
「ARM Processors」欄にある
「Download the GNU/Linux Release→」をクリック
「Sourcery CodeBench Lite Edition for 」ページに移動するので、
国名、名前やE-mailアドレス、都市名を入力して
「Get Lite!」ボタンをクリックする。
入力したE-mailアドレスにMentorからメールが届くのでリンクをクリックする。
下記のようなダウンロード用のページに移動するので、
お好みのSourcery CodeBench Lite を入手する。
PerlをARM CPU上で動かす
http://www.perl.org/get.htmlを開き、
UNIXの「Download Latest Stable Source (x.y.z)」(x.y.zはバージョンとします)を
クリックして最新版のperlのソースコードのカタマリをダウンロードする。
ダウンロードしたディレクトリに移動してソースコードを解凍する。
tar zxvf perl-x.y.z.tar.gz
http://perlcross.berlios.de/index.htmlからクロスコンパイル用のパッチを、
perlのバージョンと同じであることを確認してダウンロードし解凍する。
→同じバージョンの場合、解凍すると同じディレクトリに生成される
tar zxvf perl-x.y.z-cross-a.b.c.tar.gz (a.b.cはperl-crossのバージョンとします。)
例えば自分のマシン内に作成したsysrootは /home/makotzzztbd/sysroot/とします。
Mentor Graphics Sourcery Toolsからダウンロードした
2012年9月版のARMクロスコンパイラを使用して、
/opt内にインストールしていると仮定した場合のコンパイルオプション
./configure --mode=cross \ --prefix=/home/makotzzztbd/sysroot/ \ --target=arm-none-linux \ --target-tools-prefix=/opt/arm-2012.09/bin/arm-none-linux-gnueabi- make make install
LinuxコマンドラインでのSDカードのフォーマット
仮に2GBの SDをLinux上でフォーマットしてみよう
SDをLinuxマシンに装着した際のログをdmesgで確認し、/dev/sdXになっていることを確認する。
sudo fdisk /dev/sdX (<-not sdX1 or sdX2)
dで既存パーティションの削除
全てのパーティションを削除する
pでSDの総容量を確認する ここでは2GBのものを使用していると仮定し1980760064バイトとする
xでエキスパートモード遷移
sでセクタ数設定 推奨63
hでヘッド設定 推奨255
cでシリンダ数設定 1980760064/63/255/512(セクタあたりのバイト)=240.814 ->240と設定
rで通常モードに遷移
nで新パーティション作成
pでプライマリパーティション設定
1でパーティション1番設定
- 80Mで80MB分パーティション作成
nで新パーティション作成
pでプライマリパーティション設定
2でパーティション2番設定
Enterキー押下で残り容量全てを第2パーティション作成
aでbootフラグ設定
1で第1パーティションをbootに設定
tでタイプ設定
1で第1パーティションをタイプ設定
cで W95 FAT32 (LBA)設定
tでタイプ設定
2で第2パーティションをタイプ設定
83でLinux設定
wでwrite&exit
以下のコマンドを打ってフォーマット(sdX1はvfatで、sdX2はext4でフォーマットすることにする。)
sudo mkfs.vfat -F 32 /dev/sdX1 -n boot sudo mkfs.ext4 /dev/sdX2 -L rootfs