2015/01/26

ZYBOの収納ケースとACアダプタ

ZYBOの収納ケース

購入時の紙箱のままでは頼りないので,ZYBOを収納するためのケースを準備しました. そんな機会があるのかはともかくとして,持ち運びにも便利です.


ZYBOの収納ケース(蓋を閉じた状態)

ZYBOの収納ケース(蓋を開けた状態)

100円ショップで購入した,プラスチックの葉書ケースです. ZYBOは葉書よりも一回り小さい程度なので,サイズ的にピッタリでした. 葉書ケースの蓋側にドリルで穴を開け,M3ネジでZYBOの足を固定しています.


ZYBOの収納ケース(蓋側)

蓋側にZYBOを固定した理由は,各種コネクタへのアクセスのしやすさを重視したためです. この葉書ケースは,簡単に蓋と本体を分離・連結することができます. 本体側を取り払ってしまえば,ZYBOを葉書ケースの蓋に固定していることをほとんど意識しなくて良くなります. 100円ショップを何件か回り,いくつか候補を見つけましたが,最終的にこの葉書ケースにした理由はここです.


ZYBOの収納ケース(蓋と本体が分離・連結可能)

安価かつ簡単に収納ケースを作ることができますので,是非お試しください.

ZYBOのACアダプタ

年末に大阪日本橋のデジットに立ち寄った際,ちょうど良いACアダプタを見つけました. 出力はDC5V,1A,プラグ規格はφ2.1のセンタープラスですから,ZYBOに適合しています. コンセント形状が海外規格ですが,ちゃんと国内規格に変換するアダプタが付属しています. 価格は180円でした. 良い買い物ができました…これで海外出張対策も万全!?

[追記 2015/02/25] DC4.5V~5.5V出力で最低でも2.5A供給可能な外部電源が必要であると,「ZYBO FPGA Board Reference Manual」の4ページに記載されていることを教えていただきました. 私がちゃんとリファレンスマニュアルを読んでいないのがバレバレですね…. 現在のところ電源不足に陥ったような症状には遭遇していませんが,これから購入される方は,DC5V出力で2.5A以上供給できるACアダプタを探したほうが良いと思います.


ACアダプタ
2015/01/25

ZYBOでUbuntuのルートファイルシステムを使用する

はじめに

前回記事「Embedded Linux Hands-on Tutorial for the ZYBOをやってみました」で,ZYBO上でのLinux起動に成功しましたので,使用するルートファイルシステムをUbuntuのものに変更してみました. そもそも,私はまだLinuxやルートファイルシステム自体をよく理解していません. 本記事のタイトルからして適切なのか不安ですが,追々勉強して,理解しながら訂正や追記をしていきたいと思います.

下記記事を参考に作業しました.

開発環境

仮想マシン上のUbuntu 14.04 LTS 32bitで作業しました.

OS Ubuntu 14.04 LTS 32bit
作業ログ
1. microSDHCのフォーマット

前回記事「Embedded Linux Hands-on Tutorial for the ZYBOをやってみました」の内容を終えていることが前提となっています. ディレクトリ構造については,各自の環境に置き換えて読み進めてください.

microSDHC内のデータは,バックアップしておいてください. Ubuntuであれば,microSDHCを挿入すると,自動認識してファイルマネージャが開くのではないかと思います. 特に使用しませんので,ファイルマネージャは閉じても大丈夫です(下図は,Mac OS Xライクな外観にしたUbuntuのウィンドウです).


microSDHC (フォーマット前)

lsblkコマンドでmicroSDHCのマウント位置を調べました. 私の環境では,/dev/sdbでした. fdiskを開始し,pコマンドで既存パーティションを表示した後,dコマンドで既存パーティションを削除しました.

第1パーティション(プライマリ,64MByte)を作成しました. nコマンドで新規パーティションの作成を開始し,'p'でパーティションタイプをプライマリに,'1'でパーティション番号を1に設定しました. 最初セクタは入力せず,Lastセクタは'+64M'としました.

