ZyboをTutorialで試す 番外編2 microSDの作成

前回の続きです。チュートリアルはまだこの先がありますが、ここから脱線します。チュートリアルではram diskを使うようにしていますが、microSDのパーティションを切って、Debianを入れてみようと思います。

参考にするのは、今回もFPGAの部屋です。

まずmicroSDカードを用意します。class 10で8GBもあれば十分だと思いますが、32GBのが手元にあったのでこれを使います。gpartedやcfdisk等を使って、ブート用の基本パーティションに1GB割り当て、残りをrootfs用の基本パーティションに割り当てました。私の環境ではそれぞれ/dev/sdb1と/dev/sdb2になりました。

ブート用のパーティションはWindowsからも読み書きできる必要があるのでFAT32、rootfsはLinuxから読めれば問題ないのでext4でフォーマットします。ラベルは前者をZYBO_BOOT, 後者をrootfsとしました。

これまでの作業で作成済みのuImageBOOT.binをZYBO_BOOTパーティションにコピーします。

Linux KernelソースのあるLinux-Digilent-Devの下、arch/arm/boot/dtsにあるデバイスツリーのソースファイルzynq-zybo.dtsを修正します。bootargsはLinuxブート時のカーネルオプション、operating-pointsは動作周波数とコア電圧の組み合わせだそうで、この値を修正しない時計が狂うとのこと。修正が済んだらscripts/dtc/dtcコマンドで変換します。

$ cd arm/boot/dts
$ cp zynq-zybo.dts zynq-zybo.dts.orig
$ vi zynq-zybo.dts
...
 /* bootargs = "console=ttyPS0,115200 root=/dev/ram rw earlyprintk"; 下記のように変更 */
 bootargs = "console=ttyPS0,115200 root=/dev/mmcblk0p2 rw earlyprintk rootfs=ext4 rootwait devtmpfs.mount-1";
...
 /* operating-points = <666667 1000000 333334 1000000 222223 1000000>; 下記のように変更 */
 operating-points = <650000 1000000>;
...
$ ../../../../scripts/dtc/dtc -I dts -O dtb -o devicetree.dtb zynq-zybo.dts

生成されたdevicetree.dtbはmicroSDのZYBO_BOOTパーティションにコピーします。さらに、u-bootの設定ファイルuEnv.txtを作成します。

$ vi uEnv.txt
uenvcmd=fatload mmc 0 0x03000000 uImage && fatload mmc 0 0x02A00000 devicetree.dtb && bootm 0x03000000 - 0x02A00000

これもmicroSDのZYBO_BOOTパーティションにコピーします。この時点でZYBO_BOOTパーティションには以下のファイルが配置されているはずです;

  • BOOT.bin
  • uImage
  • devicetree.dtd
  • uEnv.txt

以上でブートのための準備は完了です。次にrootfsを用意します。rootfsには選択肢がいくつかあります;

  • どこの配布物を使うか? Linaro / ARMhf / etc...
  • どのディストリビューションにするか? Debian / Ubuntu / etc...
  • どのイメージ(パッケージ)を使うか? nano / developer / alip / etc...

今回は、Linaroの配布するDebian 8.3のdeveloperイメージの最新版を利用することにしました。普通にtarで展開するとbinaryディレクトリが生成されるので、これを削除するために "--strip-components=1" を渡します。展開先のmicroSDのrootfsパーティション (ここでは/media/USERNAME/rootfs) は環境に合わせて適宜変更して下さい。

$ wget https://releases.linaro.org/debian/images/developer-armhf/latest/linaro-jessie-developer-20160126-11.tar.gz
$ sudo tar --strip-components=1 -C /media/USERNAME/rootfs -xzvpf linaro-jessie-developer-20160126-11.tar.gz
...

これでmicroSDから起動する準備が完了しました。

ZyboをTutorialで試す 番外編2 microSDの作成」への1件のフィードバック

  1. ピンバック: ZyboをTutorialで試す 番外編3 Debian起動 | CB1300SFのある生活

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です