ひとまず、ZynqのKernelコンパイルはこんな感じですかね?
まず、githubからカーネルをダウンロードする。
% git clone git://github.com/Digilent/linux-digilent.git
% cd linux-digilent
(上位ディレクトリにZedBoard_OOB_Designが展開されていることを仮定している)
Kernelバージョンは3.6.0のようですね。
本家は3.7.8が出てたので、それはそれで旗艦Linuxのカーネルを並行してコンパイル♪
.configとdtsファイルをコピーする。
dtsファイルは元々、digilent_zed.dtsがあるんだけど、Kernelコンパイルで使われないだろうと思うけど同じ場所にコピーした。
% cp ../ZedBoard_OOB_Design/linux/.config .
% cp ../ZedBoard_OOB_Design/linux/devicetree_ramdisk.dts arch/arm/boot/dts/
後は普通にLinuxでのKernelコンパイルです。
% make ARCH=arm CROSS_COMPILE=arm-xilinx-linux-gnueabi- menuconfig
% make ARCH=arm CROSS_COMPILE=arm-xilinx-linux-gnueabi- modules
% make ARCH=arm CROSS_COMPILE=arm-xilinx-linux-gnueabi-
カーネルは下記の場所にできあがる。
arch/arm/boot/zImage
モジュールを仮インストールして、圧縮して移動しやすいようにする。
% make ARCH=arm CROSS_COMPILE=arm-xilinx-linux-gnueabi- INSTALL_MOD_PATH=../modules_install modules_install
% cd ../modules_install/lib/modules
% tar jcvf ../../../modules-3.6.0-digilent.tar.bz2 3.6.0-digilent-13.01-00002-g06b3889
まぁ、u-bootはzImageで起動できるのでそれはそれでいいけど・・・
せっかくだからuImageにするなら・・・
% make ARCH=arm CROSS_COMPILE=arm-xilinx-linux-gnueabi- uImage
uImageを作るならmkimageが必要でなんだけど、mkimageはu-bootで作られる。
まだ、u-bootをコンパイルしてないのでuImageは後回しで・・・
zImageをSDカードにコピーして起動したら、OKでした。
そりゃそうだよなぁ〜、何も変更してないもん(苦笑)
DTBファイルを作成します。
(ただのコンバートだけど・・・)
% ./scripts/dtc/dtc -o devicetree.dtb -I dts -O dtb arch/arm/boot/dts/devicetree_ramdisk.dts
% ./scripts/dtc/dtc -o devicetree.dtb -I dts -O dtb arch/arm/boot/dts/digilent_zed.dts
どちらのDTSが正解かまだ、決めあぐねている。
わかっているのはデフォルトの設定がdevicefree_ramdisk.dtsはrootfsがRAMディスクであること、digilent_zed.dtsはSDカードの第2パーティションを使用すること。
今回の目的はKernelコンパイルなのでDTBはコンバートしただけです。
DTB/DTSは構成ファイルなので詳細はまた今度にしよう。
それと、linaroの稼働状況です。
HDMIモニタが無いのでテレビのHDMIに繋げました。
起動したらメッセージが流れ始めました。
でも、一瞬だけなんだけど・・・
X WINDOWが立ち上がって来ました。
Window Managerも立ち上がって来ました。
"Linaro"も見えてますね。
ををぉ!
Unityでした!
しかし、USBマウスが認識しなかったので、なにも出来ませんでしたが(^-^;;;
やはり、HDMIモニタを買おうかな・・・