第2パーティション(プライマリ,残りの領域)を作成しました. nコマンドで新規パーティションの作成を開始し,'p'でパーティションタイプをプライマリに,'2'でパーティション番号を2に設定しました. 最初セクタとLastセクタは入力しませんでした.

第1パーティションのシステムタイプをFAT32に変更し(tコマンド),ブート可能フラグを付加しました(aコマンド).

パーティションテーブルの書込みを実行しました. 書込み後,パーティションテーブルの再読込みでエラーが発生しました. partprobeコマンドを実行しても駄目でした.

一度,microSDHCをアンマウント(取り外し)し,再度挿入することで解決しました. 一応,再度パーティションテーブルを書込みしました.

パーティション名を設定し,ファイルシステムを作成しました.

2. ルートファイルシステムの書込み

ルートファイルシステムの書込みを行いました. 下記はコマンド実行ログです. 事前に,ディレクトリ「zybo_ubuntu」を作成し,前回記事「Embedded Linux Hands-on Tutorial for the ZYBOをやってみました」内で作成した「BOOT.bin」をコピーしておきました. tarコマンドは,実行に6分程度かかりました.

3. BOOT.binとuImageの書込み

BOOT.binとuImage(前回記事「Embedded Linux Hands-on Tutorial for the ZYBOをやってみました」内で作成)をZYBO_BOOTに書き込みました.

4. devicetree.dtbの書込み

前回記事「Embedded Linux Hands-on Tutorial for the ZYBOをやってみました」内で使用した「zynq-zybo.dts」をコピーし,編集しました.

「zynq-zybo.dts」の変更箇所は42行目と55行目の計2箇所です.

5. uEnv.txtの書込み

「uEnv.txt」を作成し,ZYBO_BOOTにコピーしました.

「uEnv.txt」の内容は下記のとおりです.

6. 実機テスト

Linuxが起動しました!下記はTera Term上のログです.

7. apt-get

ZYBO用のEmbedded Linux をブートするSDカードの作り方」にしたがい,Tera Term上で下記コマンドを実行しておきました.

ZYBOのFile System (ramdisk)を修正してみました

はじめに

前回の記事で,ZYBO上でのLinux起動に成功しました. しかし,ZedBoardのデザインからramdisk8M.image.gzを流用したため,Linux起動時に下記のような警告が発生しています. そこで,この問題を修正するとともに,myled.koをLinux起動時にinsmodするようにramdiskを修正してみました. 初心者ですので,非効率だったり,不可解だったりする操作をしている可能性があります. その場合は,コメントなどでご指摘いただければ幸いです….

下記の記事が参考になりました.ありがとうございます.

作業ログ
  1. microSDHCカードとramdiskをマウントする
  2. ZYBOでLinuxを起動し,作業開始しました. 下記は,Tera Term上でのコマンド実行ログです.

  3. ramdiskの編集:/lib/modules以下の編集
  4. /mnt/ramdisk/lib/modules以下を編集し,myled.koを追加しました.

  5. ramdiskの編集:/etc/init.d/rcSと/usr/bin以下の編集
  6. /mnt/ramdisk/etc/init.d/rcSと/usr/bin以下を編集し,Linux起動時にmyled.koがinsmodされるようにしました.

    rcSは,「echo "++ Starting OLED Display"」より下部を下記のように変更しました. 既存記述をコメントアウトし,2行を追加記述しています.

    rcSから実行される,load_myledを作成しました.

    load_myledの内容は,下記の通りです.

  7. ramdiskとmicroSDHCカードをアンマウントする
  8. microSDHCカードに編集済みのramdisk.image.gzをコピーします.

  9. ramdisk.image.gzをuramdisk.image.gzに変換する
  10. ZYBO上のLinuxにはmkimageコマンドがないようでしたので,これ以降はPCのUbuntu上で作業を行います. microSDHC上のramdisk.image.gzをUbuntu上の任意の作業ディレクトリにコピーし,下記コマンドを実行します. 生成されたuramdisk.image.gzをmicroSDHCカードに上書きして,作業は完了です.

編集後のLinux起動ログ

myled.koがLinux起動時にinsmodされるようになりました.

製品紹介

Embedded Linux Hands-on Tutorial for the ZYBOをやってみました

はじめに

Digilentが提供している,Embedded Linux Hands-on Tutorial for the ZYBOをやってみました.

日本語情報としては,下記記事を参考にさせていただきました. Hands-on Tutorialだけでは初心者の私にはわかりづらい箇所は,ほとんど下記記事で補完されていました. 大変助かりました.

開発環境
Hardware Customization, Generate BOOT.BIN

ZYBO Base System Designのカスタマイズ関係(1. Hardware Customization, 3. Generate BOOT.BIN)は,Windows環境で行いました.

OS Microsoft Windows 7 Professional x64 Service Pack 1
Vivado Vivado 2014.4 WebPACK Edition (Windows)
SDK Xilinx SDK 2014.4
Compile U-Boot, Compile Linux Kernel以降

コンパイル環境については,Xilinx SDKを使用せず,PetaLinuxツールを使用しました. 参考にした上記記事との違いは,この点くらいです.

OS Ubuntu 14.04 LTS 32bit
PetaLinuxツール Zynq、MicroBlaze用 PetaLinux 2014.4
PetaLinuxツールのインストール

PetaLinuxツールをインストールしました.XilinxのWebサイトからFirefoxでダウンロードし,Installation Guideを参考にして,下記のようにコマンドを実行しました.

私の環境では,初回インストール時に下記メッセージが表示されてエラー終了しました.

下記コマンドでgawkをインストールすることで解決しました.

インストール中,下記のような警告が表示されました. どうやら,MicroBlazeシステムにLinuxシステムのイメージをダウンロードするために必要のようです. 今回は関係ないと判断し,無視しました.

作業ログ
1. Hardware Customization

上記の参考記事を読みながら進めました. 特に躓くことはなかったと思います. プロジェクトを開きなおすと「system_LEDs_4Bits_1.upgrade_log」が見つからないとのCritical Warningが出るので,プロジェクトから該当ファイルを削除しておきました.


Hardware Customization
2. Compile U-Boot

ここでも,特に躓くことはなかったと思います. Ubuntu上でのコマンド実行ログです.

3. Generate BOOT.BIN

参考記事と重複しますが,注意点だけ書きます.

  • workspaceのビルドが進まない
  • FSBLプロジェクトを作成後,自動的にビルドが開始されますが,進捗率が79%のまま動かなくなってしまいました. ビルドを中断させてFSBLプロジェクトを削除し,Xilinx SDKを再起動して再試行すると上手くいきました.
  • system.bitではなく,system_wrapper.bit
  • Hands-on Tutorialの3.2.10ではsystem.bitになっていますが,system_wrapper.bitでした.
4. Compile Linux Kernel

Ubuntu上でのコマンド実行ログです.

5. Test Kernel Image with Pre-built File System

参考記事にしたがい,5.2.1のzynq-zybo.dtsの編集は実行しませんでした. また,ramdisk8M.image.gzはZedBoardのデザインから流用しました.

[追記 2015/01/25] ramdisk8M.image.gzは,下記リンクからwget (ダウンロード)してきた方が良さそうです. 下記で述べているような,Linux起動時の警告が出なくなります. 「yuki-sato.com - 7. Zynq RAMディスク」が参考になりました. ありがとうございます.

Linuxが起動しました!下記はTera Term上のログです. 228行目付近で警告が出ています.ramdisk8M.image.gzをZedBoardのデザインから流用したことが原因でしょう. この問題については,次回記事「ZYBOのFile System (ramdisk)を修正してみました」で解決しました.

6. Modify Device Tree and Compose Kernel Driver

Ubuntu上でのコマンド実行ログです.

7. User Application

Ubuntu上でのコマンド実行ログです.