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

これも成功。あとどれだけクロスコンパイルしたら
FFMPEGまで辿り着くのか。

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 を入手する。

f:id:makotzzzTBD:20130519122815j:plain

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番設定

  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