※私はLinux系を扱い慣れていませんので、冗長になっているかもしれません…
参考にさせていただいたサイト
Matrixのゆらぎ: Zed BoardのLinuxカーネルビルド編 http://goo.gl/jfC5ZP
FPGAの部屋 ZedBoardのLinuxカーネルコンパイルのテスト http://goo.gl/pgwT7z
ビルドした環境
OS:Ubuntu12.04 (Oracle VM VirtualBox上)
CPU:i7-3770K 1コア制限
メモリ:RAM 1GB割り当て
基本的には、GitHubからソースコードをDLしてきて、後コンパイルに必要な物を揃える→makeするだけなんですが。以下やり方です。
1)まず最初に参考にした(上の方の)サイトに従って、色々とパッケージを入れていきます。ひたすらsudo apt-get install *****です。
※Cygwin環境だと、apt-getが存在しないので、代替としてapt-cygとか言うものを使うのが常套手段みたいです。しかし、自分がやってみたところ、setup.iniが無いだの、Package *** not found or ambiguous name, exitingというエラーが出てどれもインストールが出来なかったので、仮想マシン上のUbuntuで作業することにしました…
apt-cygは色々とダメ |
2)GitHubからカーネルのソースコードとかをダウンロードします。コマンドは
git clone https://github.com/Digilent/linux-digilent.git kernel
です。(結構時間が掛かる)
3)参考にしたサイト(の下の方)通りに、ZedBoard_OOB_Design.zipを解凍し、でてきた/linux/.configをkernelフォルダにコピー。/linux/devicetree_ramdisk.dtsを/kernel/arch/arm/boot/dtsにコピー。
で、参考にしたサイトを見ると、この先configurationをしていますが、まあZedBoard_OOB_Design.zipに入っている.configのままでいいかなあと思ったので、先ずコンパイルしてみます。
4)コンパイルにはXilinxのarm-xilinx-linux-gnueabi-gccが必要です。これはVivadoのSDKに入ってるみたいなので、それもDLしてきます。
Xilinxのダウンロードページから、ソフトウェア開発キットの「Vivado 2013.2:スタンドアロン SDK 単一ファイル ダウンロード イメージ」を選択してDLしてきます(約1.7GB、tarファイル)。
SDKのダウンロードページ |
xsetupの実行 |
5)パスを通す
インストールフォルダが/home/***(ユーザー名)/Xilinx/とかの場合、端末から
export PATH=$PATH:/home/***/Xilinx/SDK/2013.2/gnu/arm/lin/bin
としてパスを通しておきます
※Xilinxのページなどを見ると、/CodeSourcery/Sourcery_CodeBench_Lite_for_Xilinx_GNU_Linux/binに通せと書いてありますが、そんなフォルダは存在してません…このページに書かれているのが古いバージョンとかなんでしょうか…
※
どっちが呼ばれるんだろう…(右側だった) |
6)Makeする
パスを通したら、
make ARCH=arm CROSS_COMPILE=arm-xilinx-linux-gnueabi-
として、コンパイルします。私が実行した限りでは、数分でコンパイルが完了しました。
コンパイルの終わり |
zImageが生成されている。 |
シリアルポートでのモニタによると、今回コンパイルしたカーネルのバージョンは3.6.0っぽいです(本当か?)
kernelバージョンの確認 |
BOOT.BIN
devicetree_ramdisk.btb
ramdisk8M.image.gz
zImage
(README)
ファイルたちの解説
以上が流れになります。ボトルネックはVivadoとGitHubからのDL時間ですね