FC2カウンター FPGAの部屋 ZYBO用のEmbedded Linux をブートするSDカードの作り方

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

ZYBO用のEmbedded Linux をブートするSDカードの作り方

ZYBO用のEmbedded Linux をブートするSDカードの作り方を書いておきます。
(注:SDカードのグレードはClass 10を使って下さい。Class 4だととっても遅いし、エラーが出る時があるようです。私の使用したMicro SDカードは、【Amazon.co.jp限定】Transcend microSDHCカード 8GB Class10 (無期限保証) です。宣伝ではありません。。。)

・まず、用意するものは8GBのSDカードです。SDカードは、”ZedBoard用のUbuntu Linuxをビルド6(SDカードを用意する)”を見てパーティションを作って下さい。但し、第1パーティションの名前はZED_BOOTではなく、ZYBO_BOOT辺りにしたほうが良いと思います。

・Linuxの適当なディレクトリにUbuntu ディレクトリを作ります。

wget https://releases.linaro.org/12.11/ubuntu/precise-images/ubuntu-desktop/linaro-precise-ubuntu-desktop-20121124-560.tar.gz コマンドで、~/Ubuntu ディレクトリに、/linaro-precise-ubuntu-desktop-20121124-560.tar.gz を wget します。
Ubuntu_build_for_ZedBoard_54_140517.png

sudo tar --strip-components=3 -C /media/masaaki/ROOT_FS -xzpf linaro-precise-ubuntu-desktop-20121124-560.tar.gz binary/boot/filesystem.dir コマンドで、ZedBoard 用 Ubuntu の root file system を SDカードに書き込みます。結構時間がかかります。(: -C オプションは、SDカードの第2パーティションを指定します。自分の環境に合わせて指定して下さい)
Ubuntu_build_for_ZedBoard_55_140517.png

・これで、SDカードの第2パーティション(ROOT_FS)には、Ubuntu のRoot File System が入りました。
Ubuntu_build_for_ZedBoard_56_140517.png

・”ZYBO用のEmbedded Linux チュートリアル1(IPのアップグレード)”から”ZYBO用のEmbedded Linux チュートリアル10(myLedのドライバの構築とデバイス・ツリーへの追加)”までを実行します。その時に出来た BOOT.binをSDカードの第1パーティション(ZYBO_BOOT)に書きます。

・”ZYBO用のEmbedded Linux チュートリアル7(Linuxカーネルのビルド)”で、
make ARCH=arm CROSS_COMPILE=arm-xilinx-linux-gnueabi- xilinx_zynq_defconfig
を行ってから、
make ARCH=arm menuconfig
を行います。メニューが立ち上がるので、General setup に入ります。
(2014/10/05 : 今日やってみたら、menuconfig 要らないようです。これなしでもLinuxブートしました。)
ZYBO_EM_Linux_132_140914.png

・Initilal RAM filesystem and RAM disk にチェックが入っているので、Nキーを押してチェックを外して、Save し、Exitします。
ZYBO_EM_Linux_133_140914.png

・Linuxカーネルをコンパイルします。
make ARCH=arm CROSS_COMPILE=arm-xilinx-linux-gnueabi-
uImageを作ります。
make ARCH=arm CROSS_COMPILE=arm-xilinx-linux-gnueabi- UIMAGE_LOADADDR=0x8000 uImage
これで、uImage ができました。SDカードの第1パーティションにコピーします。

・/home/masaaki/ZYBO/Digilent_Linux_Tutrial/drivers の zynq-zybo.dts の bootargs を以下の様に変更しました。

bootargs = "console=ttyPS0,115200 root=/dev/mmcblk0p2 rw earlyprintk rootfstype=ext4 rootwait devtmpfs.mount=1";

・ zynq-zybo.dts の operating-points を以下の様に変更しました。(”cpu clock freq change”を参照して下さい。jujurou さん、ありがとうございました)(2014/11/30:修正、詳しくは、”ZYBO用Ubuntu Linuxの時計のずれ”、”ZYBO用Ubuntu Linuxの時計のずれ2(解決編)”を参照して下さい)

operating-points = <650000 1000000>;

ZYBO_Ubuntu_15_141130.png 

../Linux-Digilent-Dev/scripts/dtc/dtc -I dts -O dtb -o devicetree.dtb zynq-zybo.dts コマンドで、再度デバイス・ツリーをコンパイルします。

・出来上がった devicetree.dtb をSDカードの第1パーティションにコピーして下さい。

・SDカードの第1パーティションに uEnv.txt を追加します。(ikwzm さん、ありがとうございました)

uenvcmd=fatload mmc 0 0x03000000 uImage && fatload mmc 0 0x02A00000 devicetree.dtb && bootm 0x03000000 - 0x02A00000

・最終的なSDカードの第1パーティションの様子です。RAMDISK用のファイルが入っていますが、それは無視して下さい。
ZYBO_EM_Linux_144_140915.png

・SDカードをZYBOに入れて、SDカード・ブートにJP5 を設定して、電源をONします。

・Tera TermをCOMで開いて、115200bps, 8bit, 1stop bit で開きます。

・すると、Linaro Ubuntu のプロンプトが出てきます。
ZYBO_EM_Linux_146_140916.png

sudo apt-get update
 sudo apt-get upgrade は、やっておきましょう。


・終了する時は、suso shutdown -h now で終わりにして下さい。

2014/11/30:追記
ZYBOには、RTCが無いので、NTPをインストールしておいたほうが良いでしょう。
sudo apt-get install ntp
  1. 2014年09月16日 04:22 |
  2. ZYBO
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
http://marsee101.blog19.fc2.com/tb.php/2929-e94df9b0
この記事にトラックバックする(FC2ブログユーザー)