1500円ZYNQ基板でPetaLinuxを動作させる(前編:インストール)

#はじめに
1500円 ZYNQ 基板(EBAZ4205)で使う、PetaLinux ブートイメージを作成したいと思います。
EBAZ4205を、RasPi と同じ感覚で使うための OS です。

PetaLinux は、業務でも使える組込み OS として用意されています。
RAM の上だけで動くように構成すると、数か月で SD カードが破損して起動不能になるような、RasPi あるあるは起こりません。
専用ハードウェアを作成して、PetaLinux 運用すれば、年単位で安定動作する組込みシステムが作れます。

まず前編では、PetaLinux 構築環境のインストールと、環境設定を行います。

ここで登場する PetaLinux ツールは、Linux のディストリビューションではなく、ZYNQ で動かす組込み Linux を構築するための作業ツールを指します。

Ubuntu(※) にインストールして使用し、ZYNQ 用の PetaLinux ブートイメージを作成することができます。

※Ubuntu の他に、CentOS、Red Hat もサポートしています

[後編](https://qiita.com/kan573/items/98f364eec46cb3842d79)では、実際に動作する PetaLinux ブートイメージを作成し、EBAZ4205 で動作確認を行います。

#使用環境

1. Windows10 Pro (20H2)+16 GB RAM+100 GB 程の SSD 領域
2. Vivado 2020.1 (現在最新は 2020.2 )
3. VirtualBox 6.1.18
4. Ubuntu Linux 18.04.5 (64 bit)
5. Petalinux tools 2020.1
6. EBAZ4205 (25MHz 水晶無し、microSD ソケットつき)


#参考資料
UG1144 - PetaLinux ツール資料リファレンス ガイド (日本語版) (v2019.2)
UG1144 - PetaLinux Tools Documentation: Reference Guide (v2020.1)

#ツール類のダウンロード

##1. Windows10 Pro
作業は、全て Win10 上で行います。

UG1144 にて PetaLinux 環境に 100 GB 程度用意することが推奨されています。
VirtualBox でサイズ可変の仮想ディスクファイルを使用すると、40GB 程度あれば、とりあえずは使えるようです。(多いに越した事はない)

##2. Vivado 2020.1
EBAZ4205 で大全の課題実施のために、インストール済みと思います。

##3. VirtualBox 6.1.18
platform packages - Windows hosts をダウンロードします。

https://www.virtualbox.org/wiki/Downloads

![2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/955220/172a972d-1920-2127-ef29-49274b0f7884.png)

##4. Ubuntu Linux 18.04.5 (64 bit)
PetaLinux ツールを動かすための OS 環境として、Ubuntu を使用します。

PetaLinux 2020.1 および 2020.2 でサポート表記されている一番新しいバージョンは 18.04.4 です。(→ UG1144)
18.04.5 はポイントリリースで、18.04.4 にアップデートが適用されたものです。
ダウンロードサイトで 18.04.4 を選択すると、18.04.5 にリダイレクトされますので、これをインストールします。

ミラーサイト一覧から、国内で一番回線が太いのは理研のようです。


https://launchpad.net/ubuntu/+cdmirrors

![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/955220/2339b9f1-28db-0fe5-07b8-b12acfd8f3de.png)

理研から、64-bit PC (AMD64) desktop image をダウンロードします。
ubuntu-18.04.5-desktop-amd64.iso がインストールイメージのファイルです。

https://ftp.riken.jp/Linux/ubuntu-releases/18.04.4/

![3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/955220/30dfa3dd-3fa9-253f-f0fa-8b3f195c177e.png)


##5. PetaLinux Tools

Xilinx が提供している PetaLinux ツール - インストーラ 2020.1 をダウンロードします。

petalinux-v2020.1-final-installer.run がツールのファイルです。
ボードサポートパッケージは、EBAZ4205 では不要です。

https://japan.xilinx.com/support/download/index.html/content/xilinx/ja/downloadNav/embedded-design-tools/2020-1.html

![4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/955220/fe3071b9-6666-7f4c-06a5-35b433d92584.png)

##6. EBAZ4205
1500円ぐらいで買えるZYNQ基板です。
[1500円ZYNQ基板で microSD から起動する](https://qiita.com/kan573/items/54f5e8116fccc6c37b57)
のように改造して、microSD カードから起動できるようにしておきます。

#インストール
##1. VirtualBox のインストール

全てデフォルトでインストールします。

##2. VirtualBox の設定

1. VitrualBox を起動して、新規(N) ボタンを押します。
仮想マシンの作成に入りますので、
名前: Ubuntu 18.04.5
タイプ(T): Linux
バージョン(V): Ubuntu (64-bit)
として進めます。
![5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/955220/068c91ea-1bee-0970-4974-e180a795acd5.png)

2. メモリーサイズは、UG1144 で "推奨される最小サイズ" として指定されている 8GB 以上を割り当てます。
そのまま 8192 MB として進めます。
あとで変更することもできます。
![6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/955220/a33a14ce-9ac7-e555-620a-fe6f1310bf99.png)

3. ハードディスクは、仮想ハードディスクを作成する(C)を選択して、作成ボタンを押します。
![7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/955220/da3946e6-d1fb-0459-372a-12ede5557900.png)

4. ハードディスクのファイルタイプは、デフォルトの VDI (VirtualBox Disk Image) ままとします。
![8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/955220/8c82356c-cd42-62c0-52ee-adf23984f379.png)

5. 物理ハードディスクにあるストレージは、可変サイズとします。
![9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/955220/1265a5d5-eeb6-7e74-3b5c-6f49f0db2408.png)

6. ファイルの場所はデフォルトのまま、サイズは 100 GB にします。
可変サイズで指定していますので、容量は実際に使用した分しか消費しません。
作成を押すと、仮想マシンが作成されます。
![10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/955220/5b2e6e57-207f-2a93-2672-de1ac2a1228e.png)

7. 仮想マシンの設定
設定(S) を押して、設定に入ります。
![11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/955220/2929329e-67f8-f96d-4e17-a8d02745bab9.png)

システム - プロセッサー の数を適当に増やしておきます。
例では 4 にしました。
後で変更できそうに見えるのですが、変更すると Ubuntu が起動しなくなりました。
先に設定しておくのがよいです。
OK を押して、設定を終了します。
![12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/955220/14981ae7-caa2-8d50-ad29-e5fad6b24863.png)

##3. Ubuntu のインストール

VirtualBox の起動(T)を押して、仮想マシンを起動します。
![13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/955220/090af8dd-3406-d5eb-89c0-62f357d0ffd4.png)

起動ハードディスクの選択で、ダウンロードした Ubuntu イメージ
ubuntu-18.04.5-desktop-amd64.iso を選択します。
![14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/955220/fd91f4cd-889b-f404-300e-5a962eba580f.png)

起動ボタンを押してインストールを開始します。
![15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/955220/ffcdf607-f7b2-4963-1a7f-ef56e95fc56c.png)

しばらく待つと、Ubuntu のインストーラが起動します。
![16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/955220/c7af13db-19eb-9525-55c6-e55d55bed595.png)

日本語を選び、Ubuntu をインストール を押します。
![17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/955220/a6e46524-6451-e375-cd23-19927d47d6fe.png)

「キーボードレイアウト」は、日本語 - 日本語 (OADG 109A) を選択。

下記は、デフォルトのまま。
「アップデートと他のソフトウェア」(通常のインストール)
「インストールの種類」(ディスクを削除して Ubuntu をインストール)
「ディスクに変更を書き込みますか？」(そのまま続けます)
「どこに住んでいますか？」(Tokyo を選択)

「あなたの情報を入力してください」は、好きなユーザー名とパスワードを入力して、
◎自動的にログインする
を選択します。

以上の設定で、Ubuntu のインストールが開始されます。
![18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/955220/3e4d68a9-6895-7880-d976-a252a4b8979d.png)

ファイルのコピーが終わり、インストールが完了したら、再起動を要求されるので再起動します。
仮想マシンが再起動するだけで、Win10 は再起動しません。
再起動後の Please remove the installation medium は、そのまま ENTER すればよいです。

Ubuntu が起動したら、
「Ubuntu の新機能」はそのまま次へ
「Livepatch」は、セットアップせずに次へ
「Ubuntu の改善を支援する」は "いいえ、送信しません" を選択して次へ
「準備が完了しました！」で完了を押す

途中で出るかもしれない、
「Ubuntu xx.xx.x のアップグレードが利用可能です」は "アップグレードしない" を選択。
アップグレードは拒絶してください。

「ソフトウェアの更新」で、Ubuntu 18.04 のリリース後のアップデートが案内されます。
「今すぐインストールする」を選択します。300 MB ほどダウンロードします。
![19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/955220/61842220-a50e-55d7-066e-d757becbc38a.png)

ダウンロードとソフトウェアの更新が終わると再起動を要求されますので、再起動します。

再起動後、メニューバーからデバイス - Guest Additions CD イメージの挿入... を選択します。
イメージのダウンロード後、VBox_GAs_6.1.18 には自動的に起動するソフトウェアが... で、実行する を選びます。
(Win10 とフォルダ共有するために必要)

モジュールのインストールが終わったら、デスクトップにある VBox_Gas_6.1.18 を右クリックして、取り出す(E) で CD イメージをイジェクトしておきます。
![20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/955220/b0765fba-4fbe-3b28-6ad8-a83f752adfa4.png)

次に、コピペを楽にするため、デバイス - クリップボードの共有 - 双方向 に設定しておきます。


##4. 共有フォルダの準備
Win10 と Ubuntu の間でやりとりするための、共有フォルダの設定を行います。

Win10 デスクトップに共有フォルダ share を作成して、ここに petalinux-v2020.1-final-installer.run をコピーしておきます。

### ユーザーの vboxsf グループへの追加
ログインしているユーザーに、共有フォルダへのアクセス権を与えるために、vboxsf グループに追加します。

デスクトップ左下の BCG痕 みたいなアイコンを押して、アクティビティを表示します。
![25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/955220/a9010203-1111-387b-9e6b-4aa38f8e06b6.png)

検索ワードに group と打つと出てくる Users and Groups を選択します。
![26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/955220/187b72cf-5b71-e818-84e3-1936a4f24242.png)

インストール(I) を選んで実行します。
![27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/955220/4e103b0f-bc3a-9a58-0618-5ed08f423fe3.png)

インストール後、起動(L) で Users and Groups を起動したら、ユーザー(例では kan573)を選んで、右下のグループの辺りを押します。
![28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/955220/98ffaaef-f980-745b-ee6d-1a336a001c04.png)
![29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/955220/8114fa04-f9f0-519f-7bf5-0543c524a0ba.png)


所属するグループのチェックボックスが表示されるので、vboxsf にチェックを入れて OK を押します。
![30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/955220/7fc21075-8639-28c3-baf9-0d12f82d38d3.png)


同様に、アクティビティから privacy で検索してプライバシーの設定を開き、自動画面ロックをオフに設定します。
![37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/955220/f2e2c410-48fb-274f-70ff-0abfc9daa7c6.png)

設定メニューの少し下のほうにある、
電源管理 - 省電力 - ブランクスクリーン(B) も、しない に設定しておきます。

変更を有効にするため、Ubuntu を再起動します。


### 共有フォルダの設定

ウィンドウの下にある左から6番目のアイコンを右クリックして、共有フォルダー設定... を選択。
![21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/955220/e3544a81-e857-78b0-9602-9cb09baa2250.png)

ウィンドウの右にある + フォルダのアイコンを押して、共有フォルダーの追加を行います。
![22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/955220/93e85532-2487-7962-551a-9569b130aa11.png)

フォルダーのパス: C:\Users\(ユーザー名)\Desktop\share
フォルダー名: share
読み込み専用(R): チェックなし
自動マウント(A): チェックあり
マウントポイント: (空白のまま)
永続化する(M): チェックあり
としました。
![23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/955220/f543dcb4-3ba8-4203-3ee9-302c03571d34.png)

OK を押して共有フォルダーの設定を閉じると、デスクトップに sf_share というドライブができています。
開いてみると、Win10 側の share フォルダがそのまま見えます。
![24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/955220/4cc782ac-a787-f4da-0c6b-7636716109f5.png)
![31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/955220/8427b909-8a48-cf82-5d34-4114d9738382.png)

##5. PetaLinux のインストール

sf_share フォルダーを開いて、右クリックから 端末で開く(E) を選びます。
![32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/955220/5aa4daba-115a-edd0-911b-1733f205ea92.png)

ターミナルが開きます。

###シェルの変更

>\$ sudo dpkg-reconfigure dash

で dash の設定を開き、dash をデフォルトのシェルとして使いますか？
に <いいえ> を選択します。
(⇒ シェルが dash から bash になります)
![34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/955220/f4f5de87-4b38-5ec6-96ad-c617ca68e914.png)


ここから、UG1144 のインストール手順に沿って、インストールしていきます。

###必要なツール類のインストール

>\$ sudo apt-get install -y python gawk gcc git make net-tools libncurses5-dev zlib1g:i386 libssl-dev flex bison libselinux1 gnupg wget diffstat chrpath socat xterm autoconf libtool tar unzip texinfo zlib1g-dev gcc-multilib build-essential screen pax gzip xinetd u-boot-tools tftpd-hpa

###PetaLinux ツールのインストール

>\$ sudo mkdir -p /opt/pkg/petalinux
>\$ sudo chmod 777 /opt/pkg/petalinux
>\$ ./petalinux-v2020.1-final-installer.run -d /opt/pkg/petalinux/2020.1


WARNING: This is not a supported OS

と出ますが、大丈夫です。(ubuntu-18.04.4 の代わりに ubuntu-18.04.5 を使っているため)

ファイルの展開が終わると、"Enter" でライセンス条項が表示されます。
全て読んだら "q" を押すと表示が終わり、同意するか (y/N) を聞かれます。
3 つ表示される条項に、全て y と答えると、インストールが進行してゆき、少しすると完了します。
![33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/955220/e2d08d9e-5e94-ccb1-3580-cd11bdec6619.png)


>\$ source /opt/pkg/petalinux/2020.1/settings.sh

を実行して、WARNING: This is not a supported OS 以外のエラーが出なければインストール終了です。

>\$ echo $PETALINUX

にて、実行環境を表示すると、

>/opt/pkg/petalinux/2020.1

と表示されるはずです。
![35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/955220/5f983d25-60dc-f50d-5378-2f20e4fec3d9.png)

###起動スクリプトの追加
ターミナルを開く毎に source 設定を行う必要がありますので、
~/.bashrc の最後に追加して、自動設定されるようにしておきます。


``` ~/.bashrc
(末尾に追加)

source /opt/pkg/petalinux/2020.1/settings.sh
echo $PETALINUX

```



#まとめ
EBAZ4205 で動作する OS (PetaLinux) を構築するビルド環境の準備ができました。
構築した仮想ディスクの大きさは、18 GB 程度になりました。

[後編](https://qiita.com/kan573/items/98f364eec46cb3842d79)では、実際に動作する PetaLinux ブートイメージを作成したいと思います